Function at 0x415b30
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb8]
mov esi, dword [esp + 0xc0]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb4]
test ecx, ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x78], eax
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x58], edx
je 0x4163c2
shl ecx, 4
mov edi, eax
xor ebx, ebx
mov edx, ecx
add edx, eax
mov ecx, dword [eax]
add eax, 0x10
add ecx, ebx
cmp edx, eax
mov ebx, ecx
jne 0x415bb7
test ecx, ecx
mov dword [esp + 0x3c], ecx
jne 0x416e33
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], 1
mov dword [esp + 0x40], 0
and ecx, esi
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], 0
xor ebp, ebp
lea edx, [eax + 1]
mov dword [esp + 0x18], edx
mov edx, eax
jmp 0x415c1c
test ebx, ebx
jne 0x415c5d
mov ecx, dword [edi + 4]
add ebp, 1
add edi, 0x10
and ecx, 0x1ffffff
add ecx, esi
and ecx, edx
cmp dword [esp + 0x38], ebp
je 0x415c8a
mov ebx, dword [edi]
lea esi, [ebx + ecx]
cmp edx, esi
jae 0x415bff
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x10]
mov dword [esp + 0x2c], edx
sub esi, ecx
add ecx, dword [esp + 0x24]
mov dword [esp + 8], esi
sub ebx, esi
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
add dword [esp + 0x10], esi
xor ecx, ecx
test ebx, ebx
mov esi, ebx
mov edx, dword [esp + 0x2c]
je 0x415c03
mov eax, dword [esp + 0x40]
add ecx, dword [esp + 0x24]
add eax, dword [esp + 0x10]
mov dword [esp + 8], ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
add dword [esp + 0x10], ebx
mov edx, dword [esp + 0x2c]
jmp 0x415c03
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x4163ca
cmp dword [esp + 0x3c], 0x7f
ja 0x416053
mov eax, dword [esp + 0x50]
mov edx, dword [eax + 4]
mov esi, dword [eax + 0x10]
lea eax, [edx + 1]
cmp esi, eax
jae 0x415d00
test esi, esi
jne 0x416158
mov esi, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004136f0
mov ebx, eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x417392
mov edi, dword [esp + 0x50]
mov eax, dword [edi + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00413720
mov edx, dword [edi + 4]
mov dword [edi + 8], ebx
mov dword [edi + 0x10], esi
lea eax, [edx + 1]
mov ecx, dword [esp + 0x50]
mov esi, dword [ecx + 0x14]
cmp esi, eax
jae 0x415d5d
test esi, esi
jne 0x416143
mov esi, eax
lea eax, [esi*4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.004136f0
mov ebx, eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x417487
mov edi, dword [esp + 0x50]
mov eax, dword [edi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00413720
mov edx, dword [edi + 4]
mov dword [edi + 0xc], ebx
mov dword [edi + 0x14], esi
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x3c]
mov eax, dword [ecx + 8]
mov dword [ecx], 1
mov byte [eax + edx], 0
mov edx, dword [ecx + 4]
mov eax, dword [ecx + 0xc]
mov dword [eax + edx*4], edi
add dword [ecx + 4], 1
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00413720
mov eax, dword [esp + 0x38]
lea ebx, [eax + eax]
mov eax, dword [esp + 0x34]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.004136f0
mov esi, dword [esp + 0x78]
mov ecx, eax
mov dword [esp + 0x40], eax
xor eax, eax
movzx edx, word [esi + eax*8 + 0xc]
mov word [ecx + eax], dx
add eax, 2
cmp ebx, eax
jne 0x415db6
cmp dword [esp + 0x38], 0x7f
mov dword [esp + 0x80], eax
ja 0x4161c1
mov eax, dword [esp + 0x54]
mov edx, dword [eax + 4]
mov esi, dword [eax + 0x10]
lea eax, [edx + 1]
cmp esi, eax
jae 0x415e37
test esi, esi
jne 0x416182
mov esi, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004136f0
mov ebx, eax
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x41746b
mov edi, dword [esp + 0x54]
mov eax, dword [edi + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00413720
mov edx, dword [edi + 4]
mov dword [edi + 8], ebx
mov dword [edi + 0x10], esi
lea eax, [edx + 1]
mov ecx, dword [esp + 0x54]
mov esi, dword [ecx + 0x14]
cmp esi, eax
jae 0x415e94
test esi, esi
jne 0x41616d
mov esi, eax
lea eax, [esi*4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.004136f0
mov ebx, eax
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x41744c
mov edi, dword [esp + 0x54]
mov eax, dword [edi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00413720
mov edx, dword [edi + 4]
mov dword [edi + 0xc], ebx
mov dword [edi + 0x14], esi
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x38]
mov eax, dword [ecx + 8]
mov dword [ecx], 1
mov byte [eax + edx], 0
mov edx, dword [ecx + 4]
mov eax, dword [ecx + 0xc]
mov dword [eax + edx*4], edi
add dword [ecx + 4], 1
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x34]
xor ebx, ebx
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00413720
mov eax, dword [esp + 0x80]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.004136f0
mov edx, dword [esp + 0x38]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x78]
shl edx, 4
add edx, eax
test dword [eax + 4], 0x1ffffff
je 0x415f14
cmp word [eax + 0xc], 0x7f
jbe 0x415f14
movzx ecx, word [eax + 0xe]
mov edi, dword [esp + 0x40]
and cx, 0x3ff
mov word [edi + ebx*2], cx
add ebx, 1
add eax, 0x10
cmp edx, eax
jne 0x415ef0
mov eax, ebx
mov edx, 0xf0f0f0f1
mov dword [esp + 0x38], ebx
mul edx
mov eax, 0x32
shr edx, 9
lea ecx, [edx + 1]
cmp ecx, 0x32
cmovbe eax, ecx
test ebx, ebx
mov dword [esp + 0x28], eax
je 0x41641a
cmp dword [esp + 0x38], 0x7f
ja 0x4162d2
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 4]
mov esi, dword [eax + 0x10]
lea eax, [edx + 1]
cmp esi, eax
jae 0x415faf
test esi, esi
jne 0x4161ac
mov esi, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004136f0
mov ebx, eax
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x417430
mov edi, dword [esp + 0x58]
mov eax, dword [edi + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00413720
mov edx, dword [edi + 4]
mov dword [edi + 8], ebx
mov dword [edi + 0x10], esi
lea eax, [edx + 1]
mov ecx, dword [esp + 0x58]
mov esi, dword [ecx + 0x14]
cmp esi, eax
jae 0x41600c
test esi, esi
jne 0x416197
mov esi, eax
lea eax, [esi*4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.004136f0
mov ebx, eax
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x417411
mov edi, dword [esp + 0x58]
mov eax, dword [edi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00413720
mov edx, dword [edi + 4]
mov dword [edi + 0xc], ebx
mov dword [edi + 0x14], esi
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x38]
mov eax, dword [ecx + 8]
mov dword [ecx], 1
mov byte [eax + edx], 0
mov edx, dword [ecx + 4]
mov eax, dword [ecx + 0xc]
mov dword [eax + edx*4], edi
add dword [ecx + 4], 1
mov eax, dword [esp + 0x40]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xb0], eax
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00413720
mov edi, dword [esp + 0x28]
xor ebx, ebx
imul eax, edi, 0x410
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.004136f0
mov esi, eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x3c]
xor edx, edx
div edi
mov edx, esi
mov dword [esp + 0x10], eax
xor eax, eax
lea edi, [edx + 4]
mov ecx, edx
mov dword [edx], 0
mov dword [edx + 0x3fc], 0
fld dword [0x46abc0]
add ebx, 1
and edi, 0xfffffffc
add edx, 0x410
sub ecx, edi
add ecx, 0x400
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [edx - 0x10], 0
fstp qword [edx - 8]
cmp ebx, dword [esp + 0x28]
jb 0x416085
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x64]
xor ebp, ebp
mov esi, 7
xor eax, eax
mov edi, ecx
sub ecx, 0x47
mov dword [esp + 0x18], ecx
lea edx, [eax + 0x46]
cmp dword [esp + 0x3c], edx
cmovbe eax, dword [esp + 0x18]
add dword [ebx + 0x400], 0x46
add eax, dword [esp + 0x40]
lea ecx, [eax + 0x46]
lea esi, [esi]
add eax, 1
movzx edx, byte [eax - 1]
add dword [ebx + edx*4], 1
cmp eax, ecx
jne 0x416100
add ebp, 1
cmp ebp, dword [esp + 0x28]
jae 0x416e74
mov eax, edi
xor edx, edx
add edi, dword [esp + 0x3c]
div dword [esp + 0x28]
xor edx, edx
add ebx, 0x410
imul esi, esi, 0x41a7
mov ecx, eax
mov eax, esi
div dword [esp + 0x10]
lea eax, [edx + ecx]
jmp 0x4160e3
add esi, esi
cmp esi, eax
jae 0x415d15
add esi, esi
cmp esi, eax
jb 0x416143
jmp 0x415d15
add esi, esi
cmp eax, esi
jbe 0x415cbc
add esi, esi
cmp eax, esi
ja 0x416158
jmp 0x415cbc
add esi, esi
cmp esi, eax
jae 0x415e4c
add esi, esi
cmp esi, eax
jb 0x41616d
jmp 0x415e4c
add esi, esi
cmp eax, esi
jbe 0x415df3
add esi, esi
cmp eax, esi
ja 0x416182
jmp 0x415df3
add esi, esi
cmp esi, eax
jae 0x415fc4
add esi, esi
cmp esi, eax
jb 0x416197
jmp 0x415fc4
add esi, esi
cmp eax, esi
jbe 0x415f6b
add esi, esi
cmp eax, esi
ja 0x4161ac
jmp 0x415f6b
mov eax, dword [esp + 0x38]
mov edx, 0xf74e3fc3
mov ecx, dword [esp + 0x34]
mul edx
mov dword [esp], ecx
shr edx, 9
mov eax, edx
mov edx, 0x32
add eax, 1
cmp eax, 0x32
cmovbe edx, eax
xor ebx, ebx
imul eax, edx, 0xb10
mov edi, edx
mov dword [esp + 0x28], edx
mov dword [esp + 4], eax
call fcn.004136f0
mov esi, eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x38]
xor edx, edx
div edi
mov edx, esi
mov dword [esp + 0x10], eax
xor eax, eax
lea edi, [edx + 4]
mov ecx, edx
mov dword [edx], 0
mov dword [edx + 0xafc], 0
fld dword [0x46abc0]
add ebx, 1
and edi, 0xfffffffc
add edx, 0xb10
sub ecx, edi
add ecx, 0xb00
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [edx - 0x10], 0
fstp qword [edx - 8]
cmp dword [esp + 0x28], ebx
ja 0x416213
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x5c]
xor ebp, ebp
mov esi, 7
xor edx, edx
mov edi, eax
sub eax, 0x29
mov dword [esp + 0x18], eax
lea eax, [edx + 0x28]
cmp dword [esp + 0x38], eax
mov eax, dword [esp + 0x40]
cmovbe edx, dword [esp + 0x18]
add dword [ecx + 0xb00], 0x28
lea eax, [eax + edx*2]
lea ebx, [eax + 0x50]
nop
add eax, 2
movzx edx, word [eax - 2]
add dword [ecx + edx*4], 1
cmp eax, ebx
jne 0x416290
add ebp, 1
cmp dword [esp + 0x28], ebp
jbe 0x416429
mov eax, edi
xor edx, edx
add edi, dword [esp + 0x38]
div dword [esp + 0x28]
xor edx, edx
add ecx, 0xb10
imul esi, esi, 0x41a7
mov ebx, eax
mov eax, esi
div dword [esp + 0x10]
add edx, ebx
jmp 0x416271
mov edi, dword [esp + 0x28]
xor ebx, ebx
imul eax, edi, 0x890
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.004136f0
mov esi, eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x38]
xor edx, edx
div edi
mov edx, esi
mov dword [esp + 0x10], eax
xor eax, eax
lea edi, [edx + 4]
mov ecx, edx
mov dword [edx], 0
mov dword [edx + 0x87c], 0
fld dword [0x46abc0]
add ebx, 1
and edi, 0xfffffffc
add edx, 0x890
sub ecx, edi
add ecx, 0x880
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [edx - 0x10], 0
fstp qword [edx - 8]
cmp ebx, dword [esp + 0x28]
jb 0x416304
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
xor ebp, ebp
mov esi, 7
xor edx, edx
mov edi, eax
sub eax, 0x29
mov dword [esp + 0x18], eax
lea eax, [edx + 0x28]
cmp dword [esp + 0x38], eax
mov eax, dword [esp + 0x40]
cmovbe edx, dword [esp + 0x18]
add dword [ecx + 0x880], 0x28
lea eax, [eax + edx*2]
lea ebx, [eax + 0x50]
nop
add eax, 2
movzx edx, word [eax - 2]
add dword [ecx + edx*4], 1
cmp eax, ebx
jne 0x416380
add ebp, 1
cmp ebp, dword [esp + 0x28]
jae 0x416923
mov eax, edi
xor edx, edx
add edi, dword [esp + 0x38]
div dword [esp + 0x28]
xor edx, edx
add ecx, 0x890
imul esi, esi, 0x41a7
mov ebx, eax
mov eax, esi
div dword [esp + 0x10]
add edx, ebx
jmp 0x416362
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x50]
mov dword [eax], 1
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00413720
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x415d93
mov eax, dword [esp + 0x54]
mov dword [eax], 1
mov eax, dword [esp + 0x34]
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00413720
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x58]
mov dword [eax], 1
jmp 0x41602e
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x38]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
mov ecx, ebx
mov edx, ebp
call fcn.004158a0
mov edi, dword [esp + 0x34]
mov dword [esp + 4], ebp
mov dword [esp], edi
call fcn.004136f0
mov esi, eax
mov dword [esp + 0x44], eax
mov dword [esp], edi
imul eax, ebx, 0x1600
mov dword [esp + 4], eax
call fcn.004136f0
mov dword [esp + 0x2c], eax
lea eax, [ebx*8]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.004136f0
mov dword [esp + 0x64], eax
lea eax, [ebx + 7]
mov dword [esp], edi
shr eax, 3
imul eax, ebp
mov dword [esp + 4], eax
call fcn.004136f0
mov dword [esp + 0x48], eax
lea eax, [ebx + ebx]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.004136f0
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x68], eax
mov eax, 3
mov edx, 0xa
mov dword [esp + 0x60], 0
cmp dword [ecx + 4], 0xa
mov ecx, eax
mov eax, dword [esp + 0x5c]
cmovg ecx, edx
mov dword [esp + 0x74], ecx
mov ecx, ebp
add ecx, esi
mov dword [esp + 0x70], ecx
lea ecx, [eax - 4]
mov dword [esp + 0x30], ecx
lea ecx, [esi - 1]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x50], ecx
cmp dword [esp + 0x28], 1
jbe 0x416904
imul eax, dword [esp + 0x28], 0x1600
mov ebp, dword [esp + 0x2c]
mov dword [esp + 4], 0
xor ebx, ebx
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x28]
lea edi, [ecx + 0xb00]
jmp 0x41654e
fld dword [eax*4 + 0x46a7c0]
fstp qword [ebp + ebx*8]
add ebx, 1
add edi, 0xb10
cmp ebx, esi
je 0x416571
mov eax, dword [edi]
cmp eax, 0xff
jbe 0x416536
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
fild qword [esp + 0x10]
fstp qword [esp]
call fcn.00445f90
jmp 0x41653d
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
imul ebp, eax, 0x2bf
add ecx, 0xafc
shl eax, 3
mov dword [esp + 0x4c], eax
add edx, eax
mov dword [esp + 0x3c], esi
mov edi, ecx
lea esi, [esi]
mov esi, edi
mov dword [esp + 0x24], edi
mov ebx, dword [esp + 0x2c]
mov edi, edx
jmp 0x4165d0
cmp eax, 0xff
ja 0x4165e0
fld dword [eax*4 + 0x46a7c0]
fsubp st(1)
add esi, 0xb10
fstp qword [ebx + ebp*8]
add ebx, 8
cmp edi, ebx
je 0x416604
mov eax, dword [esi]
fld qword [ebx]
test eax, eax
jne 0x4165b0
fld dword [0x46abc4]
jmp 0x4165be
fstp qword [esp + 0x18]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
fild qword [esp + 0x10]
fstp qword [esp]
call fcn.00445f90
fld qword [esp + 0x18]
fxch st(1)
jmp 0x4165be
mov edx, edi
mov edi, dword [esp + 0x24]
sub ebp, dword [esp + 0x28]
sub edi, 4
cmp dword [esp + 0x30], edi
jne 0x4165a0
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
xor ebx, ebx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 4], 0
mov ebp, 1
add eax, 7
mov dword [esp], esi
shr eax, 3
mov dword [esp + 8], ecx
mov edi, eax
mov dword [esp + 0x3c], eax
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], 0
imul ecx, edi
xor edi, edi
mov dword [esp + 0x7c], ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp], ecx
call sub.msvcrt.dll_memset
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x28]
fld qword [0x46abc8]
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x24]
fld st(0)
xor eax, eax
movzx edx, word [ecx + edi*2]
mov ecx, dword [esp + 0x44]
imul edx, dword [esp + 0x4c]
add edx, dword [esp + 0x2c]
nop
fld qword [esi + eax*8]
fadd qword [edx + eax*8]
fst qword [esi + eax*8]
fxch st(1)
fucomi st(1)
jbe 0x4166c0
fstp st(0)
mov byte [ecx + edi], al
jmp 0x4166c2
fstp st(1)
add eax, 1
cmp eax, ebx
jne 0x4166a0
cmp dword [esp + 0x24], 0x7cf
jbe 0x4173f0
fld dword [0x46abd8]
mov ecx, dword [esp + 0x48]
xor eax, eax
mov dword [esp + 0x18], ecx
jmp 0x4166fa
fstp qword [esi + eax*8]
add eax, 1
cmp eax, ebx
je 0x416730
fld st(1)
fsubr qword [esi + eax*8]
fucomi st(1)
jb 0x4166f0
fstp st(0)
mov ecx, eax
mov edx, eax
mov edi, ebp
and ecx, 7
shr edx, 3
add edx, dword [esp + 0x10]
shl edi, cl
fst qword [esi + eax*8]
add eax, 1
mov ecx, edi
mov edi, dword [esp + 0x18]
or byte [edi + edx], cl
cmp eax, ebx
jne 0x4166fa
fstp st(0)
fstp st(0)
jmp 0x416734
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x3c]
add dword [esp + 0x10], edx
add eax, 1
cmp dword [esp + 0x38], eax
je 0x416752
mov dword [esp + 0x24], eax
jmp 0x416681
fstp st(0)
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x7c]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x18], 1
mov dword [esp + 0x24], esi
movzx edi, byte [eax + ebx]
lea eax, [eax + ebx - 1]
sub ebp, edx
mov dword [esp + 0x10], ecx
mov ebx, edi
sub ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
mov edx, ebx
shr dl, 3
mov edi, 1
movzx edx, dl
lea esi, [ecx + ebp]
mov ecx, ebx
and ecx, 7
shl edi, cl
mov ecx, edi
test byte [esi + edx], cl
je 0x4167b4
movzx edx, byte [eax]
cmp dl, bl
je 0x4167b4
add dword [esp + 0x18], 1
mov ebx, edx
mov byte [eax], bl
sub eax, 1
cmp dword [esp + 0x50], eax
jne 0x416780
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x68]
xor ebx, ebx
mov edx, dword [esp + 0x38]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
call fcn.00413740
mov ecx, eax
mov dword [esp + 0x28], eax
xor eax, eax
test ecx, ecx
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x28]
je 0x416833
lea edi, [edx + 4]
mov ecx, edx
fld dword [0x46abc0]
add ebx, 1
mov dword [edx], 0
mov dword [edx + 0xafc], 0
and edi, 0xfffffffc
add edx, 0xb10
sub ecx, edi
add ecx, 0xb00
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [edx - 0x10], 0
fstp qword [edx - 8]
cmp ebp, ebx
jne 0x4167f1
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x70]
movzx eax, byte [edx]
movzx ebp, word [ecx]
add edx, 1
add ecx, 2
imul eax, eax, 0xb10
add eax, ebx
add dword [eax + ebp*4], 1
add dword [eax + 0xb00], 1
cmp edi, edx
jne 0x416843
add dword [esp + 0x60], 1
mov eax, dword [esp + 0x60]
cmp eax, dword [esp + 0x74]
jne 0x4164f5
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413720
mov eax, dword [esp + 0x64]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413720
mov eax, dword [esp + 0x48]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413720
mov eax, dword [esp + 0x68]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413720
mov eax, dword [esp + 0x5c]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413720
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 4], esi
mov dword [esp], eax
mov eax, edi
call fcn.00414260
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00413720
jmp 0x415eb6
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x70]
mov byte [eax], 0
add eax, 1
cmp edx, eax
jne 0x41690c
mov dword [esp + 0x18], 1
jmp 0x4167c3
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x38]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
mov ecx, esi
mov edx, ebx
call fcn.00415790
mov edi, dword [esp + 0x34]
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.004136f0
mov dword [esp + 0x44], eax
mov dword [esp], edi
imul eax, esi, 0x1100
mov dword [esp + 4], eax
call fcn.004136f0
mov dword [esp + 0x2c], eax
mov eax, esi
mov dword [esp], edi
shl eax, 3
mov dword [esp + 4], eax
call fcn.004136f0
mov dword [esp + 0x60], eax
mov eax, esi
mov dword [esp + 0x48], 0
add eax, 7
shr eax, 3
imul eax, ebx
test eax, eax
je 0x4169a5
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.004136f0
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x28]
add eax, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.004136f0
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x6c]
mov edx, 0xa
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x5c], 0
cmp dword [eax + 4], 0xa
mov eax, 3
cmovg eax, edx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x44]
add ecx, eax
sub eax, 1
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
sub ecx, 4
mov dword [esp + 0x30], ecx
cmp dword [esp + 0x28], 1
jbe 0x416e14
imul eax, dword [esp + 0x28], 0x1100
mov ebp, dword [esp + 0x2c]
mov dword [esp + 4], 0
xor ebx, ebx
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x28]
lea edi, [ecx + 0x880]
jmp 0x416a5d
fld dword [eax*4 + 0x46a7c0]
fstp qword [ebp + ebx*8]
add ebx, 1
add edi, 0x890
cmp ebx, esi
je 0x416a80
mov eax, dword [edi]
cmp eax, 0xff
jbe 0x416a45
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
fild qword [esp + 0x10]
fstp qword [esp]
call fcn.00445f90
jmp 0x416a4c
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
imul ebp, eax, 0x21f
add ecx, 0x87c
shl eax, 3
mov dword [esp + 0x4c], eax
add edx, eax
mov dword [esp + 0x3c], esi
mov edi, ecx
nop
lea esi, [esi]
mov esi, edi
mov dword [esp + 0x24], edi
mov ebx, dword [esp + 0x2c]
mov edi, edx
jmp 0x416ae0
cmp eax, 0xff
ja 0x416af0
fld dword [eax*4 + 0x46a7c0]
fsubp st(1)
add esi, 0x890
fstp qword [ebx + ebp*8]
add ebx, 8
cmp edi, ebx
je 0x416b14
mov eax, dword [esi]
fld qword [ebx]
test eax, eax
jne 0x416ac0
fld dword [0x46abc4]
jmp 0x416ace
fstp qword [esp + 0x18]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
fild qword [esp + 0x10]
fstp qword [esp]
call fcn.00445f90
fld qword [esp + 0x18]
fxch st(1)
jmp 0x416ace
mov edx, edi
mov edi, dword [esp + 0x24]
sub ebp, dword [esp + 0x28]
sub edi, 4
cmp dword [esp + 0x30], edi
jne 0x416ab0
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
xor ebx, ebx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 4], 0
mov ebp, 1
add eax, 7
mov dword [esp], esi
shr eax, 3
mov dword [esp + 8], ecx
mov edi, eax
mov dword [esp + 0x3c], eax
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], 0
imul ecx, edi
xor edi, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp], ecx
call sub.msvcrt.dll_memset
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x28]
fld qword [0x46abc8]
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x24]
fld st(0)
xor eax, eax
movzx edx, word [ecx + edi*2]
mov ecx, dword [esp + 0x44]
imul edx, dword [esp + 0x4c]
add edx, dword [esp + 0x2c]
nop
fld qword [esi + eax*8]
fadd qword [edx + eax*8]
fst qword [esi + eax*8]
fxch st(1)
fucomi st(1)
jbe 0x416bd0
fstp st(0)
mov byte [ecx + edi], al
jmp 0x416bd2
fstp st(1)
add eax, 1
cmp eax, ebx
jne 0x416bb0
cmp dword [esp + 0x24], 0x7cf
jbe 0x4173cf
fld qword [str.333333__]
mov ecx, dword [esp + 0x48]
xor eax, eax
mov dword [esp + 0x18], ecx
jmp 0x416c0a
fstp qword [esi + eax*8]
add eax, 1
cmp eax, ebx
je 0x416c40
fld st(1)
fsubr qword [esi + eax*8]
fucomi st(1)
jb 0x416c00
fstp st(0)
mov ecx, eax
mov edx, eax
mov edi, ebp
and ecx, 7
shr edx, 3
add edx, dword [esp + 0x10]
shl edi, cl
fst qword [esi + eax*8]
add eax, 1
mov ecx, edi
mov edi, dword [esp + 0x18]
or byte [edi + edx], cl
cmp eax, ebx
jne 0x416c0a
fstp st(0)
fstp st(0)
jmp 0x416c44
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x3c]
add dword [esp + 0x10], edx
add eax, 1
cmp dword [esp + 0x38], eax
je 0x416c62
mov dword [esp + 0x24], eax
jmp 0x416b91
fstp st(0)
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x18], 1
mov dword [esp + 0x24], esi
movzx edi, byte [eax + ebx]
lea eax, [eax + ebx - 1]
sub ebp, edx
mov dword [esp + 0x10], ecx
mov ebx, edi
sub ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
mov edx, ebx
shr dl, 3
mov edi, 1
movzx edx, dl
lea esi, [ecx + ebp]
mov ecx, ebx
and ecx, 7
shl edi, cl
mov ecx, edi
test byte [esi + edx], cl
je 0x416cc4
movzx edx, byte [eax]
cmp dl, bl
je 0x416cc4
add dword [esp + 0x18], 1
mov ebx, edx
mov byte [eax], bl
sub eax, 1
cmp eax, dword [esp + 0x50]
jne 0x416c90
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x64]
xor ebx, ebx
mov edx, dword [esp + 0x38]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
call fcn.00413740
mov ecx, eax
mov dword [esp + 0x28], eax
xor eax, eax
test ecx, ecx
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x28]
je 0x416d43
lea edi, [edx + 4]
mov ecx, edx
fld dword [0x46abc0]
add ebx, 1
mov dword [edx], 0
mov dword [edx + 0x87c], 0
and edi, 0xfffffffc
add edx, 0x890
sub ecx, edi
add ecx, 0x880
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [edx - 0x10], 0
fstp qword [edx - 8]
cmp ebp, ebx
jne 0x416d01
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x68]
movzx eax, byte [edx]
movzx ebp, word [ecx]
add edx, 1
add ecx, 2
imul eax, eax, 0x890
add eax, ebx
add dword [eax + ebp*4], 1
add dword [eax + 0x880], 1
cmp edx, edi
jne 0x416d53
add dword [esp + 0x5c], 1
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x6c]
jne 0x416a04
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413720
mov eax, dword [esp + 0x60]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413720
mov eax, dword [esp + 0x48]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413720
mov eax, dword [esp + 0x64]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413720
mov eax, dword [esp + 0x54]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413720
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 4], esi
mov dword [esp], eax
mov eax, edi
call fcn.00414d00
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00413720
jmp 0x41602e
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x68]
mov byte [eax], 0
add eax, 1
cmp edx, eax
jne 0x416e1c
mov dword [esp + 0x18], 1
jmp 0x416cd3
mov eax, dword [esp + 0x34]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004136f0
mov edx, 0xf0f0f0f1
mov dword [esp + 0x40], eax
mov eax, ebx
mul edx
mov ecx, dword [esp + 0x18]
shr edx, 9
and ecx, esi
lea eax, [edx + 1]
mov edx, eax
cmp eax, 0x64
mov eax, 0x64
mov esi, eax
cmovbe esi, edx
mov dword [esp + 0x28], esi
jmp 0x415be6
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
mov ecx, edi
mov edx, ebx
call fcn.004159b0
mov esi, dword [esp + 0x34]
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.004136f0
mov dword [esp + 0x48], eax
mov eax, edi
mov dword [esp], esi
shl eax, 0xb
mov dword [esp + 4], eax
call fcn.004136f0
mov dword [esp + 0x2c], eax
mov eax, edi
mov dword [esp], esi
shl eax, 3
mov dword [esp + 4], eax
call fcn.004136f0
mov dword [esp + 0x70], eax
mov eax, edi
mov dword [esp + 0x4c], 0
add eax, 7
shr eax, 3
imul eax, ebx
test eax, eax
je 0x416ef5
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004136f0
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x28]
add eax, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.004136f0
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x6c]
mov edx, 0xa
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x68], 0
cmp dword [eax + 4], 0xa
mov eax, 3
cmovg eax, edx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x40]
add eax, ecx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x64]
sub eax, 4
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x48]
sub eax, 1
mov dword [esp + 0x60], eax
cmp dword [esp + 0x28], 1
jbe 0x417371
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
xor ebx, ebx
mov dword [esp + 4], 0
shl eax, 0xb
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x28]
lea edi, [ecx + 0x400]
jmp 0x416fb3
fld dword [eax*4 + 0x46a7c0]
fstp qword [ebp + ebx*8]
add ebx, 1
add edi, 0x410
cmp ebx, esi
je 0x416fd6
mov eax, dword [edi]
cmp eax, 0xff
jbe 0x416f9b
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
fild qword [esp + 0x10]
fstp qword [esp]
call fcn.00445f90
jmp 0x416fa2
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
mov ebp, eax
add ecx, 0x3fc
shl ebp, 8
mov dword [esp + 0x44], esi
mov edi, ecx
sub ebp, eax
shl eax, 3
mov dword [esp + 0x5c], eax
add edx, eax
mov esi, edi
mov dword [esp + 0x24], edi
mov ebx, dword [esp + 0x2c]
mov edi, edx
jmp 0x417030
cmp eax, 0xff
ja 0x417040
fld dword [eax*4 + 0x46a7c0]
fsubp st(1)
add esi, 0x410
fstp qword [ebx + ebp*8]
add ebx, 8
cmp edi, ebx
je 0x417064
mov eax, dword [esi]
fld qword [ebx]
test eax, eax
jne 0x417010
fld dword [0x46abc4]
jmp 0x41701e
fstp qword [esp + 0x18]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
fild qword [esp + 0x10]
fstp qword [esp]
call fcn.00445f90
fld qword [esp + 0x18]
fxch st(1)
jmp 0x41701e
mov edx, edi
mov edi, dword [esp + 0x24]
sub ebp, dword [esp + 0x28]
sub edi, 4
cmp dword [esp + 0x30], edi
jne 0x417002
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x44]
xor ebx, ebx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], 0
mov ebp, 1
add eax, 7
mov dword [esp], esi
shr eax, 3
mov dword [esp + 8], ecx
mov edi, eax
mov dword [esp + 0x44], eax
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], 0
imul ecx, edi
xor edi, edi
mov dword [esp + 0x80], ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
call sub.msvcrt.dll_memset
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x28]
fld qword [0x46abc8]
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x24]
fld st(0)
xor eax, eax
movzx edx, byte [ecx + edi]
mov ecx, dword [esp + 0x48]
imul edx, dword [esp + 0x5c]
add edx, dword [esp + 0x2c]
fld qword [esi + eax*8]
fadd qword [edx + eax*8]
fst qword [esi + eax*8]
fxch st(1)
fucomi st(1)
jbe 0x417120
fstp st(0)
mov byte [ecx + edi], al
jmp 0x417122
fstp st(1)
add eax, 1
cmp eax, ebx
jne 0x417101
cmp dword [esp + 0x24], 0x7cf
jbe 0x4173ae
fld qword [0x46abd0]
mov ecx, dword [esp + 0x4c]
xor eax, eax
mov dword [esp + 0x18], ecx
jmp 0x41715a
fstp qword [esi + eax*8]
add eax, 1
cmp eax, ebx
je 0x417190
fld st(1)
fsubr qword [esi + eax*8]
fucomi st(1)
jb 0x417150
fstp st(0)
mov ecx, eax
mov edx, eax
mov edi, ebp
and ecx, 7
shr edx, 3
add edx, dword [esp + 0x10]
shl edi, cl
fst qword [esi + eax*8]
add eax, 1
mov ecx, edi
mov edi, dword [esp + 0x18]
or byte [edi + edx], cl
cmp eax, ebx
jne 0x41715a
fstp st(0)
fstp st(0)
jmp 0x417194
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x44]
add dword [esp + 0x10], edx
add eax, 1
cmp dword [esp + 0x3c], eax
je 0x4171b2
mov dword [esp + 0x24], eax
jmp 0x4170e4
fstp st(0)
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x80]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x18], 1
mov dword [esp + 0x24], esi
movzx edi, byte [eax + ebx]
lea eax, [eax + ebx - 1]
sub ebp, edx
mov dword [esp + 0x10], ecx
mov ebx, edi
sub ebp, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
mov edx, ebx
shr dl, 3
mov edi, 1
movzx edx, dl
lea esi, [ecx + ebp]
mov ecx, ebx
and ecx, 7
shl edi, cl
mov ecx, edi
test byte [esi + edx], cl
je 0x417217
movzx edx, byte [eax]
cmp dl, bl
je 0x417217
add dword [esp + 0x18], 1
mov ebx, edx
mov byte [eax], bl
sub eax, 1
cmp dword [esp + 0x60], eax
jne 0x4171e3
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x74]
xor ebx, ebx
mov edx, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
call fcn.00413740
mov ecx, eax
mov dword [esp + 0x28], eax
xor eax, eax
test ecx, ecx
mov edx, dword [esp + 0x64]
mov ebp, dword [esp + 0x28]
je 0x417296
lea edi, [edx + 4]
mov ecx, edx
fld dword [0x46abc0]
add ebx, 1
mov dword [edx], 0
mov dword [edx + 0x3fc], 0
and edi, 0xfffffffc
add edx, 0x410
sub ecx, edi
add ecx, 0x400
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [edx - 0x10], 0
fstp qword [edx - 8]
cmp ebp, ebx
jne 0x417254
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x84]
lea esi, [esi]
movzx eax, byte [ecx]
movzx ebp, byte [edx]
add edx, 1
add ecx, 1
imul eax, eax, 0x410
add eax, ebx
add dword [eax + ebp*4], 1
add dword [eax + 0x400], 1
cmp edi, edx
jne 0x4172b0
add dword [esp + 0x68], 1
mov eax, dword [esp + 0x68]
cmp eax, dword [esp + 0x7c]
jne 0x416f5b
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413720
mov eax, dword [esp + 0x70]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413720
mov eax, dword [esp + 0x4c]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413720
mov eax, dword [esp + 0x74]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413720
mov eax, dword [esp + 0x64]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413720
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 4], esi
mov dword [esp], eax
mov eax, edi
call fcn.004137b0
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00413720
jmp 0x415d7f
mov edx, dword [esp + 0x48]
mov eax, edx
add edx, dword [esp + 0x3c]
mov byte [eax], 0
add eax, 1
cmp edx, eax
jne 0x41737b
mov dword [esp + 0x18], 1
jmp 0x417226
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 8]
mov dword [esp + 8], eax
mov dword [esp], ebx
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
jmp 0x415cdd
fild dword [esp + 0x24]
fmul qword [0x46abe8]
fdiv dword [0x46abf0]
fadd qword [0x46abf8]
fmul qword [0x46abd0]
jmp 0x41713d
fild dword [esp + 0x24]
fmul qword [0x46abe8]
fdiv dword [0x46abf0]
fadd qword [0x46abf8]
fmul qword [str.333333__]
jmp 0x416bed
fild dword [esp + 0x24]
fmul qword [0x46abe8]
fdiv dword [0x46abf0]
fadd qword [0x46abf8]
fmul dword [0x46abd8]
jmp 0x4166dd
mov ecx, dword [esp + 0x58]
shl eax, 2
mov edx, dword [ecx + 0xc]
mov dword [esp + 8], eax
mov dword [esp], ebx
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
jmp 0x415fec
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx + 8]
mov dword [esp + 8], eax
mov dword [esp], ebx
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
jmp 0x415f8c
mov ecx, dword [esp + 0x54]
shl eax, 2
mov edx, dword [ecx + 0xc]
mov dword [esp + 8], eax
mov dword [esp], ebx
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
jmp 0x415e74
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx + 8]
mov dword [esp + 8], eax
mov dword [esp], ebx
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
jmp 0x415e14
mov ecx, dword [esp + 0x50]
shl eax, 2
mov edx, dword [ecx + 0xc]
mov dword [esp + 8], eax
mov dword [esp], ebx
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
jmp 0x415d3d