    3f00:	sub    $0x20,%rsp
    3f04:	mov    %rdi,%r11
    3f07:	mov    %rbp,0x8(%rsp)
    3f0c:	mov    %rdx,%rbp
    3f0f:	mov    %rcx,%rdx
    3f12:	mov    %r12,0x10(%rsp)
    3f17:	mov    0x0(%rbp),%r12
    3f1b:	mov    %r13,0x18(%rsp)
    3f20:	mov    %r8,%r13
    3f23:	mov    (%rsi),%r8
    3f26:	cmp    %r12,%r8
    3f29:	je     42b5 
    3f2f:	mov    %rbx,(%rsp)
    3f33:	mov    %rsi,%rbx
    3f36:	mov    0x0(%r13),%rax
    3f3a:	mov    %r12,%r9
    3f3d:	sub    %r8,%r9
    3f40:	lea    0x200(%rax),%r10
    3f47:	cmp    $0x7c,%r9
    3f4b:	jle    4106 
    3f51:	sar    $0x2,%r9
    3f55:	lea    0x80(%r8),%rdi
    3f5c:	nopl   (%rax)
    3f5f:	data16 cs nopw 0x0(%rax,%rax,1)
    3f6a:	data16 cs nopw 0x0(%rax,%rax,1)
    3f75:	data16 cs nopw 0x0(%rax,%rax,1)
    3f80:	mov    %r10,%rax
    3f83:	sub    %rdx,%rax
    3f86:	cmp    $0x7c,%rax
    3f8a:	jle    4106 
    3f90:	mov    %rdi,%rax
    3f93:	sub    $0x20,%r9
    3f97:	mov    %r8,%rcx
    3f9a:	sub    %r8,%rax
    3f9d:	sub    $0x4,%rax
    3fa1:	shr    $0x2,%rax
    3fa5:	add    $0x1,%rax
    3fa9:	and    $0x7,%eax
    3fac:	je     4080 
    3fb2:	cmp    $0x1,%rax
    3fb6:	je     4037 
    3fb8:	cmp    $0x2,%rax
    3fbc:	je     4027 
    3fbe:	cmp    $0x3,%rax
    3fc2:	je     4017 
    3fc4:	cmp    $0x4,%rax
    3fc8:	je     4007 
    3fca:	cmp    $0x5,%rax
    3fce:	je     3ff7 
    3fd0:	cmp    $0x6,%rax
    3fd4:	je     3fe7 
    3fd6:	mov    (%r8),%eax
    3fd9:	test   %eax,%eax
    3fdb:	jns    3fe3 
    3fdd:	mov    %eax,(%rdx)
    3fdf:	add    $0x4,%rdx
    3fe3:	lea    0x4(%r8),%rcx
    3fe7:	mov    (%rcx),%eax
    3fe9:	test   %eax,%eax
    3feb:	jns    3ff3 
    3fed:	mov    %eax,(%rdx)
    3fef:	add    $0x4,%rdx
    3ff3:	add    $0x4,%rcx
    3ff7:	mov    (%rcx),%eax
    3ff9:	test   %eax,%eax
    3ffb:	jns    4003 
    3ffd:	mov    %eax,(%rdx)
    3fff:	add    $0x4,%rdx
    4003:	add    $0x4,%rcx
    4007:	mov    (%rcx),%eax
    4009:	test   %eax,%eax
    400b:	jns    4013 
    400d:	mov    %eax,(%rdx)
    400f:	add    $0x4,%rdx
    4013:	add    $0x4,%rcx
    4017:	mov    (%rcx),%eax
    4019:	test   %eax,%eax
    401b:	jns    4023 
    401d:	mov    %eax,(%rdx)
    401f:	add    $0x4,%rdx
    4023:	add    $0x4,%rcx
    4027:	mov    (%rcx),%eax
    4029:	test   %eax,%eax
    402b:	jns    4033 
    402d:	mov    %eax,(%rdx)
    402f:	add    $0x4,%rdx
    4033:	add    $0x4,%rcx
    4037:	mov    (%rcx),%eax
    4039:	test   %eax,%eax
    403b:	jns    4043 
    403d:	mov    %eax,(%rdx)
    403f:	add    $0x4,%rdx
    4043:	add    $0x4,%rcx
    4047:	cmp    %rcx,%rdi
    404a:	je     40f4 
    4050:	nopl   0x0(%rax)
    4054:	data16 cs nopw 0x0(%rax,%rax,1)
    405f:	data16 cs nopw 0x0(%rax,%rax,1)
    406a:	data16 cs nopw 0x0(%rax,%rax,1)
    4075:	data16 cs nopw 0x0(%rax,%rax,1)
    4080:	mov    (%rcx),%eax
    4082:	test   %eax,%eax
    4084:	jns    408c 
    4086:	mov    %eax,(%rdx)
    4088:	add    $0x4,%rdx
    408c:	mov    0x4(%rcx),%eax
    408f:	lea    0x4(%rcx),%rsi
    4093:	test   %eax,%eax
    4095:	jns    409d 
    4097:	mov    %eax,(%rdx)
    4099:	add    $0x4,%rdx
    409d:	mov    0x4(%rsi),%eax
    40a0:	test   %eax,%eax
    40a2:	jns    40aa 
    40a4:	mov    %eax,(%rdx)
    40a6:	add    $0x4,%rdx
    40aa:	mov    0x8(%rsi),%eax
    40ad:	test   %eax,%eax
    40af:	jns    40b7 
    40b1:	mov    %eax,(%rdx)
    40b3:	add    $0x4,%rdx
    40b7:	mov    0xc(%rsi),%eax
    40ba:	test   %eax,%eax
    40bc:	jns    40c4 
    40be:	mov    %eax,(%rdx)
    40c0:	add    $0x4,%rdx
    40c4:	mov    0x10(%rsi),%eax
    40c7:	test   %eax,%eax
    40c9:	jns    40d1 
    40cb:	mov    %eax,(%rdx)
    40cd:	add    $0x4,%rdx
    40d1:	mov    0x14(%rsi),%eax
    40d4:	test   %eax,%eax
    40d6:	jns    40de 
    40d8:	mov    %eax,(%rdx)
    40da:	add    $0x4,%rdx
    40de:	mov    0x18(%rsi),%eax
    40e1:	test   %eax,%eax
    40e3:	jns    40eb 
    40e5:	mov    %eax,(%rdx)
    40e7:	add    $0x4,%rdx
    40eb:	lea    0x1c(%rsi),%rcx
    40ef:	cmp    %rcx,%rdi
    40f2:	jne    4080 
    40f4:	sub    $0xffffffffffffff80,%r8
    40f8:	sub    $0xffffffffffffff80,%rdi
    40fc:	cmp    $0x1f,%r9
    4100:	jg     3f80 
    4106:	cmp    %r10,%rdx
    4109:	je     4299 
    410f:	cmp    %r12,%r8
    4112:	je     41ae 
    4118:	mov    %r12,%rax
    411b:	sub    %r8,%rax
    411e:	sub    $0x4,%rax
    4122:	shr    $0x2,%rax
    4126:	add    $0x1,%rax
    412a:	and    $0x3,%eax
    412d:	je     416d 
    412f:	cmp    $0x1,%rax
    4133:	je     4159 
    4135:	cmp    $0x2,%rax
    4139:	je     414a 
    413b:	mov    (%r8),%eax
    413e:	test   %eax,%eax
    4140:	js     42a1 
    4146:	add    $0x4,%r8
    414a:	mov    (%r8),%eax
    414d:	test   %eax,%eax
    414f:	js     4281 
    4155:	add    $0x4,%r8
    4159:	mov    (%r8),%eax
    415c:	test   %eax,%eax
    415e:	js     4269 
    4164:	add    $0x4,%r8
    4168:	cmp    %r12,%r8
    416b:	je     41ae 
    416d:	mov    (%r8),%eax
    4170:	test   %eax,%eax
    4172:	js     41cd 
    4174:	mov    0x4(%r8),%eax
    4178:	lea    0x4(%r8),%rcx
    417c:	mov    %rcx,%r8
    417f:	test   %eax,%eax
    4181:	js     421d 
    4187:	mov    0x4(%rcx),%eax
    418a:	lea    0x4(%rcx),%r8
    418e:	test   %eax,%eax
    4190:	js     4237 
    4196:	mov    0x8(%rcx),%eax
    4199:	lea    0x8(%rcx),%r8
    419d:	test   %eax,%eax
    419f:	js     4251 
    41a5:	lea    0xc(%rcx),%r8
    41a9:	cmp    %r12,%r8
    41ac:	jne    416d 
    41ae:	mov    %r12,(%rbx)
    41b1:	mov    0x0(%rbp),%rax
    41b5:	cmp    %rax,%r12
    41b8:	je     41e8 
    41ba:	add    $0x8,%r13
    41be:	mov    %r12,%r8
    41c1:	mov    0x0(%r13),%rdx
    41c5:	mov    %rax,%r12
    41c8:	jmp    3f36 
    41cd:	mov    %eax,(%rdx)
    41cf:	add    $0x4,%rdx
    41d3:	cmp    %rdx,%r10
    41d6:	jne    4174 
    41d8:	lea    0x4(%r8),%r12
    41dc:	mov    %r12,(%rbx)
    41df:	mov    0x0(%rbp),%rax
    41e3:	cmp    %rax,%r12
    41e6:	jne    41ba 
    41e8:	mov    0x0(%r13),%rax
    41ec:	add    $0x200,%rax
    41f2:	cmp    %rax,%rdx
    41f5:	je     42c1 
    41fb:	mov    %rdx,(%r11)
    41fe:	mov    (%rsp),%rbx
    4202:	mov    %r13,0x8(%r11)
    4206:	mov    0x8(%rsp),%rbp
    420b:	mov    0x10(%rsp),%r12
    4210:	mov    %r11,%rax
    4213:	mov    0x18(%rsp),%r13
    4218:	add    $0x20,%rsp
    421c:	ret
    421d:	mov    %eax,(%rdx)
    421f:	add    $0x4,%rdx
    4223:	cmp    %rdx,%r10
    4226:	je     41d8 
    4228:	mov    0x4(%rcx),%eax
    422b:	lea    0x4(%rcx),%r8
    422f:	test   %eax,%eax
    4231:	jns    4196 
    4237:	mov    %eax,(%rdx)
    4239:	add    $0x4,%rdx
    423d:	cmp    %rdx,%r10
    4240:	je     41d8 
    4242:	mov    0x8(%rcx),%eax
    4245:	lea    0x8(%rcx),%r8
    4249:	test   %eax,%eax
    424b:	jns    41a5 
    4251:	mov    %eax,(%rdx)
    4253:	add    $0x4,%rdx
    4257:	cmp    %rdx,%r10
    425a:	jne    41a5 
    4260:	lea    0x4(%r8),%r12
    4264:	jmp    41dc 
    4269:	mov    %eax,(%rdx)
    426b:	add    $0x4,%rdx
    426f:	cmp    %rdx,%r10
    4272:	jne    4164 
    4278:	lea    0x4(%r8),%r12
    427c:	jmp    41dc 
    4281:	mov    %eax,(%rdx)
    4283:	add    $0x4,%rdx
    4287:	cmp    %rdx,%r10
    428a:	jne    4155 
    4290:	lea    0x4(%r8),%r12
    4294:	jmp    41dc 
    4299:	mov    %r8,%r12
    429c:	jmp    41ae 
    42a1:	mov    %eax,(%rdx)
    42a3:	add    $0x4,%rdx
    42a7:	cmp    %rdx,%r10
    42aa:	jne    4146 
    42b0:	jmp    41d8 
    42b5:	mov    %rcx,(%r11)
    42b8:	mov    %r13,0x8(%rdi)
    42bc:	jmp    4206 
    42c1:	mov    0x8(%r13),%rdx
    42c5:	add    $0x8,%r13
    42c9:	jmp    41fb 
