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

Disassembly:
sub esp, 0xf8
fldz
push ebx
push ebp
mov ebp, dword [esp + 0x104]
mov ecx, dword [ebp + 8]
push esi
mov esi, eax
mov eax, dword [ebp + 4]
push edi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ecx
call fcn.004703e0
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fmul qword [esp + 0x110]
fdiv qword [0x482040]
fst qword [esp + 0x98]
call fcn.00470660
fstp dword [esp + 0x68]
fld qword [esp + 0x98]
call fcn.00470530
fstp dword [esp + 0x60]
fild dword [esp + 0x5c]
fld qword [0x482038]
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fst dword [esp + 0x10]
fild dword [esp + 0x58]
fsub st(2)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fst dword [esp + 0x94]
fstp dword [esp + 0x54]
fstp dword [esp + 0x50]
fld dword [esp + 0x60]
fst qword [esp + 0xc0]
fld st(0)
fld qword [0x482030]
fmul st(1), st(0)
fld dword [esp + 0x68]
fst qword [esp + 0x98]
fld st(0)
fmulp st(2)
fld st(2)
fsub st(2)
fstp dword [esp + 0x70]
fld st(1)
fadd st(3)
fstp dword [esp + 0x74]
fld dword [esp + 0x10]
fld st(0)
fmul st(5)
fsub st(3)
fstp dword [esp + 0x78]
fmul st(1)
fadd st(3)
fstp dword [esp + 0x7c]
fld dword [esp + 0x94]
fld st(0)
fmul st(2)
fsubp st(4)
fxch st(3)
fstp dword [esp + 0x80]
fxch st(2)
fmul st(3)
faddp st(1)
fstp dword [esp + 0x84]
fld dword [esp + 0x50]
fld dword [esp + 0x54]
fld st(1)
fmul st(4)
fld st(1)
fmul st(4)
fsubp st(1)
fstp dword [esp + 0x88]
fxch st(1)
fmulp st(2)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x8c]
fld dword [esp + 0x80]
fld st(0)
fld dword [esp + 0x88]
fld st(0)
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x4447ac
fxch st(3)
fst dword [esp + 0x20]
jmp 0x4447b6
fxch st(1)
fst dword [esp + 0x20]
fxch st(1)
fxch st(3)
fld dword [esp + 0x70]
fld st(0)
fst qword [esp + 0x10]
fld dword [esp + 0x78]
fst qword [esp + 0x50]
fcompp
fnstsw ax
test ah, 0x41
je 0x4447d7
fstp st(0)
fld dword [esp + 0x78]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld dword [esp + 0x20]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x4447f2
fstp st(0)
fld dword [esp + 0x20]
fstp dword [esp + 0x24]
fld dword [esp + 0x84]
fld st(0)
fst qword [esp + 0x28]
fld dword [esp + 0x8c]
fst qword [esp + 0x90]
fcompp
fnstsw ax
test ah, 0x41
je 0x444823
fstp st(0)
fld dword [esp + 0x8c]
fstp dword [esp + 0x20]
fld dword [esp + 0x74]
fld st(0)
fst qword [esp + 0x68]
fld dword [esp + 0x7c]
fst qword [esp + 0x60]
fcompp
fnstsw ax
test ah, 0x41
je 0x444848
fstp st(0)
fld dword [esp + 0x7c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld dword [esp + 0x20]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x444863
fstp st(0)
fld dword [esp + 0x20]
fstp dword [esp + 0x18]
fxch st(2)
fcomp st(3)
fnstsw ax
fstp st(2)
test ah, 0x41
jne 0x444878
fstp st(1)
jmp 0x44487a
fstp st(0)
fstp dword [esp + 0x34]
fld qword [esp + 0x50]
fcomp qword [esp + 0x10]
fnstsw ax
test ah, 5
jp 0x444893
fld dword [esp + 0x70]
jmp 0x444897
fld dword [esp + 0x78]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld dword [esp + 0x34]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x4448b0
fstp st(0)
jmp 0x4448b2
fstp st(1)
fstp dword [esp + 0x20]
fld qword [esp + 0x90]
fcomp qword [esp + 0x28]
fnstsw ax
test ah, 5
jp 0x4448d1
fld dword [esp + 0x84]
jmp 0x4448d8
fld dword [esp + 0x8c]
fstp dword [esp + 0x34]
fld qword [esp + 0x60]
fcomp qword [esp + 0x68]
fnstsw ax
test ah, 5
jp 0x4448f1
fld dword [esp + 0x74]
jmp 0x4448f5
fld dword [esp + 0x7c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld dword [esp + 0x34]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x44490e
fstp st(0)
jmp 0x444910
fstp st(1)
fstp dword [esp + 0x1c]
sub esp, 8
fld dword [esp + 0x28]
fst qword [esp + 0x18]
fld dword [esp + 0x2c]
fst qword [esp + 0x58]
fsubp st(1)
faddp st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp qword [esp]
call fcn.00470270
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
call fcn.004701c0
fld dword [esp + 0x24]
fst qword [esp + 0x40]
mov ebx, eax
fld dword [esp + 0x20]
mov dword [esp + 0x70], ebx
fst qword [esp + 0x68]
fsubp st(1)
fadd qword [0x482038]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp qword [esp]
call fcn.00470270
fstp dword [esp + 0x30]
add esp, 8
fld dword [esp + 0x28]
call fcn.004701c0
fld qword [esp + 0x50]
mov edi, eax
fadd qword [esp + 0x10]
fild dword [esp + 0x68]
mov eax, ebx
sub eax, dword [esp + 0x5c]
mov dword [esp + 0x28], edi
cdq
fsub qword [0x482010]
sub eax, edx
sar eax, 1
neg eax
fsubp st(1)
add dword [esi], eax
mov eax, dword [esi]
fmul qword [0x482038]
add eax, ebx
mov dword [esi + 8], eax
mov eax, edi
sub eax, dword [esp + 0x58]
fstp dword [esp + 0x90]
cdq
sub eax, edx
sar eax, 1
neg eax
add dword [esi + 4], eax
mov eax, dword [esi + 4]
add eax, edi
lea edx, [esp + 0x70]
push edx
mov dword [esi + 0xc], eax
mov eax, dword [ebp]
push 0x18
push eax
lea esi, [ebx*4]
call dword [sym.imp.GDI32.dll_GetObjectW]
mov ebp, dword [esp + 0x84]
push 0x2c
lea ecx, [esp + 0xe0]
push 0
push ecx
call fcn.0045e940
add esp, 0xc
xor eax, eax
mov dword [esp + 0xdc], 0x28
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], edi
mov word [esp + 0xe8], 1
mov word [esp + 0xea], 0x20
mov dword [esp + 0xec], eax
push eax
imul esi, edi
push eax
lea edx, [esp + 0x2c]
push edx
push eax
lea ecx, [esp + 0xec]
push ecx
push eax
mov dword [esp + 0x108], esi
mov dword [esp + 0x3c], eax
call dword [sym.imp.GDI32.dll_CreateDIBSection]
test edi, edi
fld qword [esp + 0x60]
mov dword [esp + 0x50], eax
fadd qword [esp + 0x38]
fild dword [esp + 0x28]
fld1
fsub st(1), st(0)
fxch st(2)
fsubrp st(1)
fmul qword [0x482038]
fstp dword [esp + 0x1c]
jle 0x444ef8
fld qword [esp + 0x98]
mov dword [esp + 0x34], 0
fld qword [esp + 0xc0]
mov dword [esp + 0x28], edi
test ebx, ebx
fld dword [esp + 0x90]
fstp dword [esp + 0x38]
jle 0x444ed0
fld dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
fld st(0)
mov dword [esp + 0x20], edi
fmul st(3)
mov dword [esp + 0x60], ebx
fstp qword [esp + 0xc8]
fmul st(1)
fstp qword [esp + 0xd0]
fld dword [esp + 0x38]
fld st(0)
fmul st(2)
fadd qword [esp + 0xc8]
fstp dword [esp + 0x38]
fld st(0)
fmul st(3)
fsubr qword [esp + 0xd0]
fstp dword [esp + 0x10]
fld dword [esp + 0x38]
fld st(0)
call fcn.004701c0
fldz
fcomp st(1)
mov esi, eax
mov dword [esp + 0x18], eax
fnstsw ax
test ah, 0x41
jne 0x444b29
sub esi, 1
mov dword [esp + 0x18], esi
fld dword [esp + 0x10]
fld st(0)
call fcn.004701c0
fldz
fcomp st(1)
mov ecx, eax
mov dword [esp + 0x38], eax
fnstsw ax
test ah, 0x41
jne 0x444b4c
sub ecx, 1
mov dword [esp + 0x38], ecx
cmp esi, 0xffffffff
jl 0x444e8d
mov edi, dword [esp + 0x5c]
cmp esi, edi
jge 0x444e89
cmp ecx, 0xffffffff
jl 0x444e89
cmp ecx, dword [esp + 0x58]
jge 0x444e89
fstp st(3)
mov dword [esp + 0xa4], ecx
fstp st(3)
mov dword [esp + 0xac], ecx
fild dword [esp + 0x18]
add ecx, 1
lea eax, [esi + 1]
mov dword [esp + 0xb4], ecx
fsubp st(3)
mov dword [esp + 0xbc], ecx
fxch st(2)
mov dword [esp + 0xa8], eax
mov dword [esp + 0xb8], eax
fstp dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0xa0], esi
fisub dword [esp + 0x38]
mov dword [esp + 0xb0], esi
xor eax, eax
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld dword [esp + 0x18]
fld st(0)
fmul st(2)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(1)
fsub st(1)
fstp dword [esp + 0x38]
fsub st(2), st(0)
fxch st(2)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(4)
fsubrp st(2)
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x10]
jmp 0x444c0a
mov edi, dword [esp + 0x5c]
xor ecx, ecx
cmp dword [esp + eax*8 + 0xa0], ecx
mov dl, 1
jge 0x444c1e
xor dl, dl
mov dword [esp + eax*8 + 0xa0], ecx
cmp dword [esp + eax*8 + 0xa0], edi
jl 0x444c33
lea esi, [edi - 1]
xor dl, dl
mov dword [esp + eax*8 + 0xa0], esi
cmp dword [esp + eax*8 + 0xa4], ecx
jge 0x444c45
xor dl, dl
mov dword [esp + eax*8 + 0xa4], ecx
mov ecx, dword [esp + 0x58]
cmp dword [esp + eax*8 + 0xa4], ecx
jl 0x444c5e
xor dl, dl
add ecx, 0xffffffff
mov dword [esp + eax*8 + 0xa4], ecx
mov esi, dword [esp + eax*8 + 0xa4]
lea ecx, [edi*4]
imul esi, ecx
test dl, dl
mov ecx, dword [esp + eax*8 + 0xa0]
lea ecx, [esi + ecx*4]
movzx ebx, byte [ecx + ebp]
mov byte [esp + eax*4 + 0x40], bl
movzx ebx, byte [ecx + ebp + 1]
mov byte [esp + eax*4 + 0x41], bl
movzx ebx, byte [ecx + ebp + 2]
mov byte [esp + eax*4 + 0x42], bl
je 0x444ca1
mov dl, byte [ecx + ebp + 3]
mov byte [esp + eax*4 + 0x43], dl
jmp 0x444ca6
mov byte [esp + eax*4 + 0x43], 0
add eax, 1
cmp eax, 4
jl 0x444c04
fld dword [esp + 0x10]
movzx eax, byte [esp + 0x43]
fld dword [esp + 0x38]
movzx ecx, byte [esp + 0x4b]
fnstcw word [esp + 0x18]
movzx edx, byte [esp + 0x47]
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x4f]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul st(2)
mov ecx, dword [esp + 0x20]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmul st(4)
faddp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
movzx eax, word [esp + 0x18]
or eax, 0xc00
fmul st(2)
faddp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
fmul st(5)
faddp st(1)
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
movzx edx, byte [esp + 0x10]
mov byte [ecx + eax + 3], dl
movzx edx, byte [esp + 0x40]
fldcw word [esp + 0x18]
movzx eax, byte [esp + 0x48]
mov dword [esp + 0x10], edx
movzx edx, byte [esp + 0x44]
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fnstcw word [esp + 0x18]
movzx eax, byte [esp + 0x4c]
fmul st(2)
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmul st(4)
faddp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
movzx eax, word [esp + 0x18]
or eax, 0xc00
fmul st(2)
faddp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
fmul st(5)
faddp st(1)
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
movzx edx, byte [esp + 0x10]
mov byte [ecx + eax], dl
movzx edx, byte [esp + 0x41]
fldcw word [esp + 0x18]
movzx eax, byte [esp + 0x49]
mov dword [esp + 0x10], edx
movzx edx, byte [esp + 0x45]
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fnstcw word [esp + 0x18]
movzx eax, byte [esp + 0x4d]
fmul st(2)
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmul st(4)
faddp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fmul st(2)
faddp st(1)
fild dword [esp + 0x10]
fmul st(5)
faddp st(1)
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
fldcw word [esp + 0x10]
mov ebx, dword [esp + 0x68]
mov edi, ecx
fistp dword [esp + 0x10]
movzx edx, byte [esp + 0x10]
mov byte [ecx + eax + 1], dl
movzx edx, byte [esp + 0x42]
fldcw word [esp + 0x18]
movzx eax, byte [esp + 0x4a]
mov dword [esp + 0x10], edx
movzx edx, byte [esp + 0x46]
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fnstcw word [esp + 0x18]
movzx eax, byte [esp + 0x4e]
fmulp st(2)
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmulp st(3)
fxch st(1)
faddp st(2)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
movzx eax, word [esp + 0x18]
or eax, 0xc00
fmulp st(1)
faddp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
fmulp st(2)
faddp st(1)
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
movzx edx, byte [esp + 0x10]
mov byte [ecx + eax + 2], dl
fldcw word [esp + 0x18]
fld qword [esp + 0xc0]
fld qword [esp + 0x98]
jmp 0x444eb6
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
fstp st(1)
mov byte [edi + ecx], 0
fstp st(0)
mov edx, dword [esp + 0x24]
fxch st(2)
mov byte [edi + edx + 1], 0
mov eax, dword [esp + 0x24]
mov byte [edi + eax + 2], 0
mov ecx, dword [esp + 0x24]
mov byte [edi + ecx + 3], 0
fxch st(2)
add edi, 4
sub dword [esp + 0x60], 1
fadd st(3)
mov dword [esp + 0x20], edi
fstp dword [esp + 0x38]
jne 0x444ae4
fld dword [esp + 0x1c]
lea eax, [ebx*4]
add dword [esp + 0x34], eax
fadd st(3)
sub dword [esp + 0x28], 1
fstp dword [esp + 0x1c]
jne 0x444aad
mov eax, dword [esp + 0x50]
fstp st(2)
fstp st(1)
pop edi
fstp st(0)
pop esi
pop ebp
pop ebx
add esp, 0xf8
ret