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

Disassembly:
push ebp
push edi
mov edi, ecx
push esi
push ebx
sub esp, 0xdc
mov edx, dword [ecx + 0x24]
mov eax, dword [ecx]
cmp eax, dword [edx + 4]
je 0x449634
lea ecx, [ecx + 0x24]
mov dword [esp], eax
call fcn.004c6d90
sub esp, 4
mov eax, dword [edi + 4]
mov edx, dword [eax + 4]
cmp edx, 1
jg 0x4497b0
cmp edx, 1
lea esi, [edi + 0x24]
jne 0x449780
mov ebx, dword [eax + 0xc]
lea ecx, [eax + 8]
test ebx, ebx
je 0x44965c
mov ecx, dword [eax + 0x14]
add ecx, 0x18
call dword [0x5a4490]
mov ebx, eax
mov eax, dword [edi + 4]
mov edx, dword [eax + 0xc]
lea ecx, [eax + 8]
test edx, edx
je 0x449677
mov ecx, dword [eax + 0x14]
add ecx, 0x18
call dword [0x5a44b0]
fnstcw word [esp + 0x9e]
movzx eax, bl
mov ecx, esi
mov dword [esp + 4], 0xffffffff
mov dword [esp + 0x34], eax
movzx eax, word [esp + 0x9e]
fild dword [esp + 0x34]
fmul st(1)
mov ah, 0xc
mov word [esp + 0x9c], ax
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov edx, dword [esp + 0x98]
fld st(0)
movzx edx, dl
fmul dword [0x4f29fc]
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov eax, dword [esp + 0x98]
shl eax, 0x18
or edx, eax
mov eax, ebx
movzx ebx, bh
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
mov dword [esp + 0x34], ebx
fmul st(1)
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov eax, dword [esp + 0x98]
fild dword [esp + 0x34]
shl eax, 0x10
and eax, 0xff0000
fmulp st(1)
or edx, eax
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov eax, dword [esp + 0x98]
shl eax, 8
movzx eax, ax
or edx, eax
mov dword [esp], edx
call fcn.004384c0
sub esp, 8
mov byte [edi + 0x28], 0
add esp, 0xdc
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0xff000000
mov ecx, esi
call fcn.004384c0
sub esp, 8
mov byte [edi + 0x28], 0
add esp, 0xdc
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [edi]
mov ecx, edi
xor ebp, ebp
sub eax, 1
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fdivr dword [0x4f27d0]
fstp qword [esp + 0x40]
call fcn.0041a820
mov esi, dword [edi]
mov byte [esp + 0x3b], al
lea eax, [edi + 4]
mov dword [esp + 0x78], eax
lea eax, [edi + 0x24]
test esi, esi
mov dword [esp + 0x3c], eax
jle 0x449799
mov dword [esp + 0x34], ebp
mov ebp, edi
nop
mov esi, dword [ebp + 4]
mov eax, dword [esi]
cmp eax, 1
jbe 0x449806
mov ecx, dword [esp + 0x78]
call fcn.004b8fd0
mov esi, dword [ebp + 4]
mov eax, dword [esi + 0xc]
lea ecx, [esi + 8]
test eax, eax
je 0x449c70
fild dword [esp + 0x34]
xor ebx, ebx
fmul qword [esp + 0x40]
jmp 0x449829
mov ebx, eax
mov eax, dword [eax + 4]
test eax, eax
je 0x44983b
fld qword [eax + 0x10]
fxch st(1)
fucomi st(1)
fstp st(1)
jbe 0x449820
mov eax, dword [eax + 8]
test eax, eax
jne 0x449829
test ebx, ebx
je 0x449c60
cmp ecx, ebx
je 0x449c64
cmp dword [esi + 0x14], ebx
jne 0x449995
fstp st(0)
add ebx, 0x18
cmp byte [esp + 0x3b], 0
mov eax, dword [esp + 0x34]
lea esi, [eax*4]
je 0x449dd0
mov edi, dword [0x5a44a4]
mov ecx, ebx
call edi
mov dword [esp + 0x48], eax
mov ecx, ebx
fild dword [esp + 0x48]
fdiv dword [0x4f29fc]
fstp qword [esp + 0x60]
call edi
mov ecx, ebx
mov edi, eax
call dword [0x5a4494]
mov ecx, ebx
mov dword [esp + 0x48], eax
shl edi, 0x18
call dword [0x5a44a8]
mov ecx, ebx
mov dword [esp + 0x50], eax
call dword [0x5a448c]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x58], eax
call fcn.004c6d10
mov eax, dword [ebp + 0x24]
fild dword [esp + 0x48]
fld qword [esp + 0x60]
add esi, eax
add esi, dword [eax + 0xc]
fnstcw word [esp + 0x9e]
movzx eax, word [esp + 0x9e]
fmul st(1), st(0)
fxch st(1)
mov ah, 0xc
mov word [esp + 0x9c], ax
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov ecx, dword [esp + 0x98]
fild dword [esp + 0x58]
movzx ecx, cl
or ecx, edi
fmul st(1)
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov edi, dword [esp + 0x98]
fild dword [esp + 0x50]
shl edi, 0x10
mov eax, edi
mov edi, ecx
fmulp st(1)
and eax, 0xff0000
or edi, eax
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov eax, dword [esp + 0x98]
shl eax, 8
movzx eax, ax
or edi, eax
mov dword [esi], edi
jmp 0x449972
fstp st(0)
add dword [esp + 0x34], 1
mov eax, dword [esp + 0x34]
cmp dword [ebp], eax
jg 0x4497f0
mov edi, ebp
mov byte [edi + 0x28], 0
add esp, 0xdc
pop ebx
pop esi
pop edi
pop ebp
ret
fstp qword [esp + 0x48]
mov ecx, ebx
call dword [0x5a40fc]
fld qword [eax + 0x10]
mov ecx, dword [ebp + 8]
fld qword [esp + 0x48]
fsub st(1)
fxch st(1)
test ecx, ecx
fsubr qword [ebx + 0x10]
fdivp st(1)
je 0x449e20
cmp ecx, 1
jne 0x449970
add eax, 0x18
fstp qword [esp + 0x50]
add ebx, 0x18
mov dword [esp], eax
lea ecx, [esp + 0xa0]
mov esi, dword [0x5a44ac]
call esi
sub esp, 4
mov dword [esp], ebx
lea ecx, [esp + 0xb0]
call esi
sub esp, 4
mov ebx, dword [0x5a4498]
lea ecx, [esp + 0xb0]
call ebx
lea ecx, [esp + 0xa0]
fstp qword [esp + 0x48]
call ebx
fld qword [esp + 0x48]
fsubrp st(1)
fld dword [0x4f2800]
fxch st(1)
fucomi st(1)
fstp st(1)
fld qword [esp + 0x50]
ja 0x44a234
fld dword [0x4f2814]
fxch st(2)
lea ecx, [esp + 0xa0]
fst qword [esp + 0x50]
fxch st(1)
fstp qword [esp + 0x48]
fxch st(1)
fucompi st(1)
fstp st(0)
ja 0x44a151
call ebx
fld qword [esp + 0x48]
fld qword [esp + 0x50]
fmul st(1)
faddp st(2)
fldz
fucompi st(2)
ja 0x44a175
fld1
fxch st(2)
fucomi st(2)
jb 0x449a70
fsubrp st(2)
jmp 0x449a72
fstp st(2)
fld1
cmp byte [esp + 0x3b], 0
mov eax, dword [esp + 0x34]
fld st(1)
lea ebx, [eax*4]
fsubr st(1)
fstp qword [esp + 0x48]
je 0x44a184
fstp dword [esp + 0x70]
mov esi, dword [0x5a44b4]
lea ecx, [esp + 0xa0]
fstp qword [esp + 0x58]
fstp qword [esp + 0x68]
call esi
fmul qword [esp + 0x48]
lea ecx, [esp + 0xb0]
fstp qword [esp + 0x50]
call esi
mov esi, dword [0x5a4488]
lea ecx, [esp + 0xa0]
fld qword [esp + 0x58]
fmul st(1), st(0)
fstp qword [esp + 0x60]
fadd qword [esp + 0x50]
fstp qword [esp + 0x58]
call esi
fmul qword [esp + 0x48]
lea ecx, [esp + 0xb0]
fstp qword [esp + 0x50]
call esi
fld dword [esp + 0x70]
lea esi, [esp + 0xc0]
fstp qword [esp + 0x1c]
mov dword [esp], esi
fld qword [esp + 0x58]
fstp qword [esp + 0x14]
fld qword [esp + 0x60]
fmul st(1), st(0)
fstp qword [esp + 0x58]
fadd qword [esp + 0x50]
fstp qword [esp + 0xc]
fld qword [esp + 0x68]
fstp qword [esp + 4]
call dword [0x5a42e0]
mov ecx, esi
call dword [0x5a4490]
lea ecx, [esp + 0xa0]
mov esi, eax
mov edi, dword [0x5a44b0]
call edi
fmul qword [esp + 0x48]
lea ecx, [esp + 0xb0]
fstp qword [esp + 0x48]
call edi
fld qword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
fmulp st(1)
fadd qword [esp + 0x48]
fstp qword [esp + 0x50]
call fcn.004c6d10
mov eax, dword [ebp + 0x24]
add ebx, eax
add ebx, dword [eax + 0xc]
mov eax, esi
movzx eax, al
fnstcw word [esp + 0x9e]
mov dword [esp + 0x48], eax
movzx eax, word [esp + 0x9e]
fild dword [esp + 0x48]
fld qword [esp + 0x50]
mov ah, 0xc
fmul st(1), st(0)
fxch st(1)
mov word [esp + 0x9c], ax
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov ecx, dword [esp + 0x98]
fld st(0)
movzx ecx, cl
fmul dword [0x4f29fc]
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov eax, dword [esp + 0x98]
shl eax, 0x18
or eax, ecx
mov ecx, esi
shr ecx, 0x10
movzx ecx, cl
mov dword [esp + 0x48], ecx
fild dword [esp + 0x48]
fmul st(1)
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov ecx, dword [esp + 0x98]
shl ecx, 0x10
and ecx, 0xff0000
or ecx, eax
mov eax, esi
movzx esi, ah
mov dword [esp + 0x48], esi
fild dword [esp + 0x48]
fmulp st(1)
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov eax, dword [esp + 0x98]
shl eax, 8
movzx eax, ax
or ecx, eax
mov dword [ebx], ecx
jmp 0x449972
fstp st(0)
jmp 0x449c70
fstp st(0)
lea esi, [esi]
lea edi, [edi]
cmp byte [esp + 0x3b], 0
mov eax, dword [esp + 0x34]
lea ebx, [eax*4]
je 0x449df0
call dword [0x5a40fc]
mov ecx, dword [eax + 0x18]
mov esi, dword [0x5a44a4]
mov dword [esp + 0xc0], ecx
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0xc4], ecx
mov ecx, dword [eax + 0x20]
mov dword [esp + 0xc8], ecx
movzx eax, word [eax + 0x24]
lea ecx, [esp + 0xc0]
mov word [esp + 0xcc], ax
call esi
mov dword [esp + 0x48], eax
lea ecx, [esp + 0xc0]
fild dword [esp + 0x48]
fdiv dword [0x4f29fc]
fstp qword [esp + 0x60]
call esi
lea ecx, [esp + 0xc0]
mov esi, eax
call dword [0x5a4494]
lea ecx, [esp + 0xc0]
mov dword [esp + 0x48], eax
shl esi, 0x18
call dword [0x5a44a8]
lea ecx, [esp + 0xc0]
mov dword [esp + 0x50], eax
call dword [0x5a448c]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x58], eax
call fcn.004c6d10
mov eax, dword [ebp + 0x24]
fild dword [esp + 0x48]
fld qword [esp + 0x60]
add ebx, eax
add ebx, dword [eax + 0xc]
fnstcw word [esp + 0x9e]
movzx eax, word [esp + 0x9e]
fmul st(1), st(0)
fxch st(1)
mov ah, 0xc
mov word [esp + 0x9c], ax
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov ecx, dword [esp + 0x98]
fild dword [esp + 0x58]
movzx ecx, cl
or ecx, esi
fmul st(1)
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov esi, dword [esp + 0x98]
fild dword [esp + 0x50]
shl esi, 0x10
mov eax, esi
mov esi, ecx
fmulp st(1)
and eax, 0xff0000
or esi, eax
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov eax, dword [esp + 0x98]
shl eax, 8
movzx eax, ax
or esi, eax
mov dword [ebx], esi
jmp 0x449972
mov ecx, dword [esp + 0x3c]
call fcn.004c6d10
mov eax, dword [ebp + 0x24]
mov ecx, ebx
add esi, dword [eax + 0xc]
add esi, eax
call dword [0x5a44a0]
mov dword [esi], eax
jmp 0x449972
call dword [0x5a40fc]
mov ecx, dword [esp + 0x3c]
mov esi, eax
call fcn.004c6d10
mov eax, dword [ebp + 0x24]
lea ecx, [esi + 0x18]
add ebx, dword [eax + 0xc]
add ebx, eax
call dword [0x5a44a0]
mov dword [ebx], eax
jmp 0x449972
fld st(0)
mov edx, dword [esp + 0x34]
add ebx, 0x18
lea esi, [eax + 0x18]
fsubr dword [0x4f27d0]
shl edx, 2
cmp byte [esp + 0x3b], 0
mov dword [esp + 0x50], edx
fstp qword [esp + 0x48]
je 0x44a014
fstp qword [esp + 0x68]
mov ecx, esi
mov edi, dword [0x5a44a4]
call edi
mov dword [esp + 0x58], eax
mov ecx, ebx
fild dword [esp + 0x58]
fmul qword [esp + 0x48]
fstp qword [esp + 0x58]
call edi
fnstcw word [esp + 0x9e]
mov dword [esp + 0x60], eax
mov ecx, esi
fild dword [esp + 0x60]
movzx eax, word [esp + 0x9e]
mov edi, dword [0x5a4494]
fld qword [esp + 0x68]
fmul st(1), st(0)
mov ah, 0xc
mov word [esp + 0x9c], ax
fstp qword [esp + 0x90]
fadd qword [esp + 0x58]
fldcw word [esp + 0x9c]
fistp dword [esp + 0x58]
fldcw word [esp + 0x9e]
fild dword [esp + 0x58]
fdiv dword [0x4f29fc]
fstp qword [esp + 0x88]
call edi
mov dword [esp + 0x60], eax
mov ecx, ebx
fild dword [esp + 0x60]
fmul qword [esp + 0x48]
fstp qword [esp + 0x60]
call edi
mov ecx, esi
mov edi, dword [0x5a44a8]
mov dword [esp + 0x68], eax
call edi
mov dword [esp + 0x70], eax
mov ecx, ebx
fild dword [esp + 0x70]
fld qword [esp + 0x48]
fmulp st(1)
fstp qword [esp + 0x70]
call edi
mov ecx, esi
mov dword [esp + 0x7c], eax
mov esi, dword [0x5a448c]
call esi
mov dword [esp + 0x80], eax
mov ecx, ebx
fild dword [esp + 0x80]
fld qword [esp + 0x48]
fmulp st(1)
fstp qword [esp + 0x48]
call esi
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x80], eax
call fcn.004c6d10
fild dword [esp + 0x68]
mov eax, dword [ebp + 0x24]
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
fld qword [esp + 0x90]
fmul st(1), st(0)
fxch st(1)
add ebx, eax
add ebx, dword [eax + 0xc]
fnstcw word [esp + 0x9e]
movzx eax, word [esp + 0x9e]
shl ecx, 0x18
fadd qword [esp + 0x60]
mov ah, 0xc
mov word [esp + 0x9c], ax
fld qword [esp + 0x88]
fmul st(1), st(0)
fxch st(1)
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov eax, dword [esp + 0x98]
fild dword [esp + 0x80]
movzx eax, al
or ecx, eax
fmul st(2)
fadd qword [esp + 0x48]
fmul st(1)
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov eax, dword [esp + 0x98]
fild dword [esp + 0x7c]
shl eax, 0x10
and eax, 0xff0000
fmulp st(2)
fxch st(1)
or eax, ecx
fadd qword [esp + 0x70]
fmulp st(1)
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov ecx, dword [esp + 0x98]
shl ecx, 8
movzx ecx, cx
or eax, ecx
mov dword [ebx], eax
jmp 0x449972
fstp qword [esp + 0x80]
mov ecx, esi
mov edi, dword [0x5a4494]
call edi
mov dword [esp + 0x58], eax
mov ecx, ebx
fild dword [esp + 0x58]
fmul qword [esp + 0x48]
fstp qword [esp + 0x58]
call edi
mov ecx, esi
mov edi, dword [0x5a44a8]
mov dword [esp + 0x60], eax
call edi
mov dword [esp + 0x68], eax
mov ecx, ebx
fild dword [esp + 0x68]
fld qword [esp + 0x48]
fmulp st(1)
fstp qword [esp + 0x68]
call edi
mov ecx, esi
mov dword [esp + 0x70], eax
mov esi, dword [0x5a448c]
call esi
mov dword [esp + 0x7c], eax
mov ecx, ebx
fild dword [esp + 0x7c]
fld qword [esp + 0x48]
fmulp st(1)
fstp qword [esp + 0x48]
call esi
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x7c], eax
call fcn.004c6d10
fild dword [esp + 0x60]
mov eax, dword [ebp + 0x24]
mov ecx, dword [esp + 0x50]
fld qword [esp + 0x80]
fmul st(1), st(0)
fxch st(1)
add ecx, eax
add ecx, dword [eax + 0xc]
fnstcw word [esp + 0x9e]
movzx eax, word [esp + 0x9e]
fadd qword [esp + 0x58]
mov ah, 0xc
mov word [esp + 0x9c], ax
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov eax, dword [esp + 0x98]
fild dword [esp + 0x7c]
movzx eax, al
or eax, 0xff000000
fmul st(1)
mov ebx, eax
fadd qword [esp + 0x48]
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov eax, dword [esp + 0x98]
fild dword [esp + 0x70]
shl eax, 0x10
and eax, 0xff0000
fmulp st(1)
or eax, ebx
fadd qword [esp + 0x68]
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
mov ebx, dword [esp + 0x98]
shl ebx, 8
movzx ebx, bx
or eax, ebx
mov dword [ecx], eax
jmp 0x449972
call ebx
fld qword [esp + 0x50]
fadd dword [0x4f27d0]
fld qword [esp + 0x48]
fmul st(1), st(0)
fxch st(1)
faddp st(2)
fldz
fucompi st(2)
jbe 0x449a64
fxch st(1)
jmp 0x44a177
fxch st(1)
fadd dword [0x4f27d0]
fxch st(1)
jmp 0x449a72
fstp dword [esp + 0x68]
mov esi, dword [0x5a44b4]
lea ecx, [esp + 0xa0]
fstp qword [esp + 0x58]
fstp qword [esp + 0x60]
call esi
fmul qword [esp + 0x48]
lea ecx, [esp + 0xb0]
fstp qword [esp + 0x50]
call esi
mov esi, dword [0x5a4488]
lea ecx, [esp + 0xa0]
fld qword [esp + 0x58]
fmulp st(1)
fadd qword [esp + 0x50]
fstp qword [esp + 0x50]
call esi
fmul qword [esp + 0x48]
lea ecx, [esp + 0xb0]
fstp qword [esp + 0x48]
call esi
fld dword [esp + 0x68]
lea esi, [esp + 0xc0]
fstp qword [esp + 0x1c]
mov dword [esp], esi
fld qword [esp + 0x50]
fstp qword [esp + 0x14]
fld qword [esp + 0x58]
fmulp st(1)
fadd qword [esp + 0x48]
fstp qword [esp + 0xc]
fld qword [esp + 0x60]
fstp qword [esp + 4]
call dword [0x5a42e0]
mov ecx, dword [esp + 0x3c]
call fcn.004c6d10
mov eax, dword [ebp + 0x24]
mov ecx, esi
add ebx, dword [eax + 0xc]
add ebx, eax
call dword [0x5a4490]
mov dword [ebx], eax
jmp 0x449972
fxch st(1)
fstp qword [esp + 0x50]
lea ecx, [esp + 0xa0]
fstp qword [esp + 0x48]
call ebx
fld qword [esp + 0x50]
fsubr dword [0x4f27d0]
fld qword [esp + 0x48]
fmul st(1), st(0)
fxch st(2)
fsubrp st(1)
fxch st(1)
jmp 0x449a5a