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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x90c
mov esi, dword [esp + 0x920]
mov edi, dword [esp + 0x924]
mov dword [esp + 0x58], eax
mov eax, dword [0x7440a4]
sub esi, edx
sbb edi, ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], edi
fild qword [esp + 0x48]
fstp qword [esp + 0xb8]
mov eax, dword [eax]
fld qword [esp + 0xb8]
mov ebx, dword [eax]
fld dword [0x6c22e8]
fdivp st(1)
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
fstp dword [esp + 0x70]
call fcn.00433884
mov dword [esp + 0x54], edx
cmp dword [esp + 0x54], 0
fld dword [0x6c22e8]
mov dword [esp + 0x50], eax
fstp xword [esp + 0x90]
jg 0x41632f
jl 0x416304
cmp dword [esp + 0x50], 0
ja 0x41632f
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.00434123
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
lea esi, [esp + 0x100]
lea edi, [esp + 0x500]
mov dword [esp + 8], 1
mov dword [esp + 4], 0
xor ebp, ebp
mov dword [esp], esi
call fcn.0063e6d6
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.0063e6d6
mov dword [esp + 0x48], 1
mov dword [esp + 0x4c], 0x80000000
mov dword [esp + 0x84], 0
mov dword [esp + 0x68], edi
mov eax, dword [esp + 0x84]
cmp eax, dword [0x7440a8]
jge 0x416625
mov eax, dword [0x7440ac]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x60], 0xbf800000
mov ebx, dword [eax + ecx*4]
cmp dword [ebx + 0x134], 0
mov edi, dword [ebx + 0x50]
jne 0x4163e2
fild dword [ebx + 0x178]
fstp dword [esp + 0xb4]
fld dword [esp + 0xb4]
fdiv dword [0x6c22ec]
fstp dword [esp + 0x60]
test ebp, ebp
je 0x416436
cmp dword [edi + 8], 0
jne 0x416550
fld dword [esp + 0x60]
mov dword [esp + 4], 0x6c0439
mov dword [esp], esi
fstp qword [esp + 8]
call fcn.0063e73c
fld dword [esp + 0x60]
fstp qword [esp + 0x10]
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov eax, dword [ebx]
mov dword [esp + 4], 0x6c0442
mov dword [esp + 8], eax
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.0063e73c
jmp 0x416550
cmp dword [edi + 8], 0
jne 0x416550
fld1
mov eax, dword [ebx + 0x14]
fld dword [esp + 0x70]
mov dword [esp + 0x78], eax
fucomi st(1)
fstp st(1)
jbe 0x416c20
fild dword [esp + 0x78]
fstp dword [esp + 0xb4]
fld dword [esp + 0xb4]
fdivrp st(1)
fstp dword [esp + 0xb4]
fld dword [esp + 0xb4]
fld dword [esp + 0x60]
xor eax, eax
mov dword [esp + 4], 0x6c0457
mov dword [esp], esi
fstp qword [esp + 0x18]
fst qword [esp + 0x10]
fld st(0)
fstp dword [esp + 0x88]
fld xword [0x6c22f0]
fucompi st(1)
fstp st(0)
seta al
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
call fcn.0063e73c
mov eax, dword [esp + 0x78]
mov dword [esp + 4], 0x6c0474
mov dword [esp + 8], eax
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.0063e73c
fld dword [esp + 0x88]
mov eax, dword [esp + 0x68]
mov dword [esp + 4], 0x6c047e
fstp qword [esp + 8]
mov dword [esp], eax
call fcn.0063e73c
fld dword [esp + 0x60]
fstp qword [esp + 0x10]
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov eax, dword [ebx]
mov dword [esp + 4], 0x6c0442
mov dword [esp + 8], eax
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.0063e73c
cmp dword [esp + 0x58], 0
je 0x416534
mov dword [esp + 4], 0x6c0488
mov dword [esp], esi
call fcn.0063e73c
cmp dword [0x744028], 0
jne 0x416c29
test byte [edi + 0x3d], 0x80
mov ebp, 1
jne 0x416c7c
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call fcn.0046b3d2
add edx, 0x80000000
or edx, eax
je 0x416609
mov edi, dword [ebx + 0xc]
mov dword [esp], edi
call fcn.0046b3d2
mov dword [esp + 0x10], 1
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov dword [esp + 0x14], 0xf4240
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00647ec6
cmp edx, dword [esp + 0x4c]
jl 0x416609
jg 0x4165bc
cmp eax, dword [esp + 0x48]
jb 0x416609
mov edi, dword [ebx + 0xc]
mov dword [esp], edi
call fcn.0046b3d2
mov dword [esp + 0x10], 1
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x14], 0xf4240
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00647ec6
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
cmp dword [esp + 0x58], 0
je 0x416619
mov eax, dword [ebx + 0x70]
add dword [0x744200], eax
inc dword [esp + 0x84]
jmp 0x41638e
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov ebp, 0xe10
mov dword [esp + 8], 0xf4240
mov dword [esp + 0xc], 0
sar edx, 0x1f
xor ecx, edx
mov esi, ecx
mov ecx, dword [esp + 0x4c]
xor ecx, edx
sub esi, edx
mov edi, ecx
mov dword [esp], esi
sbb edi, edx
mov dword [esp + 4], edi
call fcn.0068a1b7
mov dword [esp + 4], edi
mov ebx, eax
mov dword [esp + 8], 0xf4240
mov dword [esp + 0xc], 0
mov dword [esp], esi
call fcn.0068a2f7
mov dword [esp + 0x78], eax
mov eax, ebx
mov ecx, 0x3c
cdq
idiv ecx
mov edi, eax
mov eax, ebx
mov dword [esp + 0x84], edx
cdq
idiv ebp
mov ebp, eax
mov eax, edi
mov edi, 0x6c0429
cdq
idiv ecx
cmp dword [esp + 0x4c], 0
mov eax, 0x6c042b
cmovns edi, eax
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x4c]
mov dword [esp + 0x88], edx
je 0x416719
mov eax, dword [esp + 0x54]
sub eax, 0
js 0x416719
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
shld edx, eax, 3
shl eax, 3
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
fild qword [esp + 0x60]
fstp qword [esp + 0xb8]
fld qword [esp + 0xb8]
fild qword [esp + 0x48]
fstp qword [esp + 0xb8]
fld qword [esp + 0xb8]
fld dword [0x6c230c]
fdivp st(1)
fdivp st(1)
fstp qword [esp + 0x60]
jmp 0x416729
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0xbff00000
fldz
fld dword [esp + 0x70]
fucompi st(1)
fstp dword [esp + 0xa0]
jp 0x41673c
je 0x416761
fild qword [esp + 0x48]
fstp qword [esp + 0xb8]
fld qword [esp + 0xb8]
fld xword [esp + 0x90]
fdivp st(1)
fdiv dword [esp + 0x70]
fstp qword [esp + 0x68]
jmp 0x416771
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0xbff00000
cmp dword [esp + 0x54], 0
jns 0x416791
lea eax, [esp + 0x100]
mov dword [esp + 4], 0x6c04df
mov dword [esp], eax
call fcn.0063e73c
jmp 0x4167c6
fild qword [esp + 0x50]
lea eax, [esp + 0x100]
mov dword [esp + 4], 0x6c04ee
mov dword [esp], eax
fstp qword [esp + 0xb8]
fld qword [esp + 0xb8]
fld dword [0x6c2310]
fmulp st(1)
fstp qword [esp + 8]
call fcn.0063e73c
mov eax, dword [esp + 0x4c]
add eax, 0x80000000
or eax, dword [esp + 0x48]
jne 0x4167ee
lea eax, [esp + 0x100]
mov dword [esp + 4], 0x6c0501
mov dword [esp], eax
call fcn.0063e73c
jmp 0x416833
mov eax, dword [esp + 0x78]
mov ecx, 0x2710
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edi
mov dword [esp + 4], 0x6c0506
cdq
idiv ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x100]
mov dword [esp], eax
call fcn.0063e73c
fldz
lea eax, [esp + 0x100]
fld qword [esp + 0x60]
fxch st(1)
fucomi st(1)
fstp st(1)
fstp qword [esp + 0x70]
jbe 0x416875
mov dword [esp], eax
mov dword [esp + 4], 0x6c051d
call fcn.0063e73c
lea eax, [esp + 0x500]
mov dword [esp + 4], 0x6c0529
mov dword [esp], eax
call fcn.0063e73c
jmp 0x4168ac
fld qword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], 0x6c0536
fstp qword [esp + 8]
call fcn.0063e73c
fld qword [esp + 0x60]
lea eax, [esp + 0x500]
mov dword [esp + 4], 0x6c054b
fstp qword [esp + 8]
mov dword [esp], eax
call fcn.0063e73c
cmp dword [esp + 0x54], 0
lea ebx, [esp + 0x500]
jns 0x4168cc
mov dword [esp + 4], 0x6c0561
mov dword [esp], ebx
call fcn.0063e73c
jmp 0x4168ec
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 4], 0x6c0571
mov dword [esp], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.0063e73c
mov eax, dword [esp + 0x4c]
add eax, 0x80000000
or eax, dword [esp + 0x48]
jne 0x41692d
mov dword [esp + 4], 0x6c0582
mov dword [esp], ebx
call fcn.0063e73c
mov dword [esp + 4], 0x6c0593
mov dword [esp], ebx
call fcn.0063e73c
mov dword [esp + 4], 0x6c05a4
mov dword [esp], ebx
call fcn.0063e73c
jmp 0x4169aa
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
lea esi, [esp + 0x500]
mov dword [esp + 4], 0x6c05b2
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.0063e73c
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], 0x6c05c4
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.0063e73c
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edi
mov dword [esp + 4], 0x6c05d6
mov dword [esp], esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x10], eax
call fcn.0063e73c
mov eax, dword [0x744204]
lea esi, [esp + 0x100]
test eax, eax
jne 0x4169c3
cmp dword [0x744200], 0
je 0x4169e1
mov edx, dword [0x744200]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x6c05f6
mov dword [esp], esi
mov dword [esp + 0xc], edx
call fcn.0063e73c
mov eax, dword [0x744204]
lea edi, [esp + 0x500]
mov dword [esp + 4], 0x6c0606
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.0063e73c
mov eax, dword [0x744200]
mov dword [esp + 4], 0x6c0615
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.0063e73c
fld qword [esp + 0x70]
fld qword [esp + 0x68]
fxch st(1)
fucompi st(1)
fstp st(0)
jbe 0x416a4c
mov dword [esp + 4], 0x6c0625
mov dword [esp], esi
call fcn.0063e73c
mov dword [esp + 4], 0x6c0630
mov dword [esp], edi
call fcn.0063e73c
jmp 0x416a7c
fld qword [esp + 0x68]
mov dword [esp + 4], 0x6c063b
mov dword [esp], esi
fstp qword [esp + 8]
call fcn.0063e73c
fld qword [esp + 0x68]
mov dword [esp + 4], 0x6c0649
mov dword [esp], edi
fstp qword [esp + 8]
call fcn.0063e73c
mov edx, dword [0x6b5014]
mov eax, dword [esp + 0x58]
or eax, edx
je 0x416b0f
cmp dword [esp + 0x58], 1
sbb eax, eax
and eax, 3
add eax, 0xa
dec edx
movsx edi, al
jne 0x416ad4
call fcn.00647756
cmp eax, 0x1f
jg 0x416ad4
mov eax, dword [esp + 0x100]
mov dword [esp + 0xc], edi
mov dword [esp + 4], 0x6c0657
mov dword [esp + 8], eax
mov eax, dword [0x924678]
add eax, 0x40
mov dword [esp], eax
call fcn.00414868
jmp 0x416aff
mov eax, dword [esp + 0x100]
mov dword [esp + 0x10], edi
mov dword [esp + 8], 0x6c0657
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
mov eax, dword [0x924678]
add eax, 0x40
mov dword [esp], eax
call fcn.0069802f
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.0063ea61
cmp dword [0x7440c0], 0
je 0x416c10
cmp dword [esp + 0x58], 0
mov edx, 0x6c0430
mov eax, 0x6c042c
mov dword [esp + 4], 0x6c0660
mov dword [esp], ebx
cmove eax, edx
mov dword [esp + 8], eax
call fcn.0063e73c
mov eax, dword [esp + 0x508]
mov edx, dword [esp + 0x504]
dec eax
cmp eax, edx
cmova eax, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x500]
mov dword [esp + 4], eax
mov eax, dword [0x7440c0]
mov dword [esp], eax
call fcn.00434481
mov eax, dword [0x7440c0]
mov dword [esp], eax
call fcn.00434431
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.0063ea61
cmp dword [esp + 0x58], 0
je 0x417660
mov dword [esp], 0x7440c0
call fcn.004350a3
test eax, eax
mov edx, eax
jns 0x416e7a
lea edi, [esp + 0xc0]
xor eax, eax
mov ecx, 0x10
lea ebx, [esp + 0xc0]
rep stosd dword es:[edi], eax
mov dword [esp + 8], 0x40
mov dword [esp + 4], ebx
mov dword [esp], edx
call fcn.00641482
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x6c066d
mov dword [esp + 4], 0x10
mov dword [esp], 0
call fcn.00647705
jmp 0x416e7a
cmp dword [esp + 0x58], 0
jne 0x416e7a
jmp 0x417660
fstp st(0)
fldz
jmp 0x416479
fld dword [esp + 0x60]
fistp dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 0x33
ja 0x416c47
inc dword [eax*4 + 0x7440e0]
xor ebp, ebp
mov eax, dword [ebp + 0x7440e0]
add ebp, 4
inc eax
mov dword [esp], eax
call fcn.00646fbb
mov dword [esp + 4], 0x6c048a
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.0063e73c
cmp ebp, 0x80
jne 0x416c49
jmp 0x416541
mov eax, dword [esp + 0x58]
or eax, dword [ebx + 0x184]
je 0x416550
mov dword [esp + 4], 0x6c048d
mov dword [esp], esi
xor ebp, ebp
mov byte [esp + 0xc0], 0x59
mov byte [esp + 0xc1], 0x55
mov byte [esp + 0xc2], 0x56
call fcn.0063e73c
fldz
fld st(0)
cmp dword [esp + 0x58], 0
fld dword [0x6c2300]
je 0x416cfe
cmp dword [edi + ebp*8 + 0x25c], 0
fild qword [edi + ebp*8 + 0x258]
jns 0x416cde
fadd dword [0x6c22fc]
mov eax, dword [edi + 0x5c]
fstp qword [esp + 0x88]
imul eax, dword [edi + 0x60]
fld st(0)
mov dword [esp + 0x60], eax
fimul dword [esp + 0x60]
fmulp st(1)
fimul dword [esp + 0x78]
jmp 0x416d1f
fild qword [ebx + ebp*8 + 0x188]
mov eax, dword [edi + 0x5c]
imul eax, dword [edi + 0x60]
mov dword [esp + 0x60], eax
fstp qword [esp + 0x88]
fld st(0)
fimul dword [esp + 0x60]
fmulp st(1)
test ebp, ebp
fstp qword [esp + 0x60]
je 0x416d35
fld dword [0x6c2304]
fmul qword [esp + 0x60]
fstp qword [esp + 0x60]
fld qword [esp + 0x88]
fadd st(1), st(0)
fxch st(1)
fstp qword [esp + 0xb8]
fld qword [esp + 0xb8]
fstp qword [esp + 0xa8]
fld qword [esp + 0x60]
fadd st(2), st(0)
fxch st(2)
fstp qword [esp + 0xb8]
fld qword [esp + 0xb8]
fstp qword [esp + 0xa0]
fdivrp st(1)
fstp qword [esp]
call fcn.00697f87
fld xword [0x6c2320]
fmulp st(1)
fstp qword [esp + 0xb8]
movsx ecx, byte [esp + ebp + 0xc0]
mov dword [esp + 4], 0x6c0493
mov dword [esp], esi
inc ebp
fld qword [esp + 0xb8]
fst qword [esp + 0xc]
mov dword [esp + 8], ecx
mov byte [esp + 0x60], cl
fstp qword [esp + 0x88]
call fcn.0063e73c
mov al, byte [esp + 0x60]
fld qword [esp + 0x88]
or eax, 0x20
fstp qword [esp + 0x14]
movsx eax, al
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov eax, dword [ebx]
mov dword [esp + 4], 0x6c049d
mov dword [esp + 8], eax
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.0063e73c
fld qword [esp + 0xa0]
cmp ebp, 3
fld qword [esp + 0xa8]
jne 0x416cba
fdivrp st(1)
mov ebp, 1
fstp qword [esp]
call fcn.00697f87
fld xword [0x6c2320]
mov dword [esp + 4], 0x6c04b9
mov dword [esp], esi
fmulp st(1)
fstp qword [esp + 0xb8]
fld qword [esp + 0xb8]
fst qword [esp + 8]
fstp qword [esp + 0x60]
call fcn.0063e73c
fld qword [esp + 0x60]
fstp qword [esp + 0x10]
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov eax, dword [ebx]
mov dword [esp + 4], 0x6c04c2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.0063e73c
jmp 0x416550
mov eax, dword [0x7440a8]
mov ebp, dword [0x7440ac]
xor ecx, ecx
mov dword [esp + 0x84], 1
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
cmp ecx, dword [esp + 0x88]
jge 0x416f8f
mov eax, dword [ebp + ecx*4]
mov ebx, dword [eax + 0x50]
mov edx, dword [eax + 0x15c]
mov eax, dword [eax + 0x158]
mov esi, dword [ebx + 8]
cmp esi, 1
je 0x416f34
cmp esi, 3
je 0x416f3e
test esi, esi
jne 0x416f48
add dword [esp + 0x58], eax
adc dword [esp + 0x5c], edx
jmp 0x416f50
add dword [esp + 0x60], eax
adc dword [esp + 0x64], edx
jmp 0x416f50
add dword [esp + 0x68], eax
adc dword [esp + 0x6c], edx
jmp 0x416f50
add dword [esp + 0x78], eax
adc dword [esp + 0x7c], edx
mov esi, dword [ebx + 0x48]
mov edi, esi
sar edi, 0x1f
add dword [esp + 0x70], esi
adc dword [esp + 0x74], edi
add dword [esp + 0x48], eax
mov eax, dword [ebx + 0x3c]
adc dword [esp + 0x4c], edx
and eax, 0x600
cmp eax, 0x200
mov eax, 0
cmove eax, dword [esp + 0x84]
inc ecx
mov dword [esp + 0x84], eax
jmp 0x416ef9
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x4c]
je 0x41703c
mov edx, dword [esp + 0x54]
sar edx, 0x1f
mov eax, edx
sub eax, dword [esp + 0x50]
sbb edx, dword [esp + 0x54]
mov eax, edx
shr eax, 0x1f
je 0x41703c
mov eax, dword [esp + 0x54]
cmp dword [esp + 0x4c], eax
ja 0x41703c
jb 0x416fcf
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x48], eax
ja 0x41703c
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x48]
mov edx, dword [esp + 0x54]
sbb edx, dword [esp + 0x4c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
test edx, edx
fild qword [esp + 0x50]
jns 0x416ff5
fadd dword [0x6c22fc]
fstp qword [esp + 0xb8]
cmp dword [esp + 0x4c], 0
fld qword [esp + 0xb8]
fld dword [0x6c2314]
fmulp st(1)
fild qword [esp + 0x48]
jns 0x41701c
fadd dword [0x6c22fc]
fstp qword [esp + 0xb8]
fld qword [esp + 0xb8]
fdivp st(1)
fstp dword [esp + 0xb4]
fld dword [esp + 0xb4]
jmp 0x417040
fld1
fchs
cmp dword [esp + 0x74], 0
fild qword [esp + 0x70]
jns 0x417051
fadd dword [0x6c22fc]
fstp qword [esp + 0xb8]
cmp dword [esp + 0x7c], 0
fld qword [esp + 0xb8]
fld dword [0x6c2310]
fmul st(1), st(0)
fxch st(1)
fstp qword [esp + 0x2c]
fild qword [esp + 0x78]
jns 0x41707e
fadd dword [0x6c22fc]
fstp qword [esp + 0xb8]
cmp dword [esp + 0x6c], 0
fld qword [esp + 0xb8]
fmul st(1)
fstp qword [esp + 0x24]
fild qword [esp + 0x68]
jns 0x4170a3
fadd dword [0x6c22fc]
fstp qword [esp + 0xb8]
cmp dword [esp + 0x64], 0
fld qword [esp + 0xb8]
fmul st(1)
fstp qword [esp + 0x1c]
fild qword [esp + 0x60]
jns 0x4170c8
fadd dword [0x6c22fc]
fstp qword [esp + 0xb8]
cmp dword [esp + 0x5c], 0
fld qword [esp + 0xb8]
fmul st(1)
fstp qword [esp + 0x14]
fild qword [esp + 0x58]
jns 0x4170f1
fadd dword [0x6c22fc]
fxch st(2)
jmp 0x4170f3
fxch st(2)
fstp dword [esp + 0x50]
fxch st(1)
mov dword [esp + 8], 0x6c06ab
mov dword [esp + 4], 0x20
mov dword [esp], 0
fstp qword [esp + 0xb8]
fld qword [esp + 0xb8]
fmulp st(1)
fstp qword [esp + 0xc]
call fcn.00647705
fld dword [esp + 0xa0]
fld dword [esp + 0x50]
fucomi st(1)
fstp st(1)
jb 0x41715c
fstp qword [esp + 0xc]
mov dword [esp + 8], 0x6c0717
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
jmp 0x41717a
fstp st(0)
mov dword [esp + 8], 0x6c071c
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
mov dword [esp + 8], 0x6bfe41
mov dword [esp + 4], 0x20
xor ebx, ebx
mov dword [esp], 0
call fcn.00647705
cmp ebx, dword [0x7440b0]
jge 0x4173bd
mov eax, dword [0x7440b4]
xor esi, esi
mov edi, dword [eax + ebx*4]
mov eax, dword [edi]
mov eax, dword [eax + 0x420]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x6c0724
mov dword [esp + 4], 0x28
mov dword [esp], 0
mov dword [esp + 0x10], eax
call fcn.00647705
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
cmp esi, dword [edi + 0x58]
jge 0x417375
mov edx, dword [edi + 0xc]
mov eax, dword [0x7440bc]
add edx, esi
mov ebp, dword [eax + edx*4]
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x134]
mov eax, dword [eax + 8]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x130]
add dword [esp + 0x78], eax
mov eax, dword [ebp + 0x138]
adc dword [esp + 0x7c], edx
mov edx, dword [ebp + 0x13c]
add dword [esp + 0x88], eax
mov eax, dword [esp + 0x50]
adc dword [esp + 0x8c], edx
mov dword [esp], eax
call fcn.00651865
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x6c073a
mov dword [esp + 4], 0x28
mov dword [esp], 0
call fcn.00647705
mov eax, dword [ebp + 0x130]
mov edx, dword [ebp + 0x134]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov eax, dword [ebp + 0x138]
mov edx, dword [ebp + 0x13c]
mov dword [esp + 8], 0x6c0757
mov dword [esp + 4], 0x28
mov dword [esp], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00647705
cmp dword [ebp + 0x10], 0
je 0x417353
mov eax, dword [ebp + 0x140]
mov edx, dword [ebp + 0x144]
mov dword [esp + 8], 0x6c0778
mov dword [esp + 4], 0x28
mov dword [esp], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00647705
cmp dword [esp + 0x50], 1
jne 0x417337
mov eax, dword [ebp + 0x148]
mov edx, dword [ebp + 0x14c]
mov dword [esp + 8], 0x6c078c
mov dword [esp + 4], 0x28
mov dword [esp], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00647705
mov dword [esp + 8], 0x6c079c
mov dword [esp + 4], 0x28
mov dword [esp], 0
call fcn.00647705
mov dword [esp + 8], 0x6bfe41
mov dword [esp + 4], 0x28
inc esi
mov dword [esp], 0
call fcn.00647705
jmp 0x417200
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
inc ebx
mov dword [esp + 8], 0x6c079f
mov dword [esp + 4], 0x28
mov dword [esp], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00647705
jmp 0x417198
xor ebx, ebx
cmp ebx, dword [0x7440a0]
jge 0x4175e6
mov eax, dword [0x7440a4]
xor esi, esi
mov edi, dword [eax + ebx*4]
mov eax, dword [edi]
mov eax, dword [eax + 0x420]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x6c07cb
mov dword [esp + 4], 0x28
mov dword [esp], 0
mov dword [esp + 0x10], eax
call fcn.00647705
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov eax, dword [edi]
cmp dword [eax + 0x18], esi
jbe 0x41759e
mov edx, dword [edi + 8]
mov eax, dword [0x7440ac]
add edx, esi
mov ebp, dword [eax + edx*4]
mov eax, dword [ebp + 0x50]
mov edx, dword [ebp + 0x15c]
mov eax, dword [eax + 8]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x158]
add dword [esp + 0x78], eax
mov eax, dword [ebp + 0x160]
adc dword [esp + 0x7c], edx
mov edx, dword [ebp + 0x164]
add dword [esp + 0x88], eax
mov eax, dword [esp + 0x50]
adc dword [esp + 0x8c], edx
mov dword [esp], eax
call fcn.00651865
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x6c07e2
mov dword [esp + 4], 0x28
mov dword [esp], 0
call fcn.00647705
cmp dword [ebp + 0x10], 0
je 0x417538
mov eax, dword [ebp + 0x168]
mov edx, dword [ebp + 0x16c]
mov dword [esp + 8], 0x6c0800
mov dword [esp + 4], 0x28
mov dword [esp], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00647705
cmp dword [esp + 0x50], 1
jne 0x41751c
mov eax, dword [ebp + 0x170]
mov edx, dword [ebp + 0x174]
mov dword [esp + 8], 0x6c078c
mov dword [esp + 4], 0x28
mov dword [esp], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00647705
mov dword [esp + 8], 0x6c079c
mov dword [esp + 4], 0x28
mov dword [esp], 0
call fcn.00647705
mov eax, dword [ebp + 0x158]
mov edx, dword [ebp + 0x15c]
inc esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov eax, dword [ebp + 0x160]
mov edx, dword [ebp + 0x164]
mov dword [esp + 8], 0x6c0814
mov dword [esp + 4], 0x28
mov dword [esp], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00647705
mov dword [esp + 8], 0x6bfe41
mov dword [esp + 4], 0x28
mov dword [esp], 0
call fcn.00647705
jmp 0x417427
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
inc ebx
mov dword [esp + 8], 0x6c0836
mov dword [esp + 4], 0x28
mov dword [esp], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00647705
jmp 0x4173bf
mov eax, dword [esp + 0x70]
add eax, dword [esp + 0x48]
mov edx, dword [esp + 0x74]
adc edx, dword [esp + 0x4c]
add eax, dword [esp + 0x68]
adc edx, dword [esp + 0x6c]
add eax, dword [esp + 0x60]
adc edx, dword [esp + 0x64]
add eax, dword [esp + 0x58]
adc edx, dword [esp + 0x5c]
mov ecx, edx
or ecx, eax
jne 0x417660
mov dword [esp + 8], 0x6c0860
mov dword [esp + 4], 0x18
mov dword [esp], 0
call fcn.00647705
cmp dword [esp + 0x84], 0
je 0x417644
mov dword [esp + 8], 0x6bfe41
jmp 0x41764c
mov dword [esp + 8], 0x6c088b
mov dword [esp + 4], 0x18
mov dword [esp], 0
call fcn.00647705
add esp, 0x90c
pop ebx
pop esi
pop edi
pop ebp
ret