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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xdc
fld dword [esp + 0xf8]
mov ecx, dword [esp + 0x108]
mov ebx, dword [esp + 0xfc]
mov esi, dword [esp + 0x100]
fld dword [esp + 0xf0]
mov eax, dword [esp + 0x104]
movzx edx, ch
mov dword [esp + 0x88], ecx
fstp dword [esp + 0x6c]
mov dword [esp + 0x80], edx
mov edx, ecx
shr edx, 0x10
shr ecx, 0x18
fld dword [esp + 0xf4]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], ecx
fstp dword [esp + 0x70]
fldz
fucompi st(1)
fld dword [0x46cc68]
fcmovb st(0), st(1)
fstp st(1)
cmp esi, ebx
fstp dword [esp + 0x7c]
jl 0x422516
mov edx, esi
mov esi, ebx
mov ebx, edx
sub ebx, esi
cmp eax, 3
jle 0x422b30
mov dword [esp + 0x10], ebx
fild dword [esp + 0x10]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
mov dword [esp + 0x10], eax
mov edi, eax
lea edx, [eax + eax]
fild dword [esp + 0x10]
and edi, 1
sar eax, 1
mov dword [esp + 0x94], edi
mov dword [esp + 0x74], eax
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
mov dword [esp + 0x10], esi
mov dword [esp], edx
fstp dword [esp + 0x84]
fild dword [esp + 0x10]
fstp dword [esp + 0x4c]
call fcn.0040e080
test al, al
jne 0x422b20
lea eax, [esp + 0xbc]
call fcn.00421ce0
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
call fcn.0040deb0
mov dword [esp], 7
call fcn.0040dc90
mov edx, dword [esp + 0x74]
test edx, edx
je 0x422896
fld dword [esp + 0x7c]
movzx eax, byte [esp + 0x88]
xor ebx, ebx
movzx ebp, byte [esp + 0x90]
movzx edi, byte [esp + 0x8c]
fstp xword [esp + 0x10]
movzx esi, byte [esp + 0x80]
mov dword [esp + 0x78], eax
fld dword [esp + 0x70]
fstp xword [esp + 0x30]
fld dword [esp + 0x6c]
fstp xword [esp + 0x20]
fld dword [esp + 0x84]
fstp xword [esp + 0x40]
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], ebp
add ebx, 1
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0040d410
fld dword [0x4a2864]
fild dword [0x4a2878]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp + 4]
fld dword [0x4a2860]
fild dword [0x4a2874]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp]
call fcn.0040d3d0
fld dword [esp + 0x70]
fstp dword [esp + 4]
fld dword [esp + 0x6c]
fstp dword [esp]
call fcn.0040d370
fld dword [0x4a286c]
fadd dword [0x4a2864]
fild dword [0x4a2878]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp + 4]
fld dword [0x4a2860]
fild dword [0x4a2874]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp]
call fcn.0040d3d0
fld dword [esp + 0x4c]
fld xword [0x46cc80]
fmul st(1)
fxch st(1)
fstp xword [esp + 0x60]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fst dword [esp]
fstp dword [esp + 0x50]
call fcn.00460740
fstp dword [esp + 0x4c]
fld dword [esp + 0x50]
fstp dword [esp]
call fcn.00461070
fld xword [esp + 0x10]
fld dword [esp + 0x4c]
fmul st(1)
fld xword [esp + 0x30]
faddp st(1)
fstp dword [esp + 4]
fmulp st(1)
fld xword [esp + 0x20]
faddp st(1)
fstp dword [esp]
call fcn.0040d370
fld dword [0x4a286c]
fadd dword [0x4a2864]
fild dword [0x4a2878]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp + 4]
fld dword [0x4a2868]
fadd dword [0x4a2860]
fild dword [0x4a2874]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp]
call fcn.0040d3d0
fld xword [esp + 0x40]
fld xword [esp + 0x60]
faddp st(1)
fld xword [0x46cc80]
fmulp st(1)
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fst dword [esp]
fstp dword [esp + 0x50]
call fcn.00460740
fstp dword [esp + 0x4c]
fld dword [esp + 0x50]
fstp dword [esp]
call fcn.00461070
fld xword [esp + 0x10]
fld dword [esp + 0x4c]
fmul st(1)
fld xword [esp + 0x30]
faddp st(1)
fstp dword [esp + 4]
fmulp st(1)
fld xword [esp + 0x20]
faddp st(1)
fstp dword [esp]
call fcn.0040d370
fld dword [0x4a2864]
fild dword [0x4a2878]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp + 4]
fld dword [0x4a2868]
fadd dword [0x4a2860]
fild dword [0x4a2874]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp]
call fcn.0040d3d0
fld xword [esp + 0x40]
fld st(0)
faddp st(1)
fld xword [esp + 0x60]
faddp st(1)
fld xword [0x46cc80]
fmul st(1)
fxch st(1)
fstp xword [esp + 0x60]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fst dword [esp]
fstp dword [esp + 0x50]
call fcn.00460740
fstp dword [esp + 0x4c]
fld dword [esp + 0x50]
fstp dword [esp]
call fcn.00461070
fld xword [esp + 0x10]
fld dword [esp + 0x4c]
fmul st(1)
fld xword [esp + 0x30]
faddp st(1)
fstp dword [esp + 4]
fmulp st(1)
fld xword [esp + 0x20]
faddp st(1)
fstp dword [esp]
call fcn.0040d370
fld xword [esp + 0x60]
cmp ebx, dword [esp + 0x74]
fstp dword [esp + 0x4c]
jne 0x422603
mov eax, dword [esp + 0x94]
test eax, eax
je 0x422b07
mov eax, dword [esp + 0x90]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x8c]
mov dword [esp + 8], eax
movzx eax, byte [esp + 0x80]
mov dword [esp + 4], eax
movzx eax, byte [esp + 0x88]
mov dword [esp], eax
call fcn.0040d410
fld dword [0x4a2864]
fild dword [0x4a2878]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp + 4]
fld dword [0x4a2860]
fild dword [0x4a2874]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp]
call fcn.0040d3d0
fld dword [esp + 0x70]
fstp dword [esp + 4]
fld dword [esp + 0x6c]
fstp dword [esp]
call fcn.0040d370
fld dword [0x4a286c]
fadd dword [0x4a2864]
fild dword [0x4a2878]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp + 4]
fld dword [0x4a2860]
fild dword [0x4a2874]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp]
call fcn.0040d3d0
fld dword [esp + 0x70]
fstp xword [esp + 0x10]
fld dword [esp + 0x4c]
fld xword [0x46cc80]
fmul st(1)
fxch st(1)
fstp xword [esp + 0x50]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fst dword [esp]
fstp dword [esp + 0x40]
call fcn.00460740
fstp dword [esp + 0x4c]
fld dword [esp + 0x7c]
fstp xword [esp + 0x30]
fld dword [esp + 0x6c]
fstp xword [esp + 0x20]
fld dword [esp + 0x40]
fstp dword [esp]
call fcn.00461070
fld xword [esp + 0x30]
fld dword [esp + 0x4c]
fmul st(1)
fld xword [esp + 0x10]
faddp st(1)
fstp dword [esp + 4]
fmul st(1), st(0)
fstp xword [esp + 0x40]
fld xword [esp + 0x20]
faddp st(1)
fstp dword [esp]
call fcn.0040d370
fld dword [0x4a286c]
fadd dword [0x4a2864]
fild dword [0x4a2878]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp + 4]
fld dword [0x4a2868]
fadd dword [0x4a2860]
fild dword [0x4a2874]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp]
call fcn.0040d3d0
fld xword [esp + 0x50]
fadd dword [esp + 0x84]
fld xword [0x46cc80]
fmulp st(1)
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fst dword [esp]
fstp dword [esp + 0x4c]
call fcn.00460740
fstp dword [esp + 0x30]
fld dword [esp + 0x4c]
fstp dword [esp]
call fcn.00461070
fld dword [esp + 0x30]
fld xword [esp + 0x40]
fmul st(1), st(0)
fld xword [esp + 0x10]
faddp st(2)
fxch st(1)
fstp dword [esp + 4]
fmulp st(1)
fld xword [esp + 0x20]
faddp st(1)
fstp dword [esp]
call fcn.0040d370
fld dword [0x4a2864]
fild dword [0x4a2878]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp + 4]
fld dword [0x4a2868]
fadd dword [0x4a2860]
fild dword [0x4a2874]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fdivp st(1)
fstp dword [esp]
call fcn.0040d3d0
fld dword [esp + 0x70]
fstp dword [esp + 4]
fld dword [esp + 0x6c]
fstp dword [esp]
call fcn.0040d370
call fcn.0040dd90
add esp, 0xdc
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040dfa0
call fcn.0040dc60
jmp 0x422587
fld dword [0x46cc5c]
fdiv dword [esp + 0x7c]
fld1
fsubr st(1), st(0)
fxch st(1)
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fmul st(0)
fstp qword [esp + 0xa0]
fld qword [esp + 0xa0]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fadd st(0)
fsubrp st(1)
fstp dword [esp]
call fcn.00460620
fnstcw word [esp + 0xaa]
mov dword [esp + 0x10], ebx
movzx eax, word [esp + 0xaa]
fild dword [esp + 0x10]
mov ah, 8
mov word [esp + 0xa8], ax
movzx eax, word [esp + 0xaa]
mov ah, 0xc
mov word [esp + 0x9e], ax
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fld xword [0x46cc70]
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fldcw word [esp + 0xa8]
frndint
fldcw word [esp + 0xaa]
fmul st(1)
fdiv dword [0x46cc7c]
fldcw word [esp + 0x9e]
fistp dword [esp + 0x98]
fldcw word [esp + 0xaa]
mov eax, dword [esp + 0x98]
test eax, eax
jg 0x422537
mov dword [esp + 0x74], 2
mov dword [esp + 0x94], 0
mov edx, 8
fld dword [0x46cc6c]
jmp 0x422562