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

Disassembly:
push ebx
push esi
push edi
push ebp
mov ebp, ecx
sub esp, 0x160
mov eax, dword [ebp + 0x4c]
push eax
call fcn.00402e20
fld dword [0x691e34]
fstp dword [esp + 0x1c]
fld dword [0x691e34]
mov edi, dword [0x9388bc]
xor ebx, ebx
fstp dword [esp + 0x20]
mov esi, dword [ebp + 0x3d8]
pop ecx
cmp esi, edi
mov byte [esp + 0xc], 0
mov dword [esp + 0x5c], 0
mov byte [esp + 0x10], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
sete byte [esp + 8]
mov cl, byte [ebp + 0x150]
shr cl, 6
and cl, 1
je 0x503737
mov esi, dword [ebp + 0x55c]
test esi, esi
je 0x503737
cmp esi, 0x12c
jae 0x503737
dec dword [ebp + 0x55c]
cmp dword [ebp + 0x55c], 0
jne 0x503737
mov dl, byte [ebp + 0x150]
and dl, 0xbf
mov byte [ebp + 0x150], dl
mov cl, byte [ebp + 0x14c]
and cl, 1
jne 0x50378c
add esp, 0x160
pop ebp
pop edi
pop esi
pop ebx
ret
movzx esi, word [eax + 0x2e]
mov edx, esi
and edx, 0x100
je 0x503770
fld dword [esp + 0x1c]
fadd dword [eax + 0x18]
mov ebx, eax
fstp dword [esp + 0x1c]
jmp 0x503783
and esi, 0x400
jne 0x503783
fld dword [esp + 0x18]
fadd dword [eax + 0x18]
fstp dword [esp + 0x18]
fcompp
push eax
call fcn.004075d0
pop ecx
test eax, eax
fldz
fldz
jne 0x503750
test ebx, ebx
je 0x504990
fld dword [esp + 0x1c]
fcomp dword [0x691e84]
fnstsw ax
test ah, 0x45
jne 0x504997
fld dword [esp + 0x18]
fcomp dword [0x691e3c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5049a0
mov eax, dword [ebx + 0x14]
cmp byte [esp + 8], 0
fld dword [eax + 0x20]
fmul dword [0x691e84]
fadd dword [0x692040]
fstp st(2)
je 0x503a80
cmp byte [0x707f24], 0
jne 0x503802
mov byte [0x707f24], 1
mov dword [0x707f20], 0x3f800000
cmp byte [0x707f2c], 0
jne 0x50381c
mov byte [0x707f2c], 1
mov dword [0x707f28], 0x41700000
cmp word [ebx + 0x2c], 0
jne 0x503835
fld dword [0x691e34]
fstp dword [esp + 0x20]
fld dword [0x692044]
jmp 0x503845
fld dword [0x691e34]
fstp dword [esp + 0x20]
fld dword [0x692048]
fstp dword [esp + 0x3c]
fcompp
mov al, byte [ebp + 0x11c]
push eax
call fcn.004ce7d0
cmp eax, 5
pop ecx
ja case.0x503861.0
jmp dword [eax*4 + 0x69253c]
call fcn.006499f0
movzx eax, ax
and eax, 0x7f
jne 0x503884
mov ecx, ebp
push 0
push 0x1b
push 0
call fcn.004fd9f0
jmp 0x5038a8
fld dword [ebp + 0x1fc]
fmul dword [0x691e84]
fstp dword [ebp + 0x1fc]
fld dword [ebp + 0x200]
fmul dword [0x691e84]
fstp dword [ebp + 0x200]
fld dword [0x691e84]
jmp 0x503936
call fcn.006499f0
movzx eax, ax
and eax, 0x3f
jne 0x5038d0
mov ecx, ebp
push 0
push 0x1b
push 0
call fcn.004fd9f0
jmp 0x5038f4
fld dword [ebp + 0x1fc]
fmul dword [0x691e70]
fstp dword [ebp + 0x1fc]
fld dword [ebp + 0x200]
fmul dword [0x691e70]
fstp dword [ebp + 0x200]
fld dword [0x691e70]
fstp dword [esp + 0x24]
jmp 0x50393a
fld dword [ebp + 0x1fc]
fmul dword [0x691fe0]
fstp dword [ebp + 0x1fc]
fld dword [ebp + 0x200]
fmul dword [0x691fe0]
fstp dword [ebp + 0x200]
fld dword [0x691e70]
jmp 0x503936
fld dword [0x691e3c]
fstp dword [esp + 0x24]
fldz
fld dword [esp + 0x24]
fcomp dword [0x691e70]
fnstsw ax
test ah, 0x45
jne 0x5039d6
fld dword [ebx + 0x20]
fst st(1)
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 0x45
jne 0x5039d6
fld st(0)
fsub dword [ebx + 0x28]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 4
jne 0x5039d6
and ah, 0x45
test ah, 0x41
je 0x5039d6
fld dword [0x69204c]
fmul dword [esp + 0x24]
movsx edi, word [ebx + 0x2c]
fnstcw word [esp + 0x14]
mov eax, dword [esp + 0x14]
or byte [esp + 0x15], 0xc
fldcw word [esp + 0x14]
fistp dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x14], eax
movzx eax, cl
shl edi, 8
mov ecx, 0xa10b8a
fldcw word [esp + 0x14]
or edi, eax
push eax
mov dword [esp + 0x44], edi
fild dword [esp + 0x44]
fstp dword [esp]
mov eax, dword [ebp + 0x64]
push 0xbd
push eax
fstp st(0)
call fcn.005f9da0
jmp 0x50411f
fld dword [esp + 0x24]
fcomp dword [0x691e70]
fnstsw ax
test ah, 0x45
jne 0x5049a7
fld dword [ebx + 0x20]
fst st(1)
fcomp dword [esp + 0x3c]
fnstsw ax
test ah, 0x45
jne 0x5049b0
fld st(0)
fsub dword [ebx + 0x28]
fcomp dword [esp + 0x3c]
fnstsw ax
test ah, 4
jne 0x5049b7
and ah, 0x45
test ah, 0x41
je 0x5049b7
fld dword [0x69204c]
fmul dword [esp + 0x24]
movsx edx, word [ebx + 0x2c]
fnstcw word [esp + 0x14]
mov eax, dword [esp + 0x14]
or byte [esp + 0x15], 0xc
fldcw word [esp + 0x14]
fistp dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x14], eax
movzx eax, cl
shl edx, 8
mov ecx, 0xa10b8a
fldcw word [esp + 0x14]
or edx, eax
push eax
mov dword [esp + 0x44], edx
fild dword [esp + 0x44]
fstp dword [esp]
mov eax, dword [ebp + 0x64]
push 0xbd
push eax
fstp st(0)
call fcn.005f9da0
jmp 0x50411f
fld dword [ebx + 0x20]
fst st(1)
fcomp dword [0x692040]
fnstsw ax
test ah, 5
jne 0x503d20
fld st(0)
fsub dword [ebx + 0x28]
fcomp dword [0x692040]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x503d20
fcompp
mov eax, dword [ebp + 0x64]
mov ecx, 0xa10b8a
push dword [0x691e3c]
push 0x21
push eax
call fcn.005f9da0
mov eax, dword [ebp + 0x4c]
push eax
call fcn.0057f250
mov edi, dword [ebp + 0x1cc]
mov esi, eax
mov eax, dword [edi + 0x14]
pop ecx
push eax
push esi
call fcn.00646390
pop ecx
pop ecx
push esi
mov edi, eax
call fcn.00646370
shl edi, 6
lea edx, [esp + 0x58]
add edi, eax
lea eax, [esp + 0x58]
pop ecx
push edi
push 1
push edx
push eax
call fcn.00647160
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x78], eax
mov byte [esp + 0x20], 1
mov dword [esp + 0x74], ecx
lea eax, [ebp + 0x14]
lea esi, [eax]
lea edi, [esp + 0x7c]
movsd dword es:[edi], dword [esi]
fldz
add esp, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp + 4]
lea edi, [esp + 0x78]
lea esi, [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0x68]
fsub dword [0x691e58]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x2c], eax
fstp dword [esp + 0x68]
fld dword [0x691e70]
fmul dword [esp + 0x2c]
fstp st(1)
fld dword [0x691e70]
fmul dword [esp + 0x6c]
fadd dword [esp + 0x60]
fstp dword [esp + 0x60]
fld dword [esp + 0x64]
fadd st(1)
fstp dword [esp + 0x64]
fld dword [0x691e70]
fmul dword [esp + 0x74]
fadd dword [esp + 0x68]
fstp dword [esp + 0x68]
mov al, byte [ebp + 0x150]
shr al, 6
and al, 1
je 0x504980
fld dword [0x691e74]
fmul dword [esp + 0x7c]
push dword [0x691e3c]
push 0xbb8
push dword [0x691e2c]
push 0
push 0
push 0xff
push 0xff
push eax
fstp dword [esp]
fld dword [0x691e74]
fmul dword [esp + 0x98]
push eax
fstp dword [esp]
fld dword [0x691e78]
fmul dword [esp + 0x50]
push eax
fstp dword [esp]
fld dword [0x691e78]
fmul dword [esp + 0x94]
push eax
fstp dword [esp]
mov eax, dword [0xa0dac8]
lea edi, [esp + 0x8c]
push edi
push eax
push 1
fstp st(0)
call fcn.0056ec50
add esp, 0x38
cmp dword [ebp + 0x55c], 0x14
jbe 0x503c30
sub dword [ebp + 0x55c], 0x14
jmp 0x503c48
mov dword [ebp + 0x55c], 0
mov al, byte [ebp + 0x150]
and al, 0xbf
mov byte [ebp + 0x150], al
mov al, byte [ebp + 0x11c]
cmp al, 0x12
je 0x503c56
cmp al, 0x21
jne 0x503ccb
fld dword [0x691e58]
fmul dword [esp + 0x7c]
push dword [0x691e3c]
push 0x1388
push dword [0x691e2c]
push 0x32
push 0xfa
push 0xfa
push 0x78
push eax
fstp dword [esp]
fld dword [0x691e58]
fmul dword [esp + 0x98]
push eax
fstp dword [esp]
fld dword [0x692050]
fmul dword [esp + 0x50]
push eax
fstp dword [esp]
fld dword [0x692050]
fmul dword [esp + 0x94]
push eax
fstp dword [esp]
mov eax, dword [0x9b5f2c]
lea edx, [esp + 0x8c]
push edx
push eax
push 1
call fcn.0056ec50
add esp, 0x38
fld dword [0x975340]
fcomp dword [0x691e58]
fnstsw ax
test ah, 0x45
jne 0x503cf4
call fcn.0057e0e0
test al, al
jne 0x503cf4
call fcn.0057e0c0
test al, al
je 0x50411f
cmp dword [ebp + 0x3d4], 0
jne 0x503d01
mov al, 1
jmp 0x503d03
xor al, al
test al, al
je 0x50411f
lea eax, [esp + 0x60]
push 4
push dword [0x691e34]
jmp 0x504115
fcom st(1)
fnstsw ax
test ah, 5
jne 0x5049c0
fld st(0)
fsub dword [ebx + 0x28]
fcomp st(2)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5049c7
fcompp
mov eax, dword [ebp + 0x64]
mov ecx, 0xa10b8a
push dword [0x691e3c]
push 0x22
push eax
call fcn.005f9da0
mov eax, dword [ebp + 0x4c]
push eax
call fcn.0057f250
mov esi, dword [ebp + 0x1d0]
mov edi, eax
mov eax, dword [esi + 0x14]
pop ecx
push eax
push edi
call fcn.00646390
pop ecx
pop ecx
push edi
mov esi, eax
call fcn.00646370
shl esi, 6
pop ecx
lea ecx, [esp + 0x48]
add esi, eax
lea eax, [esp + 0x48]
push esi
push 1
push ecx
push eax
call fcn.00647160
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x9c], eax
add dword [esp + 0x14], 4
add dword [esp + 0x14], 0x10
mov eax, dword [esp + 0x14]
mov byte [esp + 0x1c], 1
lea edi, [esp + 0xa0]
mov dword [esp + 0x98], edx
lea esi, [eax]
add esp, 0x10
movsd dword es:[edi], dword [esi]
fldz
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp + 4]
lea edi, [esp + 0x9c]
lea esi, [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0x8c]
fsub dword [0x691e58]
mov eax, dword [esp + 0x94]
mov dword [esp + 0x30], eax
fstp dword [esp + 0x8c]
fld dword [0x691e70]
fmul dword [esp + 0x30]
fstp st(1)
fld dword [0x691e70]
fmul dword [esp + 0x90]
fadd dword [esp + 0x84]
fstp dword [esp + 0x84]
fld dword [esp + 0x88]
fadd st(1)
fstp dword [esp + 0x88]
fld dword [0x691e70]
fmul dword [esp + 0x98]
fadd dword [esp + 0x8c]
fstp dword [esp + 0x8c]
mov al, byte [ebp + 0x150]
shr al, 6
and al, 1
je 0x504987
fld dword [0x691e58]
fmul dword [esp + 0xa0]
push dword [0x691e3c]
push 0xbb8
push dword [0x691e2c]
push 0
push 0
push 0xff
push 0xff
push eax
fstp dword [esp]
fld dword [0x691e58]
fmul dword [esp + 0xbc]
push eax
fstp dword [esp]
fld dword [0x691e78]
fmul dword [esp + 0x54]
push eax
fstp dword [esp]
fld dword [0x691e78]
fmul dword [esp + 0xb8]
push eax
fstp dword [esp]
mov eax, dword [0xa0dac8]
lea esi, [esp + 0xb0]
push esi
push eax
push 1
fstp st(0)
call fcn.0056ec50
add esp, 0x38
cmp dword [ebp + 0x55c], 0x14
jbe 0x503f00
sub dword [ebp + 0x55c], 0x14
jmp 0x503f18
mov dword [ebp + 0x55c], 0
mov al, byte [ebp + 0x150]
and al, 0xbf
mov byte [ebp + 0x150], al
cmp byte [esp + 8], 0
jne 0x503fa9
mov al, byte [ebp + 0x11c]
cmp al, 0x12
je 0x503f31
cmp al, 0x21
jne 0x503fa9
fld dword [0x691e74]
fmul dword [esp + 0xa0]
push dword [0x691e3c]
push 0x1388
push dword [0x691e2c]
push 0x32
push 0xfa
push 0xfa
push 0x78
push eax
fstp dword [esp]
fld dword [0x691e74]
fmul dword [esp + 0xbc]
push eax
fstp dword [esp]
fld dword [0x692050]
fmul dword [esp + 0x54]
push eax
fstp dword [esp]
fld dword [0x692050]
fmul dword [esp + 0xb8]
push eax
fstp dword [esp]
mov eax, dword [0x9b5f2c]
lea ecx, [esp + 0xb0]
push ecx
push eax
push 1
call fcn.0056ec50
add esp, 0x38
fld dword [0x975340]
fcomp dword [0x691e58]
fnstsw ax
test ah, 0x45
jne 0x5040f3
call fcn.0057e0e0
test al, al
jne 0x5040f3
call fcn.0057e0c0
test al, al
jne 0x5040f3
mov eax, dword [0x691dfc]
mov dword [esp], 0
mov dword [esp + 0x15c], eax
lea eax, [eax]
lea esi, [esp + 0x84]
lea edi, [esp + 0x150]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fmul dword [0x691e90]
fmul dword [0x691e70]
fadd dword [0x691f30]
fadd dword [esp + 0x150]
fstp dword [esp + 0x150]
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fmul dword [0x691e90]
fmul dword [0x691e70]
fadd dword [0x691f30]
fadd dword [esp + 0x154]
fstp dword [esp + 0x154]
call fcn.006499f0
mov esi, dword [esp + 4]
fldz
fldz
fld dword [0x692054]
fmul dword [esi + 8]
movzx eax, ax
push 0xc8
fstp st(1)
fld dword [0x692054]
fmul dword [esi + 4]
and eax, 1
push eax
lea eax, [esp + 0x164]
fstp st(2)
fld dword [0x692054]
fmul dword [esi]
push 0
push 0
fstp dword [esp + 0x154]
fld st(1)
lea edx, [esp + 0x154]
push eax
lea eax, [esp + 0x164]
fstp dword [esp + 0x15c]
fst dword [esp + 0x160]
fcompp
push dword [0x691e50]
push 0
push edx
push eax
push 0x26
call fcn.00563cc0
inc dword [esp + 0x28]
add esp, 0x28
cmp dword [esp], 4
jl 0x503ff0
jmp 0x50411f
cmp dword [ebp + 0x3d4], 0
jne 0x504100
mov al, 1
jmp 0x504102
xor al, al
test al, al
je 0x50411f
lea eax, [esp + 0x84]
push 4
push dword [0x691e34]
push eax
push ebp
call fcn.00504a00
add esp, 0x10
cmp dword [ebp + 0x3d4], 0
jne 0x504130
mov al, 1
jmp 0x504132
xor al, al
test al, al
je 0x504609
test ebx, ebx
jne 0x504609
mov al, byte [ebp + 0x14d]
shr al, 4
and al, 1
je 0x504609
cmp byte [esp + 0x10], 0
je 0x504172
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov dword [esp + 0xac], edi
mov dword [esp + 0xa8], eax
jmp 0x5041c9
mov eax, dword [ebp + 0x4c]
push eax
call fcn.0057f250
pop ecx
mov ecx, dword [ebp + 0x1cc]
mov esi, eax
mov eax, dword [ecx + 0x14]
push eax
push esi
call fcn.00646390
pop ecx
pop ecx
push esi
mov edi, eax
call fcn.00646370
shl edi, 6
lea edx, [esp + 0x58]
add edi, eax
lea eax, [esp + 0x58]
pop ecx
push edi
push 1
push edx
push eax
call fcn.00647160
mov ecx, dword [esp + 0x68]
add esp, 0x10
mov eax, dword [esp + 0x54]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xb0], eax
lea ebx, [ebp + 0x14]
lea edi, [esp + 0xb4]
mov eax, ebx
lea esi, [eax]
movsd dword es:[edi], dword [esi]
fldz
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp + 4]
lea edi, [esp + 0xc0]
lea esi, [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0xb0]
fsub dword [0x691e58]
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x34], eax
fstp dword [esp + 0xb0]
fld dword [0x691e70]
fmul dword [esp + 0x34]
fstp st(1)
fld dword [0x691e70]
fmul dword [esp + 0xb4]
fadd dword [esp + 0xa8]
fstp dword [esp + 0xa8]
fld dword [esp + 0xac]
fadd st(1)
fstp dword [esp + 0xac]
fld dword [0x691e70]
fmul dword [esp + 0xbc]
fadd dword [esp + 0xb0]
fstp dword [esp + 0xb0]
mov al, byte [ebp + 0x150]
shr al, 6
and al, 1
je 0x5049d0
fld dword [0x691e74]
fmul dword [esp + 0xc4]
push dword [0x691e3c]
push 0xbb8
push dword [0x691e2c]
push 0
push 0
push 0xff
push 0xff
push eax
fstp dword [esp]
fld dword [0x691e74]
fmul dword [esp + 0xe0]
push eax
fstp dword [esp]
fld dword [0x691e78]
fmul dword [esp + 0x58]
push eax
fstp dword [esp]
fld dword [0x691e78]
fmul dword [esp + 0xdc]
push eax
fstp dword [esp]
mov eax, dword [0xa0dac8]
lea edi, [esp + 0xd4]
push edi
push eax
push 1
fstp st(0)
call fcn.0056ec50
add esp, 0x38
cmp dword [ebp + 0x55c], 0x14
jbe 0x504304
sub dword [ebp + 0x55c], 0x14
jmp 0x50431c
mov dword [ebp + 0x55c], 0
mov al, byte [ebp + 0x150]
and al, 0xbf
mov byte [ebp + 0x150], al
cmp byte [esp + 8], 0
jne 0x5043ad
mov al, byte [ebp + 0x11c]
cmp al, 0x12
je 0x504335
cmp al, 0x21
jne 0x5043ad
fld dword [0x691e74]
fmul dword [esp + 0xc4]
push dword [0x691e3c]
push 0x1388
push dword [0x691e2c]
push 0x32
push 0xfa
push 0xfa
push 0x78
push eax
fstp dword [esp]
fld dword [0x691e74]
fmul dword [esp + 0xe0]
push eax
fstp dword [esp]
fld dword [0x692050]
fmul dword [esp + 0x58]
push eax
fstp dword [esp]
fld dword [0x692050]
fmul dword [esp + 0xdc]
push eax
fstp dword [esp]
mov eax, dword [0x9b5f2c]
lea esi, [esp + 0xd4]
push esi
push eax
push 1
call fcn.0056ec50
add esp, 0x38
cmp byte [esp + 0xc], 0
je 0x5043d0
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov dword [esp + 0xd0], edx
mov dword [esp + 0xcc], eax
jmp 0x504427
mov eax, dword [ebp + 0x4c]
push eax
call fcn.0057f250
pop ecx
mov ecx, dword [ebp + 0x1d0]
mov edi, eax
mov eax, dword [ecx + 0x14]
push eax
push edi
call fcn.00646390
pop ecx
pop ecx
push edi
mov esi, eax
call fcn.00646370
shl esi, 6
pop ecx
add esi, eax
lea eax, [esp + 0x48]
push esi
lea esi, [esp + 0x4c]
push 1
push esi
push eax
call fcn.00647160
mov ecx, dword [esp + 0x5c]
add esp, 0x10
mov eax, dword [esp + 0x48]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xd4], eax
lea esi, [ebx]
lea edi, [esp + 0xd8]
movsd dword es:[edi], dword [esi]
fldz
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp + 4]
lea edi, [esp + 0xe4]
lea esi, [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0xd4]
fsub dword [0x691e58]
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x38], eax
fstp dword [esp + 0xd4]
fld dword [0x691e70]
fmul dword [esp + 0x38]
fstp st(1)
fld dword [0x691e70]
fmul dword [esp + 0xd8]
fadd dword [esp + 0xcc]
fstp dword [esp + 0xcc]
fld dword [esp + 0xd0]
fadd st(1)
fstp dword [esp + 0xd0]
fld dword [0x691e70]
fmul dword [esp + 0xe0]
fadd dword [esp + 0xd4]
fstp dword [esp + 0xd4]
mov al, byte [ebp + 0x150]
shr al, 6
and al, 1
je 0x5049d7
fld dword [0x691e58]
fmul dword [esp + 0xe8]
push dword [0x691e3c]
push 0xbb8
push dword [0x691e2c]
push 0
push 0
push 0xff
push 0xff
push eax
fstp dword [esp]
fld dword [0x691e58]
fmul dword [esp + 0x104]
push eax
fstp dword [esp]
fld dword [0x691e78]
fmul dword [esp + 0x5c]
push eax
fstp dword [esp]
fld dword [0x691e78]
fmul dword [esp + 0x100]
push eax
fstp dword [esp]
mov eax, dword [0xa0dac8]
lea edx, [esp + 0xf8]
push edx
push eax
push 1
fstp st(0)
call fcn.0056ec50
add esp, 0x38
cmp dword [ebp + 0x55c], 0x14
jbe 0x504560
sub dword [ebp + 0x55c], 0x14
jmp 0x504578
mov dword [ebp + 0x55c], 0
mov al, byte [ebp + 0x150]
and al, 0xbf
mov byte [ebp + 0x150], al
cmp byte [esp + 8], 0
jne 0x504609
mov al, byte [ebp + 0x11c]
cmp al, 0x12
je 0x504591
cmp al, 0x21
jne 0x504609
fld dword [0x691e74]
fmul dword [esp + 0xe8]
push dword [0x691e3c]
push 0x1388
push dword [0x691e2c]
push 0x32
push 0xfa
push 0xfa
push 0x78
push eax
fstp dword [esp]
fld dword [0x691e74]
fmul dword [esp + 0x104]
push eax
fstp dword [esp]
fld dword [0x692050]
fmul dword [esp + 0x5c]
push eax
fstp dword [esp]
fld dword [0x692050]
fmul dword [esp + 0x100]
push eax
fstp dword [esp]
mov eax, dword [0x9b5f2c]
lea esi, [esp + 0xf8]
push esi
push eax
push 1
call fcn.0056ec50
add esp, 0x38
cmp byte [ebp + 0x11c], 0x13
fldz
jne 0x5049f7
mov eax, dword [0x691e04]
mov dword [esp + 0xf0], eax
fld dword [ebp + 0x74]
fst st(1)
fmul st(0)
fld dword [ebp + 0x70]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fst st(1)
fcomp dword [0x692058]
fnstsw ax
test ah, 0x45
jne 0x5049e0
mov eax, dword [0xa0d898]
and eax, 1
jne 0x5049e7
fcom dword [0x69205c]
fnstsw ax
test ah, 0x45
jne 0x5049f0
fld st(0)
fsqrt
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fst st(1)
fmul qword [0x691f90]
fstp dword [esp + 0x40]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x28], eax
fld dword [esp + 0x28]
fcomp dword [0x691e4c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5046a6
fld dword [0x691e4c]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fcomp dword [0x691f14]
fnstsw ax
test ah, 0x45
jne 0x5046c1
fld dword [0x691f14]
fstp dword [esp + 0x28]
fld dword [0x691fe0]
lea eax, [ebp + 0x14]
lea ebx, [ebp + 0x34]
fmul dword [eax]
lea edi, [esp + 0xf4]
fadd dword [ebx]
fstp dword [esp + 0x124]
fld dword [0x691fe0]
fmul dword [eax + 4]
lea esi, [esp + 0x124]
fadd dword [ebx + 4]
fstp dword [esp + 0x128]
fld dword [0x691fe0]
fmul dword [eax + 8]
fadd dword [ebx + 8]
fstp dword [esp + 0x12c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0xfc]
fsub dword [0x692034]
lea edi, [esp + 0x100]
fstp dword [esp + 0xfc]
fld dword [0x692060]
fmul dword [ebp + 0x70]
fstp dword [esp + 0x130]
fld dword [0x692060]
fmul dword [ebp + 0x74]
lea esi, [esp + 0x130]
fstp dword [esp + 0x134]
fld dword [0x692060]
fmul dword [ebp + 0x78]
fstp dword [esp + 0x138]
movsd dword es:[edi], dword [esi]
fstp st(0)
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.006499f0
and eax, 0xffff
lea ecx, [esp + 0x13c]
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
push 0
push 0
fmul dword [0x691e90]
push 0
push 0
fmul dword [0x691edc]
fadd dword [0x691ef8]
fstp dword [esp + 0x118]
call fcn.00541570
fld dword [0x691e84]
fmul dword [esp + 0x28]
lea eax, [esp + 0x13c]
push 0
push 0
push 0
push 0
push eax
push eax
fstp dword [esp]
lea eax, [esp + 0x10c]
lea ecx, [esp + 0x118]
push 0
push ecx
push eax
push 0x2e
call fcn.00563cc0
lea eax, [esp + 0x118]
add esp, 0x28
lea edi, [esp + 0x100]
push 0
push 0
push 0
push 0
push eax
lea eax, [esp + 0x108]
push dword [esp + 0x3c]
push 0
push edi
push eax
push 0x44
call fcn.00563cc0
add esp, 0x28
cmp dword [ebp + 0x244], 0x29
jne 0x50496f
add ebp, 0x34
lea edi, [esp + 0x10c]
lea esi, [ebp]
movsd dword es:[edi], dword [esi]
push 0
push 0
push 0
push 0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0x124]
fsub dword [0x691e58]
lea ecx, [esp + 0x150]
mov dword [esp + 0x128], 0
mov dword [esp + 0x130], 0x3d99999a
mov dword [esp + 0x12c], 0
fstp dword [esp + 0x124]
call fcn.00541570
lea eax, [esp + 0x140]
lea edx, [esp + 0x118]
push 0
push 0
push 0
push 0
push eax
lea eax, [esp + 0x120]
push dword [0x691e9c]
push 0
push edx
push eax
push 0x2e
call fcn.00563cc0
add esp, 0x28
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fmul dword [0x691e90]
fmul dword [0x691e58]
fadd dword [0x692054]
fadd dword [esp + 0x118]
fstp dword [esp + 0x118]
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fmul dword [0x691e90]
fmul dword [0x691e58]
fadd dword [0x692054]
fadd dword [esp + 0x11c]
fstp dword [esp + 0x11c]
call fcn.006499f0
and eax, 0xffff
lea esi, [esp + 0x118]
mov dword [esp + 0x40], eax
lea eax, [esp + 0xf0]
fild dword [esp + 0x40]
push 0
push 0
fmul dword [0x691e90]
push 0
push 0
fmul dword [0x692064]
push eax
lea eax, [esp + 0x120]
push dword [0x691e84]
fadd dword [0x692064]
push 0
push esi
push eax
fsubr dword [esp + 0x144]
push 0x44
fstp dword [esp + 0x148]
call fcn.00563cc0
add esp, 0x28
add esp, 0x160
pop ebp
pop edi
pop esi
pop ebx
ret
fstp st(0)
jmp 0x503c48
fstp st(0)
jmp 0x503f18
fcompp
jmp 0x50411f
fcompp
jmp 0x50411f
fcompp
jmp 0x50411f
fstp st(0)
jmp 0x50411f
fstp st(0)
jmp 0x50411f
fstp st(0)
jmp 0x50411f
fcompp
jmp 0x50411f
fcompp
jmp 0x50411f
fstp st(0)
jmp 0x50431c
fstp st(0)
jmp 0x504578
fstp st(0)
jmp 0x50480f
fstp st(0)
jmp 0x50480f
fstp st(0)
jmp 0x50480f
fstp st(0)
jmp 0x50496f