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

Disassembly:
sub esp, 0x7c
push ebx
push ebp
push esi
mov esi, dword [sym.imp.GDI32.dll_GetObjectW]
mov ebx, eax
xor eax, eax
push edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
lea eax, [esp + 0x38]
push eax
push 0x18
xor ebp, ebp
push ecx
mov dword [esp + 0x44], ebp
mov dword [esp + 0x5c], ebp
call esi
test eax, eax
je 0x45dd1b
mov eax, dword [esp + 0x94]
lea edx, [esp + 0x50]
push edx
push 0x18
push eax
call esi
test eax, eax
je 0x45dd1b
mov edi, dword [esp + 0x98]
cmp edi, ebx
jne 0x45db62
imul edi, dword [esp + 0x9c]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x64]
add edi, edi
add edi, edi
push edi
push ecx
push edx
call fcn.004ff740
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret 0x10
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 4]
push ebx
push ecx
mov eax, edi
lea esi, [esp + 0x30]
call fcn.0045d600
xor eax, eax
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x9c], ebp
jbe 0x45dd01
fldz
fld qword [0x54c8d8]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
imul edx, eax
lea ebp, [ecx + edx*4]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x64]
imul edx, eax
lea ebx, [ecx + edx*4]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x14], ebx
test edi, edi
jbe 0x45dceb
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x98]
add edi, 8
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edx
mov eax, dword [edi - 4]
fld st(1)
mov edx, dword [edi]
fst qword [esp + 0x68]
cmp eax, edx
fld st(2)
fst qword [esp + 0x70]
fld st(3)
fst qword [esp + 0x78]
fld st(4)
fst qword [esp + 0x80]
jg 0x45dc8d
mov esi, dword [edi - 8]
lea ecx, [ebp + 1]
mov edi, ebp
mov ebx, ebp
sub ebp, ecx
sub ebx, ecx
sub edi, ecx
lea eax, [ecx + eax*4]
lea ecx, [ebp + 3]
mov ebp, dword [esp + 0x10]
sub edx, dword [ebp - 4]
add ebx, 2
inc edx
movzx ebp, byte [edi + eax]
fld qword [esi]
mov dword [esp + 0x20], ebp
movzx ebp, byte [eax]
fild dword [esp + 0x20]
mov dword [esp + 0x20], ebp
movzx ebp, byte [ebx + eax]
fmul st(1)
add esi, 8
faddp st(5)
add eax, 4
sub edx, 1
fild dword [esp + 0x20]
mov dword [esp + 0x20], ebp
movzx ebp, byte [ecx + eax - 4]
fmul st(1)
faddp st(4)
fild dword [esp + 0x20]
mov dword [esp + 0x20], ebp
fmul st(1)
faddp st(3)
fild dword [esp + 0x20]
fmulp st(1)
faddp st(1)
jne 0x45dc1f
mov ebx, dword [esp + 0x14]
fstp qword [esp + 0x80]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
fstp qword [esp + 0x78]
fstp qword [esp + 0x70]
fstp qword [esp + 0x68]
jmp 0x45dc95
fstp st(3)
fstp st(1)
fstp st(0)
fstp st(0)
xor esi, esi
fld qword [esp + esi*8 + 0x68]
fadd st(1)
call fcn.0051f3e0
test eax, eax
jl 0x45dcad
cmp eax, 0xff
jge 0x45dcb9
xor ecx, ecx
test eax, eax
setl cl
dec ecx
and ecx, eax
jmp 0x45dcbe
mov ecx, 0xff
mov byte [esi + ebx], cl
inc esi
cmp esi, 4
jb 0x45dc97
add ebx, 4
add edi, 0xc
sub dword [esp + 0x18], 1
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
jne 0x45dbd6
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x98]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x9c]
jb 0x45db94
fstp st(1)
fstp st(0)
mov eax, dword [esp + 0x28]
push eax
call fcn.004faac5
mov ecx, dword [esp + 0x38]
add esp, 4
push ecx
call fcn.004faac5
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret 0x10