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

Disassembly:
sub esp, 0x4c
push esi
mov esi, ecx
mov ecx, dword [esi + 0x21c]
mov al, byte [ecx + 0x36]
and al, 7
cmp al, 3
jne 0x511b2d
push ebx
push ebp
xor bl, bl
push edi
mov dword [esp + 0x24], 0x3f860a92
mov dword [esp + 0x28], 0x3fbf0243
mov dword [esp + 0x14], 0x3dcccccd
mov dword [esp + 0x18], 0x3e99999a
mov byte [esp + 0x13], bl
call fcn.005df8f0
test al, al
je 0x510624
mov ecx, dword [esi + 0x21c]
mov eax, dword [ecx + 0xfc]
test eax, eax
je 0x510624
mov byte [esp + 0x13], 1
mov bl, byte [esp + 0x13]
mov edx, dword [esp + 0x60]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x38], eax
mov al, byte [esi + 0xa]
xor ebp, ebp
test al, al
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
je 0x5106fb
mov al, byte [0xb6ec2e]
test al, al
je 0x510672
mov eax, dword [esi + 0x21c]
cmp dword [eax + 0x71c], ebp
jne 0x510672
test bl, bl
je 0x5106a2
mov ecx, dword [0xa4449c]
mov dword [esi + 0xbc], ecx
jmp 0x51069c
test bl, bl
je 0x510684
mov ecx, dword [0xa4449c]
mov dword [esi + 0xbc], ecx
jmp 0x51069c
mov edx, dword [esi + 0x21c]
fld dword [edx + 0x558]
fsub dword [0x858fe4]
fstp dword [esi + 0xbc]
mov dword [esi + 0xac], ebp
mov eax, dword [esi + 0x21c]
fld dword [eax + 0x558]
mov ecx, dword [esi + 0xb4]
fsub dword [0x858fe4]
mov byte [esi + 0xa], 0
mov byte [0xb6fff4], 0
mov dword [0xb6fff0], 0
fstp dword [esi + 0xa8]
mov dword [0xb6ffec], 0
mov byte [esi + 3], 1
mov dword [esi + 0xb8], ebp
mov dword [0xb6ffe8], ecx
mov dword [esi + 0xb0], ebp
mov dword [esi + 0xc0], ebp
mov ax, word [esi + 0xc]
cmp ax, 7
je 0x51071c
cmp ax, 0x2e
je 0x51071c
lea edi, [esi + 0xb4]
mov dword [edi], 0x428c0000
jmp 0x510a04
push 8
mov ecx, 0xb70198
xor bl, bl
call fcn.0052f580
push 9
mov ecx, 0xb70198
mov ebp, eax
call fcn.0052f580
mov edx, dword [0xb73420]
push 0
mov edi, eax
mov dword [esp + 0x64], edx
call fcn.0053fb70
fld dword [esp + 0x64]
fcomp dword [0x858b50]
add esp, 4
fnstsw ax
test ah, 0x41
jne 0x510764
cmp edi, 4
je 0x51078d
mov eax, dword [0xb73420]
push 0
mov dword [esp + 0x64], eax
call fcn.0053fb70
fld dword [esp + 0x64]
fcomp dword [0x858b50]
add esp, 4
fnstsw ax
test ah, 5
jp 0x5107c1
cmp edi, 5
jne 0x5107c1
mov ecx, dword [0xb73420]
push 0
mov dword [esp + 0x64], ecx
call fcn.0053fb70
fld dword [esp + 0x64]
fabs
fmul dword [0x862f50]
fadd dword [0x859aa4]
fmul dword [0xb6ffe8]
fmul dword [0x858fc4]
jmp 0x510843
mov edx, dword [0xb73420]
push 0
mov dword [esp + 0x64], edx
call fcn.0053fb70
fld dword [esp + 0x64]
fcomp dword [0x858b50]
add esp, 4
fnstsw ax
test ah, 0x41
jne 0x5107eb
cmp ebp, 4
je 0x510814
mov eax, dword [0xb73420]
push 0
mov dword [esp + 0x64], eax
call fcn.0053fb70
fld dword [esp + 0x64]
fcomp dword [0x858b50]
add esp, 4
fnstsw ax
test ah, 5
jp 0x51084e
cmp ebp, 5
jne 0x51084e
mov ecx, dword [0xb73420]
push 0
mov dword [esp + 0x64], ecx
call fcn.0053fb70
fld dword [esp + 0x64]
fabs
fmul dword [0x862f50]
fadd dword [0x859aa4]
fmul dword [0x858fc4]
fdivr dword [0xb6ffe8]
fstp dword [0xb6ffe8]
add esp, 4
mov bl, 1
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.00540b80
test al, al
je 0x5108d6
test bl, bl
jne 0x5108d6
fld dword [0xb7cb5c]
lea edi, [esi + 0xb4]
fmul dword [0x859aac]
fadd dword [0x859aa4]
fmul dword [edi]
fmul dword [0x858fc4]
fstp dword [edi]
mov edx, dword [edi]
mov dword [0xb6ffe8], edx
mov dword [esi + 0xb8], 0
fld dword [edi]
fcomp dword [0x858ce0]
fnstsw ax
test ah, 0x41
jne 0x5108b0
mov dword [edi], 0x428c0000
fld dword [0xb6ffe8]
fcomp dword [0x858ce0]
fnstsw ax
test ah, 0x41
jne 0x510966
mov dword [0xb6ffe8], 0x428c0000
jmp 0x5109d1
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.00540b30
test al, al
je 0x51091d
test bl, bl
jne 0x51091d
fld dword [0xb7cb5c]
lea edi, [esi + 0xb4]
fmul dword [0x859aac]
fadd dword [0x859aa4]
fmul dword [0x858fc4]
fdivr dword [edi]
fstp dword [edi]
mov eax, dword [edi]
mov dword [0xb6ffe8], eax
jmp 0x510891
fld dword [0xb6ffe8]
lea edi, [esi + 0xb4]
fsub dword [edi]
fabs
fcomp dword [0x858b8c]
fnstsw ax
test ah, 0x41
jne 0x510891
mov edx, dword [0xb6ffe8]
push 0
push 0x3e800000
push 0x3f000000
lea ecx, [esi + 0xb8]
push ecx
push edi
push edx
call fcn.00509ae0
add esp, 0x18
jmp 0x51089b
cmp word [esi + 0xc], 0x2e
fld dword [edi]
jne 0x5109a1
fcomp dword [0x858b3c]
fnstsw ax
test ah, 5
jp 0x510982
mov dword [edi], 0x40400000
fld dword [0xb6ffe8]
fcomp dword [0x858b3c]
fnstsw ax
test ah, 5
jp 0x5109d1
mov dword [0xb6ffe8], 0x40400000
jmp 0x5109d1
fcomp dword [0x858b48]
fnstsw ax
test ah, 5
jp 0x5109b4
mov dword [edi], 0x41700000
fld dword [0xb6ffe8]
fcomp dword [0x858b48]
fnstsw ax
test ah, 5
jp 0x5109d1
mov dword [0xb6ffe8], 0x41700000
mov bl, byte [esp + 0x13]
mov eax, 0xb4
mov dword [0xb6f0b4], eax
mov dword [0xb6f0b0], 0xff
mov dword [0xb6f0ac], eax
mov dword [0xb6f0b8], 1
mov dword [0xb6f0c8], 0x78
xor ebp, ebp
test bl, bl
je 0x510ab6
fld dword [0xa44498]
fcomp qword [0x859ef8]
fnstsw ax
test ah, 0x41
jne 0x510ab6
fld dword [esi + 0xbc]
fsub dword [0xa4449c]
fcom dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x510a42
fadd dword [0x858cbc]
fld dword [0x858cbc]
fsub st(1)
fstp dword [esp + 0x60]
fcom dword [0xa44498]
fnstsw ax
test ah, 5
jnp 0x510a9f
fld dword [esp + 0x60]
fcomp dword [0xa44498]
fnstsw ax
test ah, 5
jnp 0x510a9f
fcomp dword [esp + 0x60]
fnstsw ax
test ah, 0x41
jne 0x510a8b
fld dword [0xa44498]
fadd dword [esi + 0xbc]
fstp dword [esi + 0xbc]
jmp 0x510ab6
fld dword [esi + 0xbc]
fsub dword [0xa44498]
fstp dword [esi + 0xbc]
jmp 0x510ab6
mov eax, dword [0xa4449c]
fstp st(0)
mov dword [esi + 0xbc], eax
mov dword [0xa44498], 0
push ebp
call fcn.0053fb70
mov ecx, dword [0xb73424]
mov edx, dword [0xb73428]
mov dword [esp + 0x30], ecx
fld dword [esp + 0x30]
fcomp dword [0x858b50]
add esp, 4
mov dword [esp + 0x30], edx
fnstsw ax
test ah, 0x44
jp 0x510ba6
fld dword [esp + 0x30]
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x44
jp 0x510ba6
mov eax, dword [esi + 0x21c]
push eax
push ebp
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.00540bd0
mov edx, dword [esi + 0x21c]
movsx ecx, ax
neg ecx
mov dword [esp + 0x60], ecx
push edx
push ebp
fild dword [esp + 0x68]
fstp dword [esp + 0x68]
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.00540cc0
test bl, bl
movsx eax, ax
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
je 0x510c41
fld dword [esp + 0x60]
fmul dword [0x858b88]
fld dword [edi]
fmul dword [0x85a5c4]
fld st(1)
fabs
fld st(1)
fmul dword [0x858cec]
fmulp st(1)
fmul dword [0xb7cb5c]
fmul st(2)
fstp dword [esp + 0x20]
fld st(2)
fmul dword [0x858b88]
fld st(0)
fabs
fxch st(2)
fmul dword [str._o_f]
fmulp st(2)
fxch st(1)
fmul dword [0xb7cb5c]
fmul st(1)
fstp dword [esp + 0x2c]
fstp st(0)
jmp 0x510ccd
fld dword [esp + 0x2c]
push ebp
fmul dword [0x859024]
fstp dword [esp + 0x64]
fld dword [esp + 0x34]
fmul dword [0x858b3c]
fstp dword [esp + 0x24]
call fcn.0053fb70
add esp, 4
cmp word [eax + 0x10e], bp
jne 0x510bfa
push ebp
call fcn.0053fb70
mov cl, byte [eax + 0x117]
add esp, 4
test cl, cl
jne 0x510bfa
fld dword [0xb7cb5c]
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x41
jp 0x510c0a
fld dword [0x858b50]
mov dword [esp + 0x20], 0
jmp 0x510c0e
fld dword [esp + 0x60]
fld dword [edi]
fmul dword [0x85a5c4]
fst dword [esp + 0x60]
fmul dword [0xb6ec1c]
fmulp st(1)
fld dword [esp + 0x60]
fmul dword [0xb6ec18]
mov dword [esi + 0xb0], ebp
mov dword [esi + 0xc0], ebp
fmul dword [esp + 0x20]
jmp 0x510d62
fld dword [0x858624]
mov dword [esp + 0x20], 0x3f800000
fld dword [esp + 0x60]
fcomp dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x510c68
mov dword [esp + 0x20], 0xbf800000
fld st(1)
fcomp dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x510c7f
fstp st(0)
fld dword [0x858c1c]
fld dword [edi]
fmul dword [0x85a5c4]
fld dword [esp + 0x60]
fmul dword [esp + 0x60]
fmul dword [0x858fc4]
fld st(1)
fmul dword [0x863100]
fmulp st(1)
fmul dword [0xb7cb5c]
fmul dword [esp + 0x20]
fstp dword [esp + 0x20]
fld st(2)
fmul st(3)
fmul dword [0x8630fc]
fxch st(1)
fmul dword [0x859b50]
fmulp st(1)
fmul dword [0xb7cb5c]
fmul st(1)
fstp dword [esp + 0x2c]
mov ecx, dword [0x8ccc98]
fstp st(0)
fld dword [esp + 0x60]
mov dword [esp + 0x1c], ecx
fabs
fcomp dword [0x858ca0]
fnstsw ax
test ah, 5
jp 0x510d07
fabs
fcomp dword [0x858ca0]
fnstsw ax
test ah, 5
jp 0x510d09
mov edx, dword [0x8ccc94]
mov dword [esp + 0x1c], edx
jmp 0x510d09
fstp st(0)
fld dword [esp + 0x1c]
fld dword [0xb7cb5c]
call fcn.00822130
fstp dword [esp + 0x1c]
fld dword [0x858624]
fsub dword [esp + 0x1c]
fst dword [esp + 0x60]
fmul dword [esp + 0x20]
fld dword [esp + 0x1c]
fmul dword [esi + 0xc0]
faddp st(1)
fst dword [esi + 0xc0]
fld dword [esp + 0x1c]
fmul dword [esi + 0xb0]
fld dword [esp + 0x60]
fmul dword [esp + 0x2c]
faddp st(1)
fst dword [esp + 0x60]
fstp dword [esi + 0xb0]
fld dword [esp + 0x60]
fxch st(1)
mov ecx, esi
fadd dword [esi + 0xbc]
fstp dword [esi + 0xbc]
fadd dword [esi + 0xac]
fstp dword [esi + 0xac]
call fcn.00509c50
mov edi, dword [esi + 0x120]
cmp edi, ebp
jle 0x510e3b
mov eax, dword [0xb7cb84]
sub eax, edi
test eax, eax
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
jge 0x510daa
fadd dword [0x858c54]
fidiv dword [0x8cc474]
fmul dword [0x858cbc]
fcos
fld dword [0x8cc480]
fmul st(1)
fmul dword [esi + 0x118]
fadd dword [esi + 0xbc]
fstp dword [esi + 0xbc]
fmul dword [esi + 0x11c]
fmul dword [0x8cc480]
fadd dword [esi + 0xac]
fstp dword [esi + 0xac]
fld dword [0x8cc47c]
fld dword [0xb7cb5c]
call fcn.00822130
fmul dword [esi + 0x118]
fstp dword [esi + 0x118]
fld dword [0x8cc47c]
fld dword [0xb7cb5c]
call fcn.00822130
fmul dword [esi + 0x11c]
fstp dword [esi + 0x11c]
mov ecx, dword [0x8cc478]
mov eax, dword [0xb7cb84]
add edi, ecx
cmp eax, edi
jbe 0x510e3b
mov dword [esi + 0x120], ebp
mov ebp, dword [esi + 0x21c]
mov eax, dword [ebp + 0x46c]
mov ebx, 0x4000000
test ebx, eax
je 0x510e58
mov dword [esp + 0x18], 0x3f4ccccd
mov al, byte [esp + 0x13]
test al, al
je 0x511560
movzx eax, word [ebp + 0x778]
cmp eax, 3
ja case.0x510e74.0
jmp dword [eax*4 + 0x511b34]
mov ecx, dword [ebp + 0xfc]
call fcn.00411990
fld dword [eax + 8]
fchs
fcomp dword [0x858624]
fnstsw ax
test ah, 0x41
je 0x510ec3
mov ecx, dword [ebp + 0xfc]
call fcn.00411990
fld dword [eax + 8]
fchs
fld dword [0x858c1c]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x510ec3
mov dword [esp + 0x60], 0xbf800000
jmp 0x510efe
mov ecx, dword [ebp + 0xfc]
call fcn.00411990
fld dword [eax + 8]
fchs
fcomp dword [0x858624]
fnstsw ax
test ah, 0x41
jne 0x510eea
mov dword [esp + 0x60], 0x3f800000
jmp 0x510efe
mov ecx, dword [ebp + 0xfc]
call fcn.00411990
fld dword [eax + 8]
fchs
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
call fcn.00821e70
mov ecx, dword [ebp + 0xfc]
fstp dword [esp + 0x1c]
call fcn.00441db0
jmp 0x511151
mov ecx, dword [ebp + 0xfc]
call fcn.00411990
fld dword [eax + 0x18]
fchs
fcomp dword [0x858624]
fnstsw ax
test ah, 0x41
je 0x510f63
mov ecx, dword [ebp + 0xfc]
call fcn.00411990
fld dword [eax + 0x18]
fchs
fld dword [0x858c1c]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x510f63
mov dword [esp + 0x60], 0xbf800000
jmp 0x510f9e
mov ecx, dword [ebp + 0xfc]
call fcn.00411990
fld dword [eax + 0x18]
fchs
fcomp dword [0x858624]
fnstsw ax
test ah, 0x41
jne 0x510f8a
mov dword [esp + 0x60], 0x3f800000
jmp 0x510f9e
mov ecx, dword [ebp + 0xfc]
call fcn.00411990
fld dword [eax + 0x18]
fchs
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
call fcn.00821e70
mov ecx, dword [ebp + 0xfc]
fstp dword [esp + 0x1c]
call fcn.00441db0
fadd dword [0x858fe4]
jmp 0x511151
mov ecx, dword [ebp + 0xfc]
call fcn.00411990
fld dword [eax + 8]
fcomp dword [0x858624]
fnstsw ax
test ah, 0x41
je 0x511005
mov ecx, dword [ebp + 0xfc]
call fcn.00411990
fld dword [eax + 8]
fld dword [0x858c1c]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x511005
mov dword [esp + 0x60], 0xbf800000
jmp 0x51103c
mov ecx, dword [ebp + 0xfc]
call fcn.00411990
fld dword [eax + 8]
fcomp dword [0x858624]
fnstsw ax
test ah, 0x41
jne 0x51102a
mov dword [esp + 0x60], 0x3f800000
jmp 0x51103c
mov ecx, dword [ebp + 0xfc]
call fcn.00411990
fld dword [eax + 8]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
call fcn.00821e70
mov ecx, dword [ebp + 0xfc]
fstp dword [esp + 0x1c]
call fcn.00441db0
fsub dword [0x858cb8]
jmp 0x511151
mov edi, dword [ebp + 0xfc]
mov eax, dword [edi + 0x14]
test eax, eax
jne 0x51107f
mov ecx, edi
call fcn.0054f560
mov edx, dword [edi + 0x14]
push edx
lea ecx, [edi + 4]
call fcn.0054f1b0
mov eax, dword [edi + 0x14]
fld dword [eax + 0x18]
fcomp dword [0x858624]
fnstsw ax
test ah, 0x41
je 0x5110d3
mov edi, dword [ebp + 0xfc]
mov eax, dword [edi + 0x14]
test eax, eax
jne 0x5110b2
mov ecx, edi
call fcn.0054f560
mov ecx, dword [edi + 0x14]
push ecx
lea ecx, [edi + 4]
call fcn.0054f1b0
mov edx, dword [edi + 0x14]
fld dword [edx + 0x18]
fld dword [0x858c1c]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x5110d3
mov dword [esp + 0x60], 0xbf800000
jmp 0x511122
mov edi, dword [ebp + 0xfc]
mov eax, dword [edi + 0x14]
test eax, eax
jne 0x5110f3
mov ecx, edi
call fcn.0054f560
mov eax, dword [edi + 0x14]
push eax
lea ecx, [edi + 4]
call fcn.0054f1b0
mov ecx, dword [edi + 0x14]
fld dword [ecx + 0x18]
fcomp dword [0x858624]
fnstsw ax
test ah, 0x41
jne 0x511110
mov dword [esp + 0x60], 0x3f800000
jmp 0x511122
mov ecx, dword [ebp + 0xfc]
call fcn.00411990
fld dword [eax + 0x18]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
call fcn.00821e70
mov ecx, dword [ebp + 0xfc]
mov eax, dword [ecx + 0x14]
test eax, eax
fstp dword [esp + 0x1c]
je 0x511148
fld dword [eax + 0x10]
fchs
fld dword [eax + 0x14]
fpatan
jmp 0x51114b
fld dword [ecx + 0x10]
fsub dword [0x858fe4]
mov ecx, ebp
fstp dword [esp + 0x20]
call fcn.005dfdf0
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x511180
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 0x14]
add eax, 0x10
test ecx, ecx
push eax
je 0x511178
call fcn.0059ad70
jmp 0x511180
lea ecx, [ebp + 4]
call fcn.0054ef40
mov ecx, ebp
call fcn.00532b00
mov ecx, ebp
call fcn.00532b20
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov eax, dword [ebp + 0xfc]
mov dl, byte [eax + 0x36]
and dl, 7
cmp dl, 2
jne 0x5111f6
cmp dword [eax + 0x590], 9
jne 0x5111f6
mov ecx, dword [esi + 0x21c]
push 1
push 5
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
call fcn.005e4280
mov ecx, dword [ebp + 0x780]
mov edx, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
jmp 0x51120a
mov ecx, dword [esi + 0x21c]
push 1
push 5
lea eax, [esp + 0x34]
push eax
call fcn.005e4280
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov ebx, dword [esi + 0x21c]
lea edi, [esi + 0x19c]
mov ecx, edi
mov dword [ecx], edx
mov edx, dword [esp + 0x34]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x511246
mov ecx, ebx
call fcn.0054f560
mov eax, dword [ebx + 0x14]
push eax
lea ecx, [ebx + 4]
call fcn.0054f1b0
mov eax, dword [ebx + 0x14]
fld dword [esp + 0x14]
fmul dword [eax + 0x20]
add eax, 0x20
fld dword [esp + 0x14]
fmul dword [eax + 4]
fld dword [esp + 0x14]
fmul dword [eax + 8]
fstp dword [esp + 0x58]
fxch st(1)
fadd dword [edi]
fstp dword [edi]
fadd dword [edi + 4]
fstp dword [edi + 4]
fld dword [esp + 0x58]
fadd dword [edi + 8]
fstp dword [edi + 8]
mov ebx, dword [esi + 0x21c]
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x51129b
mov ecx, ebx
call fcn.0054f560
mov ecx, dword [ebx + 0x14]
push ecx
lea ecx, [ebx + 4]
call fcn.0054f1b0
mov eax, dword [ebx + 0x14]
fld dword [esp + 0x18]
fmul dword [eax + 0x10]
add eax, 0x10
fld dword [esp + 0x18]
fmul dword [eax + 4]
fld dword [esp + 0x18]
fmul dword [eax + 8]
fstp dword [esp + 0x58]
fld dword [edi]
fsub st(2)
fstp dword [edi]
fld dword [edi + 4]
fsub st(1)
fstp dword [edi + 4]
fstp st(0)
fstp st(0)
fld dword [edi + 8]
fsub dword [esp + 0x58]
fstp dword [edi + 8]
fld dword [0xb7cb5c]
fmul dword [0x862f48]
fstp dword [esp + 0x60]
fld dword [0x862f44]
fmul dword [ebp + 0x77c]
fld dword [0x858624]
fsub dword [0x862f44]
fmul dword [ebp + 0x77c]
fstp dword [esp + 0x14]
fld dword [esp + 0x20]
fld st(0)
fsub dword [esi + 0xbc]
fcom dword [0x858cb8]
fnstsw ax
test ah, 0x41
jne 0x51132b
fstp st(0)
fsub dword [0x858cbc]
jmp 0x51133e
fcomp dword [0x858cc0]
fnstsw ax
test ah, 5
jp 0x51133e
fadd dword [0x858cbc]
mov ebp, dword [ebp + 0xfc]
mov dl, byte [ebp + 0x36]
and dl, 7
xor ecx, ecx
cmp dl, 2
jne 0x51135c
cmp dword [ebp + 0x594], 3
jne 0x51135c
mov ecx, ebp
fsub dword [esi + 0xbc]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x5113a0
fsub st(1)
fstp dword [esp + 0x18]
fstp st(0)
fld dword [esp + 0x18]
fabs
fld dword [esp + 0x60]
fmul st(1)
fstp dword [esp + 0x60]
fld dword [esp + 0x14]
fadd dword [esp + 0x60]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x5113b7
fsub dword [esp + 0x14]
fstp dword [esp + 0x60]
jmp 0x5113b9
fld st(1)
fchs
fld st(1)
fcompp
fnstsw ax
test ah, 5
jp 0x511435
fadd st(1)
jmp 0x51136d
fstp st(0)
test ecx, ecx
je 0x5113ef
fld dword [ecx + 0x954]
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x41
jne 0x5113ef
fld dword [0xb7cb5c]
push ecx
fmul dword [esp + 0x1c]
fmul dword [0x862f4c]
fsubr dword [ecx + 0x954]
fstp dword [esp]
call fcn.006a2450
fld dword [esp + 0x18]
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x44
jnp 0x511439
fld dword [esp + 0x18]
fcomp dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x511423
fld dword [esi + 0xbc]
fsub dword [esp + 0x60]
fstp dword [esi + 0xbc]
jmp 0x511439
fld dword [esp + 0x60]
fadd dword [esi + 0xbc]
fstp dword [esi + 0xbc]
jmp 0x511439
fstp st(0)
fstp st(0)
fld dword [0x862f44]
fmul dword [esp + 0x24]
fstp dword [esp + 0x60]
fld dword [0x858624]
fsub dword [0x862f44]
fld dword [esp + 0x24]
fmul st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x60]
fadd dword [esp + 0x1c]
fcomp dword [esi + 0xac]
fnstsw ax
test ah, 5
jp 0x5114d2
fld dword [esp + 0x1c]
fsub dword [esi + 0xac]
fld dword [esp + 0x60]
fchs
fld st(1)
fcompp
fnstsw ax
test ah, 5
jp 0x5114d0
fadd dword [esp + 0x60]
fabs
fstp dword [esp + 0x60]
fld dword [0xb7cb5c]
fmul dword [0x862f48]
fmul dword [esp + 0x60]
fld dword [esp + 0x14]
fadd st(1)
fcomp dword [esp + 0x60]
fnstsw ax
test ah, 5
jp 0x5114c2
fstp st(0)
fld dword [esp + 0x60]
fsub dword [esp + 0x14]
fld dword [esi + 0xac]
fsub st(1)
fstp dword [esi + 0xac]
fstp st(0)
fld dword [0x862f44]
fmul dword [esp + 0x28]
fstp dword [esp + 0x60]
fmul dword [esp + 0x28]
fstp dword [esp + 0x14]
fld dword [esp + 0x1c]
fsub dword [esp + 0x60]
fcomp dword [esi + 0xac]
fnstsw ax
test ah, 0x41
jne 0x51176e
fld dword [esp + 0x1c]
fsub dword [esi + 0xac]
fcom dword [esp + 0x60]
fnstsw ax
test ah, 0x41
jne 0x51176c
fsub dword [esp + 0x60]
fabs
fstp dword [esp + 0x60]
fld dword [0xb7cb5c]
fmul dword [0x862f48]
fmul dword [esp + 0x60]
fld dword [esp + 0x14]
fadd st(1)
fcomp dword [esp + 0x60]
fnstsw ax
test ah, 5
jp 0x51154f
fstp st(0)
fld dword [esp + 0x60]
fsub dword [esp + 0x14]
fadd dword [esi + 0xac]
fstp dword [esi + 0xac]
jmp 0x51176e
fld dword [esi + 0xac]
fcomp dword [0x8630f8]
fnstsw ax
test ah, 0x41
jne 0x51157f
mov dword [esi + 0xac], 0x3f860a92
jmp 0x51159c
fld dword [esi + 0xac]
fcomp dword [0x8631bc]
fnstsw ax
test ah, 5
jp 0x51159c
mov dword [esi + 0xac], 0xbfbf0243
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x5115c0
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 0x14]
add eax, 0x10
test ecx, ecx
push eax
je 0x5115b8
call fcn.0059ad70
jmp 0x5115c0
lea ecx, [ebp + 4]
call fcn.0054ef40
mov ecx, dword [esi + 0x21c]
call fcn.00532b00
mov ecx, dword [esi + 0x21c]
call fcn.00532b20
mov ecx, dword [esi + 0x21c]
push 1
push 5
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
call fcn.005e4280
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov ebp, dword [esi + 0x21c]
lea edi, [esi + 0x19c]
mov ecx, edi
mov dword [ecx], edx
mov edx, dword [esp + 0x34]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
fld dword [esi + 0x1a4]
fadd dword [0x858b1c]
fstp dword [esi + 0x1a4]
mov eax, dword [ebp + 0x46c]
test ebx, eax
mov eax, dword [ebp + 0x14]
je 0x51170f
test eax, eax
jne 0x51165e
mov ecx, ebp
call fcn.0054f560
mov eax, dword [ebp + 0x14]
push eax
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov ecx, dword [ebp + 0x14]
fld dword [0x8cc7bc]
fmul dword [ecx + 0x10]
mov ebp, dword [esi + 0x21c]
fsubr dword [edi]
fstp dword [edi]
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x51168e
mov ecx, ebp
call fcn.0054f560
mov edx, dword [ebp + 0x14]
push edx
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov eax, dword [ebp + 0x14]
fld dword [0x8cc7bc]
fmul dword [eax + 0x14]
mov ebp, dword [esi + 0x21c]
fsubr dword [esi + 0x1a0]
fstp dword [esi + 0x1a0]
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x5116c6
mov ecx, ebp
call fcn.0054f560
mov ecx, dword [ebp + 0x14]
push ecx
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov edx, dword [ebp + 0x14]
fld dword [0x8cc7b8]
fmul dword [edx]
mov ebp, dword [esi + 0x21c]
fsubr dword [edi]
fstp dword [edi]
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x5116f5
mov ecx, ebp
call fcn.0054f560
mov eax, dword [ebp + 0x14]
push eax
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov ecx, dword [ebp + 0x14]
fld dword [0x8cc7b8]
fmul dword [ecx + 4]
fsubr dword [esi + 0x1a0]
fstp dword [esi + 0x1a0]
jmp 0x51176e
test eax, eax
jne 0x511726
mov ecx, ebp
call fcn.0054f560
mov edx, dword [ebp + 0x14]
push edx
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov eax, dword [ebp + 0x14]
fld dword [esp + 0x18]
fmul dword [eax + 0x10]
mov ebp, dword [esi + 0x21c]
fsubr dword [edi]
fstp dword [edi]
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x511754
mov ecx, ebp
call fcn.0054f560
mov ecx, dword [ebp + 0x14]
push ecx
lea ecx, [ebp + 4]
call fcn.0054f1b0
mov edx, dword [ebp + 0x14]
fld dword [esp + 0x18]
fmul dword [edx + 0x14]
fsubr dword [esi + 0x1a0]
fstp dword [esi + 0x1a0]
jmp 0x51176e
fstp st(0)
fld dword [0x8ccc90]
fchs
fcom dword [esi + 0xac]
fnstsw ax
test ah, 0x41
jne 0x51178b
fstp dword [esi + 0xac]
jmp 0x5117ab
fstp st(0)
fld dword [esi + 0xac]
fcomp dword [0x8ccc90]
fnstsw ax
test ah, 0x41
jne 0x5117ab
mov eax, dword [0x8ccc90]
mov dword [esi + 0xac], eax
fld dword [esi + 0xac]
lea ebp, [esi + 0x190]
fcos
mov ecx, ebp
fld dword [esi + 0xbc]
fcos
fmul st(1)
fchs
fstp dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
fld dword [esi + 0xbc]
mov dword [ecx], edx
fsin
fmul st(1)
fchs
fstp dword [esp + 0x30]
mov eax, dword [esp + 0x30]
mov dword [ecx + 4], eax
fstp st(0)
fld dword [esi + 0xac]
fsin
fstp dword [esp + 0x34]
mov edx, dword [esp + 0x34]
mov dword [ecx + 8], edx
fld dword [ebp]
fmul dword [0x858b3c]
fld dword [ebp + 4]
fmul dword [0x858b3c]
fld dword [ebp + 8]
fmul dword [0x858b3c]
fstp dword [esp + 0x58]
fxch st(1)
fadd dword [edi]
fstp dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
fadd dword [edi + 4]
fstp dword [esp + 0x30]
fld dword [esp + 0x58]
mov ecx, dword [esp + 0x30]
fadd dword [edi + 8]
mov dword [esp + 0x3c], ecx
fstp dword [esp + 0x34]
fld dword [ebp]
mov edx, dword [esp + 0x34]
fmul dword [0x858ee8]
mov dword [esp + 0x40], edx
fld dword [ebp + 4]
fmul dword [0x858ee8]
fld dword [ebp + 8]
fmul dword [0x858ee8]
fstp dword [esp + 0x58]
fxch st(1)
fadd dword [edi]
fstp dword [edi]
fadd dword [edi + 4]
fstp dword [edi + 4]
fld dword [esp + 0x58]
fadd dword [edi + 8]
fstp dword [edi + 8]
mov al, byte [esi + 3]
cmp al, 1
jne 0x511a62
push 1
push 1
push 0
push 1
push 0
push 1
push 1
lea eax, [esp + 0x54]
push edi
push eax
call fcn.0056a490
add esp, 0x24
test al, al
jne 0x5118cb
mov ecx, dword [0xc1703c]
push 0x3e99999a
push ecx
call fcn.007ee1d0
mov byte [0xb6fff4], 1
jmp 0x511abe
fld dword [esi + 0xbc]
push 1
fadd dword [0x8631b8]
push 1
fld dword [esi + 0xac]
push 0
fsub dword [0x8631b4]
push 1
push 0
push 1
fld st(0)
push 1
fcos
push edi
fld st(2)
fcos
fmul st(1)
fstp dword [esp + 0x64]
fxch st(2)
fsin
fmul st(2)
fstp dword [esp + 0x68]
fstp st(1)
fsin
fld dword [esp + 0x64]
fmul dword [0x858b3c]
fld dword [esp + 0x68]
fmul dword [0x858b3c]
fstp dword [esp + 0x50]
fxch st(1)
fmul dword [0x858b3c]
fstp dword [esp + 0x54]
fadd dword [edi]
fstp dword [esp + 0x64]
mov edx, dword [esp + 0x64]
fld dword [esp + 0x50]
mov dword [esp + 0x4c], edx
fadd dword [edi + 4]
lea edx, [esp + 0x4c]
push edx
fstp dword [esp + 0x6c]
fld dword [esp + 0x58]
mov eax, dword [esp + 0x6c]
fadd dword [edi + 8]
mov dword [esp + 0x54], eax
fstp dword [esp + 0x70]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x58], ecx
call fcn.0056a490
add esp, 0x24
test al, al
jne 0x511993
mov eax, dword [0xc1703c]
push 0x3e99999a
push eax
call fcn.007ee1d0
mov byte [0xb6fff4], 1
jmp 0x511abe
fld dword [esi + 0xbc]
push 1
fsub dword [0x8631b8]
push 1
fld dword [esi + 0xac]
push 0
fsub dword [0x8631b4]
push 1
push 0
push 1
fld st(0)
push 1
fcos
push edi
fld st(2)
fcos
fmul st(1)
fstp dword [esp + 0x64]
fxch st(2)
fsin
fmul st(2)
fstp dword [esp + 0x68]
fstp st(1)
fsin
fld dword [esp + 0x64]
fmul dword [0x858b3c]
fld dword [esp + 0x68]
fmul dword [0x858b3c]
fstp dword [esp + 0x74]
fxch st(1)
fmul dword [0x858b3c]
fstp dword [esp + 0x78]
fadd dword [edi]
fstp dword [esp + 0x64]
mov ecx, dword [esp + 0x64]
fld dword [esp + 0x74]
mov dword [esp + 0x4c], ecx
fadd dword [edi + 4]
lea ecx, [esp + 0x4c]
push ecx
fstp dword [esp + 0x6c]
fld dword [esp + 0x7c]
mov edx, dword [esp + 0x6c]
fadd dword [edi + 8]
mov dword [esp + 0x54], edx
fstp dword [esp + 0x70]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x58], eax
call fcn.0056a490
add esp, 0x24
test al, al
jne 0x511a59
mov edx, dword [0xc1703c]
push 0x3e99999a
push edx
call fcn.007ee1d0
mov byte [0xb6fff4], 1
jmp 0x511abe
mov byte [0xb6fff4], 0
jmp 0x511a6b
mov al, byte [0xb6fff4]
test al, al
jne 0x511ac1
cmp word [esi + 0xc], 0x2e
jne 0x511ac1
fld dword [0x858b48]
fcomp dword [esi + 0xb4]
fnstsw ax
test ah, 5
jp 0x511a8d
fld dword [0x858b48]
jmp 0x511a93
fld dword [esi + 0xb4]
fld dword [0x858b48]
mov eax, dword [0xc1703c]
fsub st(1)
push ecx
fmul dword [0x862f54]
fadd dword [0x858624]
fmul dword [0x858c24]
fstp dword [esp]
push eax
fstp st(0)
call fcn.007ee1d0
add esp, 8
fld dword [ebp]
mov ecx, esi
fmul dword [0x858ee8]
fld dword [ebp + 4]
fmul dword [0x858ee8]
fld dword [ebp + 8]
fmul dword [0x858ee8]
fstp dword [esp + 0x58]
fld dword [edi]
fsub st(2)
fstp dword [edi]
fld dword [edi + 4]
fsub st(1)
fstp dword [edi + 4]
fstp st(0)
fstp st(0)
fld dword [edi + 8]
fsub dword [esp + 0x58]
fstp dword [edi + 8]
call fcn.00509ce0
fld dword [ebp]
mov ecx, dword [0xb6f980]
fchs
pop edi
fld dword [esi + 0x194]
fpatan
pop ebp
pop ebx
fld st(0)
fstp dword [ecx + 0x558]
mov edx, dword [0xb6f980]
fstp dword [edx + 0x55c]
pop esi
add esp, 0x4c
ret 0x10