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

Disassembly:
sub esp, 0x90
fild dword [esp + 0x98]
mov eax, dword [esp + 0xac]
push ebx
push ebp
fstp dword [esp + 0x1c]
push esi
fld dword [esp + 0x20]
push edi
fld qword [0x4449a0]
mov edi, ecx
fmul st(1), st(0)
mov ecx, eax
fxch st(1)
shr ecx, 0x10
shr eax, 8
fstp dword [esp + 0x48]
mov esi, edx
fild dword [esp + 0xac]
mov byte [esp + 0x36], cl
mov byte [esp + 0x37], al
fstp dword [esp + 0x20]
fmul dword [esp + 0x20]
fstp dword [esp + 0x18]
fld dword [esp + 0xb0]
call fcn.0043dd00
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fstp dword [esp + 0x40]
fld dword [esp + 0xb0]
call fcn.0043dbd0
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x48]
fld st(0)
fchs
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld dword [esp + 0x40]
fld st(0)
fmulp st(2)
fld st(2)
faddp st(2)
fld dword [esp + 0x18]
fld st(0)
fchs
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld dword [esp + 0x3c]
fld st(0)
fmulp st(2)
fld st(4)
fsub st(2)
fstp dword [esp + 0x4c]
fld dword [esp + 0x24]
fsub st(6)
fld st(4)
fmul st(1)
faddp st(7)
fld st(6)
fsubrp st(3)
fxch st(2)
fstp dword [esp + 0x38]
fld dword [esp + 0x20]
fsub st(3)
fld st(1)
fmul st(1)
fsub st(7), st(0)
fxch st(7)
fstp dword [esp + 0x20]
fxch st(5)
fsubrp st(6)
fxch st(5)
fstp dword [esp + 0x28]
fld dword [esp + 0x1c]
fmul st(3)
fadd st(2)
fld dword [esp + 0x14]
fmul st(6)
fld st(0)
fadd st(2)
fstp dword [esp + 0x44]
fxch st(4)
fmulp st(5)
fxch st(4)
faddp st(2)
fld st(1)
faddp st(3)
fxch st(2)
fstp dword [esp + 0x30]
fxch st(3)
fmulp st(1)
fld st(0)
faddp st(3)
fxch st(2)
fstp dword [esp + 0x24]
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x4c]
fld dword [esp + 0x38]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x4397c6
fstp st(0)
fld dword [esp + 0x20]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x4397c2
fstp st(1)
fld dword [esp + 0x28]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x4397ca
fstp st(1)
jmp 0x4397cc
fstp st(0)
jmp 0x4397b1
fstp st(1)
jmp 0x4397a2
fstp st(0)
fstp dword [esp + 0x14]
sub esp, 8
fld dword [esp + 0x1c]
fstp qword [esp]
call fcn.0043da60
fstp dword [esp + 0x1c]
add esp, 8
fld dword [esp + 0x14]
call fcn.0043d9b0
fld dword [esp + 0x44]
fld dword [esp + 0x30]
mov ebp, eax
fcom st(1)
mov dword [esp + 0x50], ebp
fnstsw ax
test ah, 0x41
jne 0x43982c
fstp st(0)
fld dword [esp + 0x24]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x439828
fstp st(1)
fld dword [esp + 0x1c]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x439830
fstp st(1)
jmp 0x439832
fstp st(0)
jmp 0x439817
fstp st(1)
jmp 0x439808
fstp st(0)
fstp dword [esp + 0x14]
sub esp, 8
fld dword [esp + 0x1c]
fstp qword [esp]
call fcn.0043da60
fstp dword [esp + 0x1c]
add esp, 8
fld dword [esp + 0x14]
call fcn.0043d9b0
fld dword [esp + 0x4c]
fld dword [esp + 0x38]
mov ebx, eax
fcom st(1)
mov dword [esp + 0x54], ebx
fnstsw ax
test ah, 5
jp 0x439892
fstp st(0)
fld dword [esp + 0x20]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x43988e
fstp st(1)
fld dword [esp + 0x28]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x439896
fstp st(1)
jmp 0x439898
fstp st(0)
jmp 0x43987d
fstp st(1)
jmp 0x43986e
fstp st(0)
fstp dword [esp + 0x28]
sub esp, 8
fld dword [esp + 0x30]
fstp qword [esp]
call fcn.00409410
fstp dword [esp + 0x40]
add esp, 8
fld dword [esp + 0x38]
call fcn.0043d9b0
fld dword [esp + 0x44]
fld dword [esp + 0x30]
sub eax, ebp
mov ebp, dword [esp + 0xb8]
fcom st(1)
mov dword [ebp], eax
fnstsw ax
test ah, 5
jp 0x4398fe
fstp st(0)
fld dword [esp + 0x24]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x4398fa
fstp st(1)
fld dword [esp + 0x1c]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x439902
fstp st(1)
jmp 0x439904
fstp st(0)
jmp 0x4398e9
fstp st(1)
jmp 0x4398da
fstp st(0)
fstp dword [esp + 0x1c]
sub esp, 8
fld dword [esp + 0x24]
fstp qword [esp]
call fcn.00409410
fstp dword [esp + 0x38]
add esp, 8
fld dword [esp + 0x30]
call fcn.0043d9b0
sub eax, ebx
push esi
mov dword [edi], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ebx, dword [esp + 0xb4]
mov edx, dword [edi]
mov dword [ebx], eax
mov eax, dword [ebp]
push edx
push eax
push esi
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov ecx, dword [ebx]
push eax
push ecx
mov dword [esp + 0x38], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [ebp]
xor eax, eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov eax, dword [edi]
push 5
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], eax
call dword [sym.imp.USER32.dll_GetSysColorBrush]
mov edx, dword [ebx]
push eax
lea ecx, [esp + 0x5c]
push ecx
push edx
call dword [sym.imp.USER32.dll_FillRect]
mov eax, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0xac]
push esi
mov esi, dword [esp + 0xb4]
call fcn.00439550
mov ecx, dword [esp + 0x38]
mov edx, dword [ebx]
mov esi, dword [edi]
push ecx
mov dword [esp + 0x50], eax
mov eax, dword [ebp]
push edx
call fcn.00439550
fld dword [esp + 0x4c]
mov ecx, dword [edi]
fld st(0)
fld dword [esp + 0x50]
mov esi, eax
fld st(0)
add esp, 0x10
fld st(2)
mov dword [esp + 0x4c], esi
fmulp st(3)
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], 0
mov dword [esp + 0x3c], ecx
fmul st(0), st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x40]
test ecx, ecx
jle 0x439cc8
mov eax, dword [ebp]
fld dword [esp + 0x48]
fld dword [esp + 0x18]
add eax, eax
add eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ecx
xor edi, edi
mov dword [esp + 0x18], edi
cmp dword [ebp], edi
jle 0x439c12
fild dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
lea esi, [eax + ecx - 4]
fiadd dword [esp + 0x54]
fld st(4)
fld1
fsub st(1), st(0)
fld st(3)
fmulp st(2)
fxch st(1)
fadd st(2)
fmul st(6)
fld st(5)
fsubrp st(2)
fld st(4)
fmulp st(2)
fxch st(1)
fstp qword [esp + 0x28]
fld st(2)
fsub st(4)
fmul st(6)
fld st(3)
fsubp st(3)
faddp st(2)
fld st(4)
fmulp st(2)
fxch st(1)
fstp qword [esp + 0x68]
fild dword [esp + 0x50]
fstp dword [esp + 0x48]
fild dword [esp + 0x18]
fadd dword [esp + 0x48]
fld qword [esp + 0x28]
fadd st(1)
fmul st(5)
fadd st(2)
fdiv dword [esp + 0x40]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
call fcn.0043d9b0
fsubr st(3)
mov ebx, eax
fmul st(5)
fadd st(2)
fadd qword [esp + 0x68]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
call fcn.0043d9b0
test ebx, ebx
js 0x439be3
test eax, eax
js 0x439be3
mov ecx, dword [esp + 0xa8]
cmp ebx, ecx
jge 0x439be3
cmp eax, dword [esp + 0xac]
jge 0x439be3
mov edx, dword [esp + 0x44]
imul eax, ecx
add eax, ebx
mov cl, byte [edx + eax*4 + 1]
mov bl, byte [edx + eax*4]
lea eax, [edx + eax*4]
mov dl, byte [eax + 2]
cmp dl, cl
jne 0x439bdd
cmp cl, bl
jne 0x439bdd
test dl, dl
je 0x439bdd
test cl, cl
je 0x439bdd
test bl, bl
je 0x439bdd
movzx eax, bl
fnstcw word [esp + 0x14]
mov dword [esp + 0x18], eax
movzx eax, byte [esp + 0xbc]
fild dword [esp + 0x18]
fld qword [0x444a08]
mov dword [esp + 0x18], eax
movzx eax, word [esp + 0x14]
fdiv st(1), st(0)
or eax, 0xc00
movzx ecx, cl
movzx edx, dl
fild dword [esp + 0x18]
mov dword [esp + 0x18], eax
fmulp st(2)
fldcw word [esp + 0x18]
fxch st(1)
fistp dword [esp + 0x18]
mov al, byte [esp + 0x18]
mov dword [esp + 0x18], ecx
mov byte [esi], al
fldcw word [esp + 0x14]
movzx eax, byte [esp + 0x37]
fild dword [esp + 0x18]
fnstcw word [esp + 0x14]
mov dword [esp + 0x18], eax
fdiv st(1)
movzx eax, word [esp + 0x14]
or eax, 0xc00
fild dword [esp + 0x18]
mov dword [esp + 0x18], eax
movzx eax, byte [esp + 0x36]
fmulp st(1)
fldcw word [esp + 0x18]
fistp dword [esp + 0x18]
movzx ecx, byte [esp + 0x18]
mov dword [esp + 0x18], edx
mov byte [esi + 1], cl
fldcw word [esp + 0x14]
fild dword [esp + 0x18]
fnstcw word [esp + 0x14]
mov dword [esp + 0x18], eax
fdivrp st(1)
movzx eax, word [esp + 0x14]
or eax, 0xc00
fild dword [esp + 0x18]
mov dword [esp + 0x18], eax
fmulp st(1)
fldcw word [esp + 0x18]
fistp dword [esp + 0x18]
movzx ecx, byte [esp + 0x18]
mov byte [esi + 2], cl
fldcw word [esp + 0x14]
jmp 0x439bec
mov edx, dword [eax]
mov dword [esi], edx
jmp 0x439bec
mov word [esi], 0
mov byte [esi + 2], 0
inc edi
sub esi, 4
mov dword [esp + 0x18], edi
cmp edi, dword [ebp]
jl 0x439a66
mov ebx, dword [esp + 0xb4]
fstp st(0)
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x20]
add dword [esp + 0x24], eax
inc edx
mov dword [esp + 0x20], edx
cmp edx, dword [esp + 0x1c]
jl 0x439a0b
fstp st(3)
fstp st(2)
fstp st(0)
mov eax, dword [ebp]
fstp st(0)
mov edi, dword [esp + 0x30]
mov dword [esp + 0x78], eax
imul eax, ecx
mov edx, 1
mov word [esp + 0x80], dx
add eax, eax
mov edx, 0x20
add eax, eax
mov word [esp + 0x82], dx
xor edx, edx
push edx
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x78]
push eax
push esi
push ecx
push edx
mov dword [esp + 0x90], ecx
mov ecx, dword [ebx]
push edi
push ecx
mov dword [esp + 0x90], 0x28
mov dword [esp + 0xa0], edx
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], edx
call dword [sym.imp.GDI32.dll_SetDIBits]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [esp + 0x44]
push edx
call fcn.0040952d
add esp, 4
push esi
call fcn.0040952d
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret
fstp st(1)
jmp 0x439c2f