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

Disassembly:
sub esp, 0x88
push esi
mov esi, dword [esp + 0x90]
push edi
xor edi, edi
xor eax, eax
mov dword [esp + 0x10], eax
cmp esi, edi
je 0x43c207
mov ecx, dword [esp + 0x98]
push ebx
lea eax, [esp + 0x38]
push eax
push 0x18
push ecx
call dword [sym.imp.GDI32.dll_GetObjectA]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
push edi
push edi
mov dword [esp + 0x60], eax
lea eax, [esp + 0x98]
push eax
mov ecx, 1
mov word [esp + 0x68], cx
push edi
lea ecx, [esp + 0x60]
mov dword [esp + 0x64], edx
push ecx
mov edx, 0x20
push esi
mov dword [esp + 0x68], 0x28
mov word [esp + 0x76], dx
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], edi
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov ebx, eax
mov dword [esp + 0x34], ebx
cmp ebx, edi
je 0x43c1fb
push ebp
push esi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ebp, eax
mov dword [esp + 0x30], ebp
cmp ebp, edi
je 0x43c1fa
push ebx
push ebp
call dword [sym.imp.GDI32.dll_SelectObject]
lea edx, [esp + 0x7c]
push edx
push 0x18
push ebx
mov dword [esp + 0x40], eax
call dword [sym.imp.GDI32.dll_GetObjectA]
mov eax, dword [esp + 0x88]
mov ecx, eax
and ecx, 0x80000003
jns 0x43bf60
dec ecx
or ecx, 0xfffffffc
inc ecx
je 0x43bf7b
inc eax
mov edx, eax
and edx, 0x80000003
jns 0x43bf72
dec edx
or edx, 0xfffffffc
inc edx
jne 0x43bf62
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
push 0xcc0020
push edi
push edi
push esi
push eax
push ecx
push edi
push edi
push ebp
call dword [sym.imp.GDI32.dll_BitBlt]
push 0x660
push 2
mov dword [esp + 0x1c], 0x64
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebp, eax
push ebp
mov dword [esp + 0x24], ebp
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push edi
mov esi, eax
push edi
push SysReAllocString
push SysReAllocString
lea edx, [esi + 0x10]
push edx
mov dword [esi], 0x20
mov dword [esi + 4], 1
mov dword [esi + 0xc], edi
mov dword [esi + 8], edi
call dword [sym.imp.USER32.dll_SetRect]
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0xa4]
dec edx
imul edx, dword [esp + 0x88]
add edx, dword [esp + 0x90]
mov eax, ecx
shr eax, 8
mov byte [esp + 0x12], al
mov eax, ecx
shr eax, 0x10
xor ebx, ebx
cmp dword [esp + 0x44], edi
mov byte [esp + 0x13], al
mov dword [esp + 0x2c], edx
mov dword [esp + 0x1c], ebx
jle 0x43c19c
mov ecx, dword [esp + 0x40]
jmp 0x43c030
test ecx, ecx
jle 0x43c180
mov eax, dword [esp + 0x14]
add eax, 2
shl eax, 4
mov dword [esp + 0x28], eax
cmp edi, ecx
mov dword [esp + 0x24], edi
lea eax, [edx + edi*4]
jge 0x43c173
jmp 0x43c060
mov dl, byte [esp + 0xa4]
cmp byte [eax + 2], dl
jne 0x43c07d
mov dl, byte [esp + 0x12]
cmp byte [eax + 1], dl
jne 0x43c07d
mov dl, byte [esp + 0x13]
cmp byte [eax], dl
je 0x43c085
inc edi
add eax, 4
cmp edi, ecx
jl 0x43c060
cmp edi, dword [esp + 0x24]
jle 0x43c173
mov eax, dword [esp + 0x14]
cmp dword [esi + 8], eax
jb 0x43c0c8
push ebp
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [esp + 0x28]
add dword [esp + 0x14], 0x64
add eax, 0x640
push 2
push eax
push ebp
mov dword [esp + 0x34], eax
call dword [sym.imp.KERNEL32.dll_GlobalReAlloc]
push eax
mov dword [esp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x24]
lea ebp, [ebx + 1]
push ebp
push edi
add edx, 2
push ebx
shl edx, 4
push ecx
add edx, esi
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [esp + 0x24]
cmp eax, dword [esi + 0x10]
lea ebx, [esi + 0x10]
jge 0x43c0f3
mov dword [ebx], eax
mov eax, dword [esp + 0x1c]
cmp eax, dword [esi + 0x14]
jge 0x43c0ff
mov dword [esi + 0x14], eax
cmp edi, dword [esi + 0x18]
jle 0x43c107
mov dword [esi + 0x18], edi
cmp ebp, dword [esi + 0x1c]
jle 0x43c10f
mov dword [esi + 0x1c], ebp
inc dword [esi + 8]
cmp dword [esi + 8], 0x7d0
jne 0x43c167
mov eax, dword [esp + 0x28]
push esi
push eax
push 0
call dword [sym.imp.GDI32.dll_ExtCreateRegion]
mov ebp, eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x43c147
push 2
push ebp
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
push ebp
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x43c14b
mov dword [esp + 0x18], ebp
push 0
push 0
push SysReAllocString
push SysReAllocString
push ebx
mov dword [esi + 8], 0
call dword [sym.imp.USER32.dll_SetRect]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
inc edi
cmp edi, ecx
jl 0x43c046
sub edx, dword [esp + 0x88]
inc ebx
xor edi, edi
cmp ebx, dword [esp + 0x44]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x1c], ebx
jl 0x43c030
mov ecx, dword [esp + 0x14]
add ecx, 2
push esi
shl ecx, 4
push ecx
push edi
call dword [sym.imp.GDI32.dll_ExtCreateRegion]
mov esi, eax
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x43c1cd
push 2
push esi
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x43c1d1
mov dword [esp + 0x18], esi
push ebp
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push ebp
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
push edx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov ebx, dword [esp + 0x38]
pop ebp
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x14]
pop ebx
pop edi
pop esi
add esp, 0x88
ret