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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x578f2b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xdc
push ebx
push esi
mov esi, ecx
push edi
mov al, byte [esi + 0x90]
test al, al
je 0x47289f
xor edi, edi
mov dword [esp + 0x1c], edi
fild dword [esp + 0x1c]
lea eax, [esp + 0x28]
lea ecx, [esp + 0x24]
push eax
push ecx
fstp qword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push 0
push 0
push ebx
push edx
mov ecx, esi
call fcn.00471980
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.004719a0
test edi, edi
je 0x472711
cmp edi, 0x5a
je 0x472711
cmp edi, 0xb4
je 0x472711
cmp edi, 0x10e
je 0x472711
lea eax, [esp + 0x50]
lea ecx, [esp + 0x4c]
push eax
push ecx
push 0x40540000
push 0
mov ecx, esi
call fcn.00471980
mov edx, dword [esp + 0x14]
sub esp, 8
mov ecx, esi
fstp qword [esp]
push ebx
push edx
call fcn.00471980
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.004719a0
jmp 0x472721
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x44]
lea ecx, [esp + 0x40]
push eax
mov eax, dword [esp + 0x28]
push ecx
push edx
push eax
mov ecx, esi
call fcn.00471a00
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x38]
lea edx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x50]
push edx
push eax
push ecx
mov ecx, esi
call fcn.00471a00
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
push 0
push edx
mov edx, dword [esp + 0x48]
push eax
mov eax, dword [ebp + 8]
push ecx
push edx
push eax
mov ecx, esi
call fcn.0046b0a0
add edi, 0xa
cmp edi, 0x15f
mov dword [esp + 0x1c], edi
jl 0x47268a
mov edi, 0xa
mov dword [esp + 0x1c], edi
lea ecx, [esp + 0x44]
lea edx, [esp + 0x40]
push ecx
push edx
push 0
push 0
mov ecx, esi
call fcn.00471a00
fild dword [esp + 0x1c]
lea eax, [esp + 0x28]
lea ecx, [esp + 0x24]
push eax
push ecx
fstp qword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ebx
push edx
mov ecx, esi
call fcn.00471980
sub esp, 8
mov ecx, esi
fstp qword [esp]
push 0x40568000
push 0
call fcn.00471980
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.004719a0
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x38]
lea ecx, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x28]
push ecx
push edx
push eax
mov ecx, esi
call fcn.00471a00
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 8]
push ebx
push ecx
push 0x40568000
push 0
push 0
push 0
push edx
mov ecx, esi
call fcn.00471cb0
add edi, 0xa
cmp edi, 0x51
mov dword [esp + 0x1c], edi
jl 0x472794
lea eax, [esp + 0x44]
lea ecx, [esp + 0x40]
push eax
push ecx
push 0
push 0
mov ecx, esi
call fcn.00471a00
lea edx, [esp + 0x28]
lea eax, [esp + 0x24]
push edx
push eax
push 0
push 0
mov ecx, esi
call fcn.00471980
sub esp, 8
mov ecx, esi
fstp qword [esp]
push 0x40568000
push 0
call fcn.00471980
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.004719a0
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x38]
lea edx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x28]
push edx
push eax
push ecx
mov ecx, esi
call fcn.00471a00
jmp 0x472ca4
fld qword [ebp + 0xc]
call sub.MSVCRT.dll__ftol
fld qword [ebp + 0x14]
mov dword [esp + 0x2c], eax
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
fst qword [esp + 0x64]
fstp qword [esp + 0x54]
fild dword [esp + 0x2c]
fst qword [esp + 0x5c]
fadd qword [0x585c78]
fst qword [esp + 0xc]
fcomp qword [0x588958]
fnstsw ax
test ah, 0x41
jne 0x4728f0
fld qword [esp + 0xc]
fsub qword [0x588958]
fstp qword [esp + 0xc]
fld qword [esp + 0xc]
fadd qword [0x588960]
mov ecx, esi
fstp qword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
call fcn.00471980
fcos
fstp qword [esp + 0xa0]
fld qword [esp + 0xc]
fadd qword [0x585c78]
fstp qword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
push ecx
push edx
mov ecx, esi
call fcn.00471980
fcos
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
push edi
push ebx
mov ecx, esi
fstp qword [esp + 0x24]
call fcn.00471980
fsin
push edi
push ebx
mov ecx, esi
fmul qword [esp + 0x24]
fstp qword [esp + 0xb0]
call fcn.00471980
fcos
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push eax
push ecx
mov ecx, esi
fstp qword [esp + 0x24]
call fcn.00471980
fcos
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
mov ecx, esi
fmul qword [esp + 0x24]
fstp qword [esp + 0xb8]
call fcn.00471980
fsin
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
push ecx
push edx
mov ecx, esi
fstp qword [esp + 0xc0]
call fcn.00471980
fsin
push edi
push ebx
mov ecx, esi
fstp qword [esp + 0x1c]
call fcn.00471980
fsin
push edi
push ebx
mov ecx, esi
fmul qword [esp + 0x1c]
fstp qword [esp + 0xc8]
call fcn.00471980
fcos
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push eax
push ecx
mov ecx, esi
fstp qword [esp + 0x1c]
call fcn.00471980
fsin
push edi
push ebx
mov ecx, esi
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
fmul qword [esp + 0x1c]
fstp qword [esp + 0xd0]
call fcn.00471980
fcos
push edi
push ebx
mov ecx, esi
fstp qword [esp + 0xe0]
call fcn.00471980
fsin
mov dword [esp + 0x1c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
fstp qword [esp + 0xe0]
fild dword [esp + 0x1c]
mov ecx, esi
fstp qword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
push edi
push ebx
call fcn.00471980
fcos
push edi
push ebx
mov ecx, esi
fstp qword [esp + 0x78]
call fcn.00471980
fsin
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x88]
mov ebx, 3
fstp qword [esp + 0x78]
mov dword [ecx], 0
mov dword [ecx + 4], 0
fld qword [ecx]
lea edx, [esp + 0x70]
mov edi, 3
fld qword [eax]
fmul qword [edx]
add eax, 8
add edx, 8
dec edi
faddp st(1)
jne 0x472aad
fstp qword [ecx]
add ecx, 8
dec ebx
jne 0x472a95
fld qword [esp + 0x98]
call sub.MSVCRT.dll__CIasin
fstp qword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
mov ecx, esi
call fcn.00471990
fcomp qword [0x588960]
fnstsw ax
test ah, 0x40
jne 0x472b3c
fld qword [esp + 0x90]
fld qword [esp + 0x88]
fpatan
fstp qword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
push ecx
push edx
mov ecx, esi
call fcn.00471990
fcomp qword [0x585c78]
fnstsw ax
test ah, 1
je 0x472b4c
push 0x40668000
push 0
mov ecx, esi
call fcn.00471980
fadd qword [esp + 0xc]
fstp qword [esp + 0xc]
jmp 0x472b4c
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
push eax
push ecx
mov ecx, esi
call fcn.00471990
fcomp qword [0x585c80]
fnstsw ax
test ah, 1
je 0x472bb9
fld qword [esp + 0x14]
fchs
fstp qword [esp + 0x14]
push 0x40668000
push 0
mov ecx, esi
call fcn.00471980
fadd qword [esp + 0xc]
push 0x40768000
push 0
mov ecx, esi
fstp qword [esp + 0x14]
call fcn.00471980
fcomp qword [esp + 0xc]
fnstsw ax
test ah, 1
je 0x472bb9
push 0x40768000
push 0
mov ecx, esi
call fcn.00471980
fsubr qword [esp + 0xc]
fstp qword [esp + 0xc]
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CString::CString_4
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
push edi
push ebx
mov ecx, esi
mov dword [esp + 0xf8], 0
call fcn.00471990
fabs
fcomp qword [0x58d640]
fnstsw ax
test ah, 1
je 0x472c29
push 0
push 1
lea edx, [esp + 0x34]
push 0
push edx
push edi
push ebx
mov ecx, esi
call fcn.00471990
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
sub esp, 8
fstp qword [esp]
push eax
push ecx
mov ecx, esi
call fcn.00471990
mov edx, dword [ebp + 8]
sub esp, 8
mov ecx, esi
fstp qword [esp]
push edx
call fcn.0046e830
lea ecx, [esp + 0x2c]
mov dword [esp + 0xf0], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x1c]
add eax, 0xa
cmp eax, 0xaa
mov dword [esp + 0x1c], eax
jle 0x472a54
mov ebx, dword [esp + 0x68]
mov edi, 0xa
mov dword [esp + 0x1c], edi
cmp edi, 0x5a
jne 0x472c73
mov eax, dword [esp + 0x48]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x59
jg 0x472c98
fild dword [esp + 0x1c]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
sub esp, 8
fstp qword [esp]
push ebx
push eax
mov eax, dword [ebp + 8]
push ecx
push edx
push eax
mov ecx, esi
call fcn.00471cb0
add edi, 0xa
cmp edi, 0x5a
mov dword [esp + 0x1c], edi
jle 0x472c63
lea ecx, [esp + 0x44]
lea edx, [esp + 0x40]
push ecx
push edx
push 0
push 0
mov ecx, esi
call fcn.00471a00
lea eax, [esp + 0x28]
lea ecx, [esp + 0x24]
push eax
push ecx
push 0
push 0
mov ecx, esi
call fcn.00471980
sub esp, 8
mov ecx, esi
fstp qword [esp]
push 0x40568000
push 0
call fcn.00471980
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.004719a0
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x38]
lea eax, [esp + 0x3c]
push edx
mov edx, dword [esp + 0x28]
push eax
push ecx
push edx
mov ecx, esi
call fcn.00471a00
mov ecx, dword [esp + 0xe8]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x14