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

Disassembly:
sub esp, 0x15c
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0xec], 0
mov eax, dword [esi + 0x2bc]
test eax, eax
jle 0x42fe58
mov eax, dword [esi + 0x2ac]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [esp + 0xe8], ecx
je 0x42fe58
fld dword [esi + 0x2dc]
fcomp dword [0x4a7898]
mov edi, dword [ecx + 8]
lea eax, [ecx + 8]
fnstsw ax
test ah, 0x40
jne 0x42eec3
call fcn.00477706
fld dword [esi + 0x2dc]
mov ebx, eax
call fcn.004770c8
mov ecx, eax
mov eax, ebx
cdq
idiv ecx
mov dword [esp + 0x8c], edx
fild dword [esp + 0x8c]
fld dword [esi + 0x2dc]
fmul dword [0x4a7884]
fsubp st(1)
fstp dword [esp + 0x8c]
jmp 0x42eece
mov dword [esp + 0x8c], 0
call fcn.00477706
cdq
mov ecx, 0x168
idiv ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x8c]
fmul dword [0x4a7ac8]
fld st(0)
fsin
fstp dword [esp + 0x14]
fcos
fstp dword [esp + 0x1c]
call fcn.004120d0
fld dword [esp + 0x10]
fcos
mov al, byte [0x59a540]
test al, 1
fstp dword [esp + 0x4c]
fld dword [esp + 0x10]
fsin
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x60], edx
fst dword [esp + 0x50]
fchs
fstp dword [esp + 0x5c]
jne 0x42ef4e
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a540], dl
call fcn.00476928
add esp, 4
fld dword [esp + 0x14]
fstp dword [0x59a550]
fld dword [esp + 0x1c]
fstp dword [0x59a558]
fld dword [esp + 0x6c]
fmul dword [0x59a558]
fld dword [esp + 0x4c]
fmul dword [0x59a550]
mov dword [0x59a554], 0
faddp st(1)
fadd dword [esp + 0x7c]
fstp dword [esp + 0x14]
fld dword [esp + 0x70]
fmul dword [0x59a558]
fld dword [esp + 0x50]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x80]
fstp dword [esp + 0x18]
fld dword [esp + 0x74]
fmul dword [0x59a558]
fld dword [esp + 0x54]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x84]
fst dword [esp + 0x1c]
fld dword [esp + 0x18]
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
fld st(2)
fmul st(3)
faddp st(1)
fld st(1)
fmul st(2)
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fcom dword [0x4a7898]
fnstsw ax
test ah, 0x40
jne 0x42f015
fld dword [esp + 0x14]
fdiv st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fdiv st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fdiv st(1)
fstp dword [esp + 0x1c]
mov eax, dword [esi + 0x2e8]
mov ecx, dword [esi + 0x2ec]
mov edx, dword [esi + 0x2f0]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x30c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi + 0x310]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0x30], edx
mov edx, dword [esi + 0x314]
mov dword [esp + 0x10c], 0
mov ebx, dword [esp + 0x10c]
mov dword [esp + 0x110], 0x3f800000
mov ebp, dword [esp + 0x110]
mov dword [esp + 0x108], 0
test eax, eax
fstp st(0)
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
je 0x42f1e3
lea ecx, [esp + 0xcc]
add eax, 0xbc
push ecx
mov ecx, dword [eax]
sub esp, 0xc
mov edx, esp
sub esp, 0xc
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, esp
mov dword [edx + 8], eax
mov edx, dword [esp + 0x124]
mov dword [ecx], edx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebp
mov ecx, esi
call fcn.00431300
test al, al
je 0x42f1a5
lea eax, [esp + 0xcc]
lea ecx, [esp + 0x4c]
push eax
push ecx
call fcn.0044484e
mov al, byte [0x59a540]
test al, 1
jne 0x42f105
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a540], dl
call fcn.00476928
add esp, 4
fld dword [esp + 0x28]
fstp dword [0x59a550]
fld dword [esp + 0x2c]
fstp dword [0x59a554]
fld dword [esp + 0x30]
fstp dword [0x59a558]
fld dword [esp + 0x6c]
fmul dword [0x59a558]
fld dword [esp + 0x5c]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x4c]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x7c]
fstp dword [esp + 0x28]
fld dword [esp + 0x70]
fmul dword [0x59a558]
fld dword [esp + 0x60]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x50]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x80]
fstp dword [esp + 0x2c]
fld dword [esp + 0x74]
fmul dword [0x59a558]
fld dword [esp + 0x64]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x84]
jmp 0x42f1df
fld dword [esp + 0xd8]
fcomp dword [0x4a794c]
fnstsw ax
test ah, 0x40
jne 0x42f1e3
fld dword [esp + 0x28]
fmul dword [0x4a78a4]
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
fmul dword [0x4a78a4]
fstp dword [esp + 0x2c]
fld dword [esp + 0x30]
fmul dword [0x4a78a4]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fld dword [esp + 0x2c]
fld dword [esp + 0x28]
fmul dword [esp + 0x28]
fld st(2)
fmul st(3)
faddp st(1)
fld st(1)
fmul st(2)
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fcomp dword [0x4a7898]
fnstsw ax
test ah, 0x40
jne 0x42f36b
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0xcc]
push edx
mov edx, dword [esp + 0x30]
sub esp, 0xc
mov eax, esp
sub esp, 0xc
mov dword [eax], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], edx
mov edx, esp
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x124]
mov dword [edx], eax
mov ecx, esi
mov dword [edx + 4], ebx
mov dword [edx + 8], ebp
call fcn.00431300
test al, al
je 0x42f32d
lea ecx, [esp + 0xcc]
lea edx, [esp + 0x4c]
push ecx
push edx
call fcn.0044484e
mov al, byte [0x59a540]
test al, 1
jne 0x42f28d
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a540], dl
call fcn.00476928
add esp, 4
fld dword [esp + 0x34]
fstp dword [0x59a550]
fld dword [esp + 0x38]
fstp dword [0x59a554]
fld dword [esp + 0x3c]
fstp dword [0x59a558]
fld dword [esp + 0x6c]
fmul dword [0x59a558]
fld dword [esp + 0x5c]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x4c]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x7c]
fstp dword [esp + 0x34]
fld dword [esp + 0x70]
fmul dword [0x59a558]
fld dword [esp + 0x60]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x50]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x80]
fstp dword [esp + 0x38]
fld dword [esp + 0x74]
fmul dword [0x59a558]
fld dword [esp + 0x64]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x84]
jmp 0x42f367
fld dword [esp + 0xd8]
fcomp dword [0x4a794c]
fnstsw ax
test ah, 0x40
jne 0x42f36b
fld dword [esp + 0x34]
fmul dword [0x4a78a4]
fstp dword [esp + 0x34]
fld dword [esp + 0x38]
fmul dword [0x4a78a4]
fstp dword [esp + 0x38]
fld dword [esp + 0x3c]
fmul dword [0x4a78a4]
fstp dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
lea eax, [esp + 0xcc]
push eax
mov eax, dword [esp + 0x3c]
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
mov dword [ecx], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + 4], eax
mov eax, esp
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x124]
mov dword [eax], ecx
mov ecx, esi
mov dword [eax + 4], ebx
mov dword [eax + 8], ebp
call fcn.00431300
test al, al
je 0x42f47d
lea edx, [esp + 0xcc]
lea eax, [esp + 0x4c]
push edx
push eax
call fcn.0044484e
mov al, byte [0x59a540]
test al, 1
jne 0x42f3e2
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a540], dl
call fcn.00476928
add esp, 4
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push ecx
push edx
push eax
mov ecx, 0x59a550
call fcn.00411f50
fld dword [esp + 0x6c]
fmul dword [0x59a558]
fld dword [esp + 0x5c]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x4c]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x7c]
fstp dword [esp + 0x14]
fld dword [esp + 0x70]
fmul dword [0x59a558]
fld dword [esp + 0x60]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x50]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x80]
fstp dword [esp + 0x18]
fld dword [esp + 0x74]
fmul dword [0x59a558]
fld dword [esp + 0x64]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x84]
jmp 0x42f4b7
fld dword [esp + 0xd8]
fcomp dword [0x4a794c]
fnstsw ax
test ah, 0x40
jne 0x42f4bb
fld dword [esp + 0x14]
fmul dword [0x4a78a4]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fmul dword [0x4a78a4]
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fmul dword [0x4a78a4]
fstp dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [edi + 0x40], ecx
mov dword [edi + 0x44], edx
mov dword [edi + 0x48], eax
mov al, byte [0x59a56c]
mov ecx, dword [esi + 0x318]
test al, 1
mov dword [esp + 0xa8], ecx
jne 0x42f4fe
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a56c], dl
call fcn.00476928
add esp, 4
fld dword [esp + 0xa8]
fmul dword [esp + 0x14]
fstp dword [0x59a570]
fld dword [esp + 0x18]
fmul dword [esp + 0xa8]
mov edx, dword [0x59a570]
mov dword [esp + 0x12c], edx
fstp dword [0x59a574]
fld dword [esp + 0x1c]
fmul dword [esp + 0xa8]
mov eax, dword [0x59a574]
mov dword [esp + 0x130], eax
fstp dword [0x59a578]
mov ecx, dword [0x59a578]
mov dword [edi + 0x4c], edx
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
mov eax, dword [esi + 0x34]
mov dword [esp + 0x134], ecx
test eax, eax
je 0x42faa1
mov cl, byte [eax + 0xd8]
test cl, cl
je 0x42faa1
fld dword [eax + 0xdc]
fmul dword [edi + 0x8c]
fstp dword [edi + 0x8c]
mov edx, dword [esi + 0x34]
fld dword [edx + 0xdc]
fld st(0)
fmul dword [edi + 0x4c]
fstp dword [edi + 0x4c]
fld st(0)
fmul dword [edi + 0x50]
fstp dword [edi + 0x50]
fmul dword [edi + 0x54]
fstp dword [edi + 0x54]
mov al, byte [esi + 0x4c8]
test al, al
je 0x42f663
mov eax, dword [esi + 0x4bc]
test eax, eax
je 0x42f663
add eax, 0x3c
mov ecx, dword [eax]
mov dword [esp + 0xf0], ecx
fld dword [esp + 0xf0]
fmul dword [esi + 0x2cc]
mov edx, dword [eax + 4]
mov dword [esp + 0xf4], edx
mov eax, dword [eax + 8]
fstp dword [esp + 0xfc]
fld dword [esp + 0xf4]
fmul dword [esi + 0x2d0]
mov dword [esp + 0xf8], eax
fstp dword [esp + 0x100]
fld dword [esp + 0xf8]
fmul dword [esi + 0x2d4]
fstp dword [esp + 0x104]
fld dword [esp + 0xf0]
fmul dword [esi + 0x2c0]
fstp dword [esp + 0xac]
fld dword [esp + 0xf4]
fmul dword [esi + 0x2c4]
fstp dword [esp + 0xb0]
fld dword [esp + 0xf8]
fmul dword [esi + 0x2c8]
fstp dword [esp + 0xb4]
jmp 0x42f7ad
mov ecx, dword [esi + 0x34]
mov al, byte [0x59a56c]
test al, 1
mov edx, dword [ecx + 0xdc]
mov dword [esp + 0xc8], edx
jne 0x42f694
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a56c], dl
call fcn.00476928
add esp, 4
fld dword [esp + 0xc8]
fmul dword [esi + 0x2cc]
fstp dword [0x59a570]
fld dword [esp + 0xc8]
fmul dword [esi + 0x2d0]
mov eax, dword [0x59a570]
mov dword [esp + 0x150], eax
mov dword [esp + 0xfc], eax
fstp dword [0x59a574]
fld dword [esp + 0xc8]
fmul dword [esi + 0x2d4]
mov ecx, dword [0x59a574]
mov dword [esp + 0x154], ecx
mov dword [esp + 0x100], ecx
fstp dword [0x59a578]
mov eax, dword [esi + 0x34]
mov edx, dword [0x59a578]
mov dword [esp + 0x158], edx
mov dword [esp + 0x104], edx
mov ecx, dword [eax + 0xdc]
mov al, byte [0x59a56c]
test al, 1
mov dword [esp + 0xb8], ecx
jne 0x42f739
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a56c], dl
call fcn.00476928
add esp, 4
fld dword [esp + 0xb8]
fmul dword [esi + 0x2c0]
fstp dword [0x59a570]
fld dword [esp + 0xb8]
fmul dword [esi + 0x2c4]
mov edx, dword [0x59a570]
mov dword [esp + 0x114], edx
mov dword [esp + 0xac], edx
fstp dword [0x59a574]
fld dword [esp + 0xb8]
fmul dword [esi + 0x2c8]
mov eax, dword [0x59a574]
mov dword [esp + 0x118], eax
mov dword [esp + 0xb0], eax
fstp dword [0x59a578]
mov ecx, dword [0x59a578]
mov dword [esp + 0x11c], ecx
mov dword [esp + 0xb4], ecx
call fcn.00477706
cdq
mov ecx, 0x64
idiv ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul dword [0x4a79a0]
fld dword [esp + 0x104]
fsub dword [esp + 0xb4]
fmulp st(1)
fadd dword [esp + 0xb4]
fstp dword [esp + 0x10]
call fcn.00477706
cdq
mov ecx, 0x64
idiv ecx
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fmul dword [0x4a79a0]
fld dword [esp + 0x100]
fsub dword [esp + 0xb0]
fmulp st(1)
fadd dword [esp + 0xb0]
fstp dword [esp + 0x24]
call fcn.00477706
cdq
mov ecx, 0x64
mov dword [esp + 0x138], 0
idiv ecx
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0xcc]
push ecx
mov ecx, dword [edi + 0x44]
sub esp, 0xc
mov dword [esp + 0xb4], eax
mov eax, dword [edi + 0x40]
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 0x3f800000
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x34]
fild dword [esp + 0x30]
mov dword [esp + 0xb0], edx
mov edx, esp
sub esp, 0xc
fmul dword [0x4a79a0]
fld dword [esp + 0x118]
fsub dword [esp + 0xc8]
mov dword [edx], eax
mov eax, dword [edi + 0x48]
mov dword [edx + 4], ecx
mov ecx, esp
mov dword [edx + 8], eax
mov edx, dword [esp + 0x154]
mov eax, dword [esp + 0x158]
mov dword [ecx], edx
mov edx, dword [esp + 0x15c]
fmulp st(1)
mov dword [ecx + 4], eax
fadd dword [esp + 0xc8]
mov dword [ecx + 8], edx
mov ecx, esi
fstp dword [esp + 0xb8]
call fcn.00431300
test al, al
je 0x42f9af
lea eax, [esp + 0xcc]
lea ecx, [esp + 0x4c]
push eax
push ecx
call fcn.0044484e
mov al, byte [0x59a540]
test al, 1
jne 0x42f90b
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a540], dl
call fcn.00476928
add esp, 4
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x9c]
push edx
push eax
push ecx
mov ecx, 0x59a550
call fcn.00411f50
fld dword [esp + 0x6c]
fmul dword [0x59a558]
fld dword [esp + 0x5c]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x4c]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x7c]
fstp dword [esp + 0x9c]
fld dword [esp + 0x70]
fmul dword [0x59a558]
fld dword [esp + 0x60]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x50]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x80]
fstp dword [esp + 0xa0]
fld dword [esp + 0x74]
fmul dword [0x59a558]
fld dword [esp + 0x64]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x84]
jmp 0x42f9f2
fld dword [esp + 0xd8]
fcomp dword [0x4a794c]
fnstsw ax
test ah, 0x40
jne 0x42f9f9
fld dword [esp + 0x9c]
fmul dword [0x4a78a4]
fstp dword [esp + 0x9c]
fld dword [esp + 0x24]
fmul dword [0x4a78a4]
fstp dword [esp + 0xa0]
fld dword [esp + 0x10]
fmul dword [0x4a78a4]
fstp dword [esp + 0xa4]
mov ebx, dword [esi + 0x34]
mov al, byte [0x59a55c]
add ebx, 0x98
test al, 1
jne 0x42fa23
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a55c], dl
call fcn.00476928
add esp, 4
fld dword [ebx]
fadd dword [esi + 0x88]
fstp dword [0x59a560]
fld dword [ebx + 4]
fadd dword [esi + 0x8c]
mov edx, dword [0x59a560]
mov dword [esp + 0x144], edx
fstp dword [0x59a564]
fld dword [ebx + 8]
fadd dword [esi + 0x90]
mov eax, dword [0x59a564]
mov dword [esp + 0x148], eax
fstp dword [0x59a568]
mov ecx, dword [0x59a568]
mov dword [edi + 0x34], edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x14c], ecx
mov dword [edi + 0x38], eax
mov eax, dword [esp + 0xa0]
mov dword [edi + 0x3c], ecx
mov ecx, dword [esp + 0xa4]
mov dword [edi + 0x70], edx
mov dword [edi + 0x74], eax
mov dword [edi + 0x78], ecx
jmp 0x42fe0a
mov eax, dword [esi + 0x2d0]
mov edx, dword [esi + 0x2cc]
mov ecx, dword [esi + 0x2d4]
mov dword [esp + 0xc0], eax
mov eax, dword [esi + 0x2c4]
mov dword [esp + 0xbc], edx
mov edx, dword [esi + 0x2c0]
mov dword [esp + 0x94], eax
mov al, byte [esi + 0x4c8]
mov dword [esp + 0xc4], ecx
mov ecx, dword [esi + 0x2c8]
mov dword [esp + 0x90], edx
test al, al
mov dword [esp + 0x98], ecx
je 0x42fba9
mov eax, dword [esi + 0x4bc]
test eax, eax
je 0x42fba9
fld dword [esp + 0xbc]
add eax, 0x3c
mov edx, dword [eax]
mov dword [esp + 0xdc], edx
fmul dword [esp + 0xdc]
mov ecx, dword [eax + 4]
mov dword [esp + 0xe0], ecx
mov edx, dword [eax + 8]
fstp dword [esp + 0xbc]
fld dword [esp + 0xc0]
fmul dword [esp + 0xe0]
mov dword [esp + 0xe4], edx
fstp dword [esp + 0xc0]
fld dword [esp + 0xc4]
fmul dword [esp + 0xe4]
fstp dword [esp + 0xc4]
fld dword [esp + 0x90]
fmul dword [esp + 0xdc]
fstp dword [esp + 0x90]
fld dword [esp + 0x94]
fmul dword [esp + 0xe0]
fstp dword [esp + 0x94]
fld dword [esp + 0x98]
fmul dword [esp + 0xe4]
fstp dword [esp + 0x98]
call fcn.00477706
cdq
mov ecx, 0x64
idiv ecx
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fmul dword [0x4a79a0]
fld dword [esp + 0xc4]
fsub dword [esp + 0x98]
fmulp st(1)
fadd dword [esp + 0x98]
fstp dword [esp + 0x24]
call fcn.00477706
cdq
mov ecx, 0x64
idiv ecx
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fmul dword [0x4a79a0]
fld dword [esp + 0xc0]
fsub dword [esp + 0x94]
fmulp st(1)
fadd dword [esp + 0x94]
fstp dword [esp + 0x10]
call fcn.00477706
cdq
mov ecx, 0x64
mov dword [esp + 0x120], 0
idiv ecx
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0xcc]
push ecx
mov ecx, dword [edi + 0x44]
sub esp, 0xc
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x40]
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0x3f800000
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x20]
fild dword [esp + 0x30]
mov dword [esp + 0x54], edx
mov edx, esp
sub esp, 0xc
fmul dword [0x4a79a0]
fld dword [esp + 0xd8]
fsub dword [esp + 0xac]
mov dword [edx], eax
mov eax, dword [edi + 0x48]
mov dword [edx + 4], ecx
mov ecx, esp
mov dword [edx + 8], eax
mov edx, dword [esp + 0x13c]
mov eax, dword [esp + 0x140]
mov dword [ecx], edx
mov edx, dword [esp + 0x144]
fmulp st(1)
mov dword [ecx + 4], eax
fadd dword [esp + 0xac]
mov dword [ecx + 8], edx
mov ecx, esi
fstp dword [esp + 0x5c]
call fcn.00431300
test al, al
je 0x42fd99
lea eax, [esp + 0xcc]
lea ecx, [esp + 0x4c]
push eax
push ecx
call fcn.0044484e
mov al, byte [0x59a540]
test al, 1
jne 0x42fcfe
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a540], dl
call fcn.00476928
add esp, 4
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
push edx
push eax
push ecx
mov ecx, 0x59a550
call fcn.00411f50
fld dword [esp + 0x6c]
fmul dword [0x59a558]
fld dword [esp + 0x5c]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x4c]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x7c]
fstp dword [esp + 0x40]
fld dword [esp + 0x70]
fmul dword [0x59a558]
fld dword [esp + 0x60]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x50]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x80]
fstp dword [esp + 0x44]
fld dword [esp + 0x74]
fmul dword [0x59a558]
fld dword [esp + 0x64]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x84]
jmp 0x42fdd3
fld dword [esp + 0xd8]
fcomp dword [0x4a794c]
fnstsw ax
test ah, 0x40
jne 0x42fdd7
fld dword [esp + 0x40]
fmul dword [0x4a78a4]
fstp dword [esp + 0x40]
fld dword [esp + 0x44]
fmul dword [0x4a78a4]
fstp dword [esp + 0x44]
fld dword [esp + 0x48]
fmul dword [0x4a78a4]
fstp dword [esp + 0x48]
mov ecx, dword [esi + 0x34]
lea edx, [esi + 0x88]
lea eax, [esp + 0x160]
push edx
push eax
add ecx, 0x98
call fcn.00412040
push eax
lea ecx, [edi + 0x34]
call fcn.00411f70
lea ecx, [esp + 0x40]
push ecx
lea ecx, [edi + 0x70]
call fcn.00411f70
mov edx, dword [esp + 0xe8]
lea ecx, [esi + 0x29c]
lea eax, [edx + 8]
push eax
call fcn.00431460
mov eax, dword [esp + 0xe8]
lea ecx, [esp + 0x15c]
push eax
push ecx
lea ecx, [esi + 0x2a8]
call fcn.004216e0
mov eax, dword [esp + 0xec]
mov ecx, dword [esi + 0x2bc]
inc eax
cmp eax, ecx
mov dword [esp + 0xec], eax
jl 0x42ee55
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x15c
ret
sub esp, 0x164
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0xf0], 0
mov eax, dword [esi + 0x2bc]
test eax, eax
jle 0x430e08
mov eax, dword [esi + 0x2ac]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [esp + 0x100], ecx
je 0x430e08
fld dword [esi + 0x2dc]
mov edi, dword [ecx + 8]
lea eax, [ecx + 8]
mov eax, dword [esi + 0x2e8]
mov ecx, dword [esi + 0x2ec]
mov edx, dword [esi + 0x2f0]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x30c]
mov dword [esp + 0x2c], ecx
fstp dword [esp + 0x10]
fld dword [esi + 0x2e0]
mov ecx, dword [esi + 0x310]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0x30], edx
mov edx, dword [esi + 0x314]
mov dword [esp + 0x108], 0
mov ebx, dword [esp + 0x108]
mov dword [esp + 0x10c], 0x3f800000
mov ebp, dword [esp + 0x10c]
mov dword [esp + 0x104], 0
fstp dword [esp + 0x14]
fld dword [esi + 0x2e4]
fstp dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
je 0x4300a8
lea ecx, [esp + 0xc8]
add eax, 0xbc
push ecx
mov ecx, dword [eax]
sub esp, 0xc
mov edx, esp
sub esp, 0xc
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, esp
mov dword [edx + 8], eax
mov edx, dword [esp + 0x120]
mov dword [ecx], edx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebp
mov ecx, esi
call fcn.00431300
test al, al
je 0x43006a
lea eax, [esp + 0xc8]
lea ecx, [esp + 0x64]
push eax
push ecx
call fcn.0044484e
mov al, byte [0x59a540]
test al, 1
jne 0x42ffbe
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a540], dl
call fcn.00476928
add esp, 4
fld dword [esp + 0x28]
fstp dword [0x59a550]
fld dword [esp + 0x2c]
fstp dword [0x59a554]
fld dword [esp + 0x30]
fstp dword [0x59a558]
fld dword [esp + 0x84]
fmul dword [0x59a558]
fld dword [esp + 0x74]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x64]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x94]
fstp dword [esp + 0x28]
fld dword [esp + 0x88]
fmul dword [0x59a558]
fld dword [esp + 0x78]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x68]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x98]
fstp dword [esp + 0x2c]
fld dword [esp + 0x8c]
fmul dword [0x59a558]
fld dword [esp + 0x7c]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x6c]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x9c]
jmp 0x4300a4
fld dword [esp + 0xd4]
fcomp dword [0x4a794c]
fnstsw ax
test ah, 0x40
jne 0x4300a8
fld dword [esp + 0x28]
fmul dword [0x4a78a4]
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
fmul dword [0x4a78a4]
fstp dword [esp + 0x2c]
fld dword [esp + 0x30]
fmul dword [0x4a78a4]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fld dword [esp + 0x2c]
fld dword [esp + 0x28]
fmul dword [esp + 0x28]
fld st(2)
fmul st(3)
faddp st(1)
fld st(1)
fmul st(2)
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fcomp dword [0x4a7898]
fnstsw ax
test ah, 0x40
jne 0x43023c
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0xc8]
push edx
mov edx, dword [esp + 0x30]
sub esp, 0xc
mov eax, esp
sub esp, 0xc
mov dword [eax], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], edx
mov edx, esp
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x120]
mov dword [edx], eax
mov ecx, esi
mov dword [edx + 4], ebx
mov dword [edx + 8], ebp
call fcn.00431300
test al, al
je 0x4301fe
lea ecx, [esp + 0xc8]
lea edx, [esp + 0x64]
push ecx
push edx
call fcn.0044484e
mov al, byte [0x59a540]
test al, 1
jne 0x430152
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a540], dl
call fcn.00476928
add esp, 4
fld dword [esp + 0x34]
fstp dword [0x59a550]
fld dword [esp + 0x38]
fstp dword [0x59a554]
fld dword [esp + 0x3c]
fstp dword [0x59a558]
fld dword [esp + 0x84]
fmul dword [0x59a558]
fld dword [esp + 0x74]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x64]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x94]
fstp dword [esp + 0x34]
fld dword [esp + 0x88]
fmul dword [0x59a558]
fld dword [esp + 0x78]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x68]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x98]
fstp dword [esp + 0x38]
fld dword [esp + 0x8c]
fmul dword [0x59a558]
fld dword [esp + 0x7c]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x6c]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x9c]
jmp 0x430238
fld dword [esp + 0xd4]
fcomp dword [0x4a794c]
fnstsw ax
test ah, 0x40
jne 0x43023c
fld dword [esp + 0x34]
fmul dword [0x4a78a4]
fstp dword [esp + 0x34]
fld dword [esp + 0x38]
fmul dword [0x4a78a4]
fstp dword [esp + 0x38]
fld dword [esp + 0x3c]
fmul dword [0x4a78a4]
fstp dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
lea eax, [esp + 0xc8]
push eax
mov eax, dword [esp + 0x3c]
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
mov dword [ecx], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + 4], eax
mov eax, esp
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x120]
mov dword [eax], ecx
mov ecx, esi
mov dword [eax + 4], ebx
mov dword [eax + 8], ebp
call fcn.00431300
test al, al
je 0x43035f
lea edx, [esp + 0xc8]
lea eax, [esp + 0x64]
push edx
push eax
call fcn.0044484e
mov al, byte [0x59a540]
test al, 1
jne 0x4302b3
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a540], dl
call fcn.00476928
add esp, 4
fld dword [esp + 0x10]
fstp dword [0x59a550]
fld dword [esp + 0x14]
fstp dword [0x59a554]
fld dword [esp + 0x18]
fstp dword [0x59a558]
fld dword [esp + 0x84]
fmul dword [0x59a558]
fld dword [esp + 0x74]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x64]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x94]
fstp dword [esp + 0x10]
fld dword [esp + 0x88]
fmul dword [0x59a558]
fld dword [esp + 0x78]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x68]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x98]
fstp dword [esp + 0x14]
fld dword [esp + 0x8c]
fmul dword [0x59a558]
fld dword [esp + 0x7c]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x6c]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x9c]
jmp 0x430399
fld dword [esp + 0xd4]
fcomp dword [0x4a794c]
fnstsw ax
test ah, 0x40
jne 0x43039d
fld dword [esp + 0x10]
fmul dword [0x4a78a4]
fstp dword [esp + 0x10]
fld dword [esp + 0x14]
fmul dword [0x4a78a4]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fmul dword [0x4a78a4]
fstp dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [edi + 0x40], ecx
mov dword [edi + 0x44], edx
mov dword [edi + 0x48], eax
mov eax, dword [esi + 0x34]
test eax, eax
je 0x4309db
mov cl, byte [eax + 0xd8]
test cl, cl
je 0x4309db
fld dword [eax + 0xdc]
fmul dword [edi + 0x8c]
fstp dword [edi + 0x8c]
mov ecx, dword [esi + 0x34]
fld dword [ecx + 0xdc]
fld st(0)
fmul dword [edi + 0x4c]
fstp dword [edi + 0x4c]
fld st(0)
fmul dword [edi + 0x50]
fstp dword [edi + 0x50]
fmul dword [edi + 0x54]
fstp dword [edi + 0x54]
mov al, byte [esi + 0x4c8]
test al, al
je 0x4304b5
mov eax, dword [esi + 0x4bc]
test eax, eax
je 0x4304b5
add eax, 0x3c
mov edx, dword [eax]
mov dword [esp + 0xd8], edx
fld dword [esp + 0xd8]
fmul dword [esi + 0x2cc]
mov ecx, dword [eax + 4]
mov dword [esp + 0xdc], ecx
mov edx, dword [eax + 8]
fstp dword [esp + 0xf4]
fld dword [esp + 0xdc]
fmul dword [esi + 0x2d0]
mov dword [esp + 0xe0], edx
fstp dword [esp + 0xf8]
fld dword [esp + 0xe0]
fmul dword [esi + 0x2d4]
fstp dword [esp + 0xfc]
fld dword [esp + 0xd8]
fmul dword [esi + 0x2c0]
fstp dword [esp + 0xa4]
fld dword [esp + 0xdc]
fmul dword [esi + 0x2c4]
fstp dword [esp + 0xa8]
fld dword [esp + 0xe0]
fmul dword [esi + 0x2c8]
fstp dword [esp + 0xac]
jmp 0x4305ff
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + 0xdc]
mov al, byte [0x59a56c]
test al, 1
mov dword [esp + 0xc0], ecx
jne 0x4304e6
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a56c], dl
call fcn.00476928
add esp, 4
fld dword [esp + 0xc0]
fmul dword [esi + 0x2cc]
fstp dword [0x59a570]
fld dword [esp + 0xc0]
fmul dword [esi + 0x2d0]
mov edx, dword [0x59a570]
mov dword [esp + 0x158], edx
mov dword [esp + 0xf4], edx
fstp dword [0x59a574]
fld dword [esp + 0xc0]
fmul dword [esi + 0x2d4]
mov eax, dword [0x59a574]
mov dword [esp + 0x15c], eax
mov dword [esp + 0xf8], eax
fstp dword [0x59a578]
mov edx, dword [esi + 0x34]
mov ecx, dword [0x59a578]
mov dword [esp + 0x160], ecx
mov dword [esp + 0xfc], ecx
mov eax, dword [edx + 0xdc]
mov dword [esp + 0xc4], eax
mov al, byte [0x59a56c]
test al, 1
jne 0x43058b
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a56c], dl
call fcn.00476928
add esp, 4
fld dword [esp + 0xc4]
fmul dword [esi + 0x2c0]
fstp dword [0x59a570]
fld dword [esp + 0xc4]
fmul dword [esi + 0x2c4]
mov ecx, dword [0x59a570]
mov dword [esp + 0x11c], ecx
mov dword [esp + 0xa4], ecx
fstp dword [0x59a574]
fld dword [esp + 0xc4]
fmul dword [esi + 0x2c8]
mov edx, dword [0x59a574]
mov dword [esp + 0x120], edx
mov dword [esp + 0xa8], edx
fstp dword [0x59a578]
mov eax, dword [0x59a578]
mov dword [esp + 0x124], eax
mov dword [esp + 0xac], eax
call fcn.00477706
cdq
mov ecx, 0x64
idiv ecx
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fmul dword [0x4a79a0]
fld dword [esp + 0xfc]
fsub dword [esp + 0xac]
fmulp st(1)
fadd dword [esp + 0xac]
fstp dword [esp + 0x1c]
call fcn.00477706
cdq
mov ecx, 0x64
idiv ecx
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fmul dword [0x4a79a0]
fld dword [esp + 0xf8]
fsub dword [esp + 0xa8]
fmulp st(1)
fadd dword [esp + 0xa8]
fstp dword [esp + 0x20]
call fcn.00477706
cdq
mov ecx, 0x64
mov dword [esp + 0x14c], 0
idiv ecx
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0xc8]
push ecx
mov ecx, dword [edi + 0x44]
sub esp, 0xc
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x40]
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0x3f800000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x30]
fild dword [esp + 0x34]
mov dword [esp + 0x54], edx
mov edx, esp
sub esp, 0xc
fmul dword [0x4a79a0]
fld dword [esp + 0x110]
fsub dword [esp + 0xc0]
mov dword [edx], eax
mov eax, dword [edi + 0x48]
mov dword [edx + 4], ecx
mov ecx, esp
mov dword [edx + 8], eax
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x16c]
mov dword [ecx], edx
mov edx, dword [esp + 0x170]
fmulp st(1)
mov dword [ecx + 4], eax
fadd dword [esp + 0xc0]
mov dword [ecx + 8], edx
mov ecx, esi
fstp dword [esp + 0x5c]
call fcn.00431300
test al, al
je 0x4307fb
lea eax, [esp + 0xc8]
lea ecx, [esp + 0x64]
push eax
push ecx
call fcn.0044484e
mov al, byte [0x59a540]
test al, 1
jne 0x430754
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a540], dl
call fcn.00476928
add esp, 4
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
push edx
push eax
push ecx
mov ecx, 0x59a550
call fcn.00411f50
fld dword [esp + 0x84]
fmul dword [0x59a558]
fld dword [esp + 0x74]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x64]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x94]
fstp dword [esp + 0x40]
fld dword [esp + 0x88]
fmul dword [0x59a558]
fld dword [esp + 0x78]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x68]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x98]
fstp dword [esp + 0x44]
fld dword [esp + 0x8c]
fmul dword [0x59a558]
fld dword [esp + 0x7c]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x6c]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x9c]
jmp 0x430835
fld dword [esp + 0xd4]
fcomp dword [0x4a794c]
fnstsw ax
test ah, 0x40
jne 0x430839
fld dword [esp + 0x40]
fmul dword [0x4a78a4]
fstp dword [esp + 0x40]
fld dword [esp + 0x20]
fmul dword [0x4a78a4]
fstp dword [esp + 0x44]
fld dword [esp + 0x1c]
fmul dword [0x4a78a4]
fstp dword [esp + 0x48]
mov ebx, dword [esi + 0x34]
mov al, byte [0x59a55c]
add ebx, 0x98
test al, 1
jne 0x430863
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a55c], dl
call fcn.00476928
add esp, 4
fld dword [ebx]
fadd dword [esi + 0x88]
fstp dword [0x59a560]
fld dword [ebx + 4]
fadd dword [esi + 0x8c]
mov edx, dword [0x59a560]
mov dword [esp + 0x134], edx
fstp dword [0x59a564]
fld dword [ebx + 8]
fadd dword [esi + 0x90]
mov eax, dword [0x59a564]
mov dword [esp + 0x138], eax
fstp dword [0x59a568]
mov ecx, dword [0x59a568]
mov dword [edi + 0x34], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x13c], ecx
mov dword [edi + 0x38], eax
mov eax, dword [esp + 0x44]
mov dword [edi + 0x3c], ecx
mov ecx, dword [esp + 0x48]
mov dword [edi + 0x70], edx
mov dword [edi + 0x74], eax
mov dword [edi + 0x78], ecx
fld dword [esp + 0x10]
fsub dword [esp + 0x40]
fstp dword [esp + 0x10]
fld dword [esp + 0x14]
fsub dword [esp + 0x44]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fsub dword [esp + 0x48]
fstp dword [esp + 0x18]
fld dword [esp + 0x14]
fld dword [esp + 0x18]
fld dword [esp + 0x10]
fmul dword [esp + 0x10]
fld st(1)
fmul st(2)
faddp st(1)
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fcom dword [0x4a7898]
fnstsw ax
test ah, 0x40
jne 0x430944
fld dword [esp + 0x10]
fdiv st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x14]
fdiv st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fdiv st(1)
fstp dword [esp + 0x18]
mov al, byte [0x59a56c]
mov edx, dword [esi + 0x318]
test al, 1
fstp st(0)
mov dword [esp + 0xbc], edx
jne 0x430974
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a56c], dl
call fcn.00476928
add esp, 4
fld dword [esp + 0xbc]
fmul dword [esp + 0x10]
fstp dword [0x59a570]
fld dword [esp + 0x14]
fmul dword [esp + 0xbc]
mov eax, dword [0x59a570]
mov dword [esp + 0x140], eax
fstp dword [0x59a574]
fld dword [esp + 0x18]
fmul dword [esp + 0xbc]
mov ecx, dword [0x59a574]
mov dword [esp + 0x144], ecx
fstp dword [0x59a578]
mov edx, dword [0x59a578]
mov dword [edi + 0x4c], eax
mov dword [esp + 0x148], edx
mov dword [edi + 0x50], ecx
mov dword [edi + 0x54], edx
jmp 0x430dba
mov eax, dword [esi + 0x2cc]
mov ecx, dword [esi + 0x2d0]
mov edx, dword [esi + 0x2d4]
mov dword [esp + 0xb0], eax
mov eax, dword [esi + 0x2c0]
mov dword [esp + 0xb4], ecx
mov ecx, dword [esi + 0x2c4]
mov dword [esp + 0x58], eax
mov al, byte [esi + 0x4c8]
mov dword [esp + 0xb8], edx
mov edx, dword [esi + 0x2c8]
mov dword [esp + 0x5c], ecx
test al, al
mov dword [esp + 0x60], edx
je 0x430ac8
mov eax, dword [esi + 0x4bc]
test eax, eax
je 0x430ac8
fld dword [esp + 0xb0]
add eax, 0x3c
mov ecx, dword [eax]
mov dword [esp + 0xe4], ecx
fmul dword [esp + 0xe4]
mov edx, dword [eax + 4]
mov dword [esp + 0xe8], edx
mov eax, dword [eax + 8]
fstp dword [esp + 0xb0]
fld dword [esp + 0xb4]
fmul dword [esp + 0xe8]
mov dword [esp + 0xec], eax
fstp dword [esp + 0xb4]
fld dword [esp + 0xb8]
fmul dword [esp + 0xec]
fstp dword [esp + 0xb8]
fld dword [esp + 0x58]
fmul dword [esp + 0xe4]
fstp dword [esp + 0x58]
fld dword [esp + 0x5c]
fmul dword [esp + 0xe8]
fstp dword [esp + 0x5c]
fld dword [esp + 0x60]
fmul dword [esp + 0xec]
fstp dword [esp + 0x60]
call fcn.00477706
cdq
mov ecx, 0x64
idiv ecx
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fmul dword [0x4a79a0]
fld dword [esp + 0xb8]
fsub dword [esp + 0x60]
fmulp st(1)
fadd dword [esp + 0x60]
fstp dword [esp + 0x20]
call fcn.00477706
cdq
mov ecx, 0x64
idiv ecx
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fmul dword [0x4a79a0]
fld dword [esp + 0xb4]
fsub dword [esp + 0x5c]
fmulp st(1)
fadd dword [esp + 0x5c]
fstp dword [esp + 0x1c]
call fcn.00477706
cdq
mov ecx, 0x64
mov dword [esp + 0x110], 0
idiv ecx
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0xc8]
push ecx
mov ecx, dword [edi + 0x44]
sub esp, 0xc
mov dword [esp + 0x64], eax
mov eax, dword [edi + 0x40]
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0x3f800000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x2c]
fild dword [esp + 0x34]
mov dword [esp + 0x60], edx
mov edx, esp
sub esp, 0xc
fmul dword [0x4a79a0]
fld dword [esp + 0xcc]
fsub dword [esp + 0x74]
mov dword [edx], eax
mov eax, dword [edi + 0x48]
mov dword [edx + 4], ecx
mov ecx, esp
mov dword [edx + 8], eax
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x130]
mov dword [ecx], edx
mov edx, dword [esp + 0x134]
fmulp st(1)
mov dword [ecx + 4], eax
fadd dword [esp + 0x74]
mov dword [ecx + 8], edx
mov ecx, esi
fstp dword [esp + 0x68]
call fcn.00431300
test al, al
je 0x430cb2
lea eax, [esp + 0xc8]
lea ecx, [esp + 0x64]
push eax
push ecx
call fcn.0044484e
mov al, byte [0x59a540]
test al, 1
jne 0x430c0b
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a540], dl
call fcn.00476928
add esp, 4
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
push edx
push eax
push ecx
mov ecx, 0x59a550
call fcn.00411f50
fld dword [esp + 0x84]
fmul dword [0x59a558]
fld dword [esp + 0x74]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x64]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x94]
fstp dword [esp + 0x4c]
fld dword [esp + 0x88]
fmul dword [0x59a558]
fld dword [esp + 0x78]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x68]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x98]
fstp dword [esp + 0x50]
fld dword [esp + 0x8c]
fmul dword [0x59a558]
fld dword [esp + 0x7c]
fmul dword [0x59a554]
faddp st(1)
fld dword [esp + 0x6c]
fmul dword [0x59a550]
faddp st(1)
fadd dword [esp + 0x9c]
jmp 0x430cec
fld dword [esp + 0xd4]
fcomp dword [0x4a794c]
fnstsw ax
test ah, 0x40
jne 0x430cf0
fld dword [esp + 0x4c]
fmul dword [0x4a78a4]
fstp dword [esp + 0x4c]
fld dword [esp + 0x50]
fmul dword [0x4a78a4]
fstp dword [esp + 0x50]
fld dword [esp + 0x54]
fmul dword [0x4a78a4]
fstp dword [esp + 0x54]
mov ebx, dword [esi + 0x34]
mov al, byte [0x59a55c]
add ebx, 0x98
test al, 1
jne 0x430d1a
mov dl, al
push fcn.0041a480
or dl, 1
mov byte [0x59a55c], dl
call fcn.00476928
add esp, 4
fld dword [ebx]
fadd dword [esi + 0x88]
fstp dword [0x59a560]
fld dword [ebx + 4]
fadd dword [esi + 0x8c]
mov edx, dword [0x59a560]
mov dword [esp + 0x128], edx
fstp dword [0x59a564]
fld dword [ebx + 8]
fadd dword [esi + 0x90]
mov eax, dword [0x59a564]
mov dword [esp + 0x12c], eax
fstp dword [0x59a568]
mov ecx, dword [0x59a568]
mov dword [edi + 0x34], edx
lea edx, [esp + 0x4c]
mov dword [esp + 0x130], ecx
mov dword [edi + 0x3c], ecx
push edx
lea ecx, [edi + 0x70]
mov dword [edi + 0x38], eax
call fcn.00411f70
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x10]
push eax
call fcn.00431780
lea ecx, [esp + 0x10]
call fcn.00419c70
mov ecx, dword [esi + 0x318]
lea edx, [esp + 0x168]
push ecx
push edx
lea ecx, [esp + 0x18]
call fcn.004121b0
push eax
lea ecx, [edi + 0x4c]
call fcn.00411f70
mov eax, dword [esp + 0x100]
lea ecx, [esi + 0x29c]
add eax, 8
push eax
call fcn.00431460
mov ecx, dword [esp + 0x100]
lea edx, [esp + 0x164]
push ecx
push edx
lea ecx, [esi + 0x2a8]
call fcn.004216e0
mov eax, dword [esp + 0xf0]
mov ecx, dword [esi + 0x2bc]
inc eax
cmp eax, ecx
mov dword [esp + 0xf0], eax
jl 0x42fe95
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x164
ret
mov eax, dword [ecx + 0x2a4]
mov edx, dword [ecx + 0x288]
cmp eax, edx
jg 0x430e4a
mov eax, dword [ecx + 0x2d8]
cmp eax, 1
jne 0x430e40
jmp 0x42ee30
cmp eax, 2
jne 0x430e4a
jmp 0x42fe70
ret