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

Disassembly:
push 0xffffffffffffffff
push 0x529e50
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x38
push ebp
lea ecx, [esp + 0x2c]
call fcn.0051483c
xor ecx, ecx
mov dword [esp + 0x24], vtable.CBitmap.0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x64]
cmp eax, ecx
mov eax, dword [esp + 0x68]
mov byte [esp + 0x44], 1
mov dword [esp + 4], ebp
lea eax, [eax + eax*8]
je 0x45d409
mov edx, dword [eax*4 + 0x641514]
jmp 0x45d410
mov edx, dword [eax*4 + 0x641510]
mov eax, edx
mov dword [esp + 0x68], edx
cmp eax, ecx
jne 0x45d451
mov dword [esp + 0x24], vtable.CGdiObject.0
lea ecx, [esp + 0x24]
mov byte [esp + 0x44], 2
call fcn.005152fb
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], 0xffffffff
call fcn.00514971
pop ebp
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
add esp, 0x44
ret
push ebx
mov ebx, dword [esp + 0x50]
push esi
cmp ebx, ecx
push edi
jne 0x45d460
xor eax, eax
jmp 0x45d463
mov eax, dword [ebx + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x3c]
call fcn.005148f3
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x78]
lea eax, [esp + 0x30]
lea ecx, [esp + 0x2c]
push eax
push ecx
push esi
lea edx, [esp + 0x44]
push edi
push edx
call fcn.0045d290
add esp, 0x14
mov dword [esp + 0x28], eax
test eax, eax
je 0x45d6cb
test ebp, ebp
jne 0x45d4d1
test ebx, ebx
jne 0x45d4ad
xor eax, eax
jmp 0x45d4b0
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
push 0xcc0020
push ecx
push edx
push eax
mov eax, dword [esp + 0x4c]
push esi
push edi
push 0
push 0
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
test esi, esi
mov dword [esp + 0x6c], 0
jle 0x45d68b
mov eax, edi
lea ecx, [esi*4 - 4]
neg eax
shl eax, 2
imul ecx, edi
mov edx, dword [esp + 0x74]
mov dword [esp + 0x24], eax
lea ebp, [ecx + edx + 3]
mov dword [esp + 0x18], ebp
test edi, edi
mov dword [esp + 0x14], 0
jle 0x45d670
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x45d533
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
push eax
push ecx
push edx
call dword [sym.imp.GDI32.dll_GetPixel]
mov dword [esp + 0x10], eax
mov al, byte [ebp]
or cl, 0xff
sub cl, al
mov esi, eax
mov byte [esp + 0x1c], cl
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov eax, 0x80808081
shr ecx, 0x10
and edi, 0xff
and ecx, 0xff
imul ecx, edi
imul ecx
add edx, ecx
xor ecx, ecx
mov cl, byte [ebp - 3]
and esi, 0xff
imul ecx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x80808081
mov ebx, edx
imul ecx
add edx, ecx
mov eax, 0x80808081
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
xor ecx, ecx
mov cl, byte [esp + 0x11]
add bl, dl
and ecx, 0xff
imul ecx, edi
imul ecx
add edx, ecx
xor ecx, ecx
mov cl, byte [ebp - 2]
imul ecx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x80808081
mov byte [esp + 0x74], dl
imul ecx
add edx, ecx
mov al, byte [esp + 0x74]
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
xor ecx, ecx
mov cl, byte [ebp - 1]
add al, dl
imul ecx, esi
mov byte [esp + 0x74], al
mov eax, 0x80808081
mov esi, dword [esp + 0x10]
imul ecx
and esi, 0xff
add edx, ecx
imul esi, edi
sar edx, 7
mov ecx, edx
mov eax, 0x80808081
shr ecx, 0x1f
add edx, ecx
mov ecx, edx
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
add cl, dl
mov byte [esp + 0x20], cl
xor ecx, ecx
mov ch, bl
mov cl, byte [esp + 0x74]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x14]
shl ecx, 8
and edx, 0xff
or ecx, edx
push ecx
mov ecx, dword [esp + 0x40]
push eax
push esi
push ecx
call dword [sym.imp.GDI32.dll_SetPixel]
mov eax, dword [esp + 0x78]
inc esi
add ebp, 4
cmp esi, eax
mov dword [esp + 0x14], esi
jl 0x45d512
mov ebx, dword [esp + 0x58]
mov esi, dword [esp + 0x7c]
mov edi, eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x18]
inc ecx
add ebp, eax
cmp ecx, esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x18], ebp
jl 0x45d502
mov edx, dword [ebx + 4]
push 3
push edx
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
push 0xcc0020
push 0
push 0
push eax
mov eax, dword [ebx + 4]
push esi
push edi
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
push ecx
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x30], vtable.CGdiObject.0
lea ecx, [esp + 0x30]
mov byte [esp + 0x50], 3
call fcn.005152fb
lea ecx, [esp + 0x38]
mov dword [esp + 0x50], 0xffffffff
call fcn.00514971
mov ecx, dword [esp + 0x48]
pop edi
pop esi
pop ebx
pop ebp
mov dword fs:[0], ecx
add esp, 0x44
ret