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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x5c
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x44]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], 0x18
mov eax, dword [sym.imp.GDI32.dll_GetObjectW]
call eax
sub esp, 0xc
movzx eax, word [esp + 0x54]
movzx edx, word [esp + 0x56]
mov ecx, edx
not ecx
mov esi, eax
and esi, ecx
mov ecx, eax
not ecx
and ecx, edx
imul ecx, esi
mov esi, eax
and esi, edx
add eax, edx
sub eax, esi
imul eax, esi
mov edx, eax
and edx, ecx
or eax, ecx
add edx, eax
mov word [esp + 0x22], dx
movzx eax, word [esp + 0x22]
mov ecx, eax
sub ecx, 1
je 0x447bbc
jmp 0x447b85
mov ecx, eax
sub ecx, 4
je 0x447bbc
jmp 0x447b8e
mov ecx, eax
sub ecx, 8
je 0x447bbc
jmp 0x447b97
mov ecx, eax
sub ecx, 0x10
je 0x447c37
jmp 0x447ba4
mov ecx, eax
sub ecx, 0x18
je 0x447c37
jmp 0x447bb1
sub eax, 0x20
jne 0x447c43
jmp 0x447bbc
jmp 0x447bbe
movzx ecx, word [esp + 0x22]
mov eax, 1
shl eax, cl
mov esi, eax
xor esi, 0xffffffff
mov edx, esi
and edx, 4
or esi, 4
mov ecx, esi
xor ecx, 0xffffffff
xor esi, 0xffffffff
or ecx, esi
xor ecx, 0xffffffff
or ecx, 0
and ecx, 0xffffffff
xor ecx, 0xffffffff
mov esi, ecx
xor esi, 0xffffffff
mov edi, edx
and edi, esi
mov esi, edx
xor esi, 0xffffffff
mov ebx, ecx
and ebx, esi
imul ebx, edi
mov esi, ecx
and esi, edx
or ecx, edx
imul ecx, esi
add ecx, ebx
mov edx, eax
xor edx, 4
xor edx, 0xffffffff
mov esi, eax
or esi, 4
and esi, edx
mov edx, eax
and edx, 4
xor eax, 4
or edx, eax
imul edx, esi
mov eax, edx
and eax, ecx
or edx, ecx
add eax, edx
mov dword [esp + 0x28], eax
jmp 0x447c37
jmp 0x447c39
mov dword [esp + 0x28], 0
jmp 0x447c43
mov eax, dword [esp + 0x48]
movzx ecx, word [esp + 0x22]
imul eax, ecx
add eax, 0x25aa247d
add eax, 0x1f
sub eax, 0x25aa247d
mov ecx, eax
xor ecx, 0xffffffe0
xor ecx, 0xffffffff
or eax, 0xffffffe0
and eax, ecx
mov ecx, 8
cdq
idiv ecx
mov edx, dword [esp + 0x4c]
mov ecx, eax
xor ecx, 0xffffffff
mov edi, edx
xor edi, ecx
xor edi, 0xffffffff
mov esi, edx
or esi, ecx
and esi, edi
mov ecx, edx
and ecx, 0xffffffff
shl ecx, 1
mov edi, edx
add edi, 0xffffffff
sub edi, ecx
mov ecx, eax
and ecx, edi
mov edi, esi
xor edi, 0xffffffff
mov ebx, ecx
and ebx, edi
mov ebp, ecx
or ebp, edi
xor ebp, 0xffffffff
imul ebp, ebx
mov edi, ecx
and edi, esi
or ecx, esi
imul ecx, edi
add ecx, ebp
mov edi, eax
and edi, edx
mov esi, eax
or esi, edx
xor esi, 0xffffffff
or eax, edx
xor eax, 0xffffffff
or esi, eax
xor esi, 0xffffffff
mov eax, edi
xor eax, 0xffffffff
mov edx, esi
and edx, eax
mov ebx, esi
or ebx, eax
xor ebx, 0xffffffff
imul ebx, edx
mov eax, esi
and eax, edi
or esi, edi
imul esi, eax
add esi, ebx
xor eax, eax
sub eax, ecx
sub esi, eax
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x28]
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffd8
xor esi, esi
sub esi, ecx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov dword [esp], eax
mov dword [esp + 4], 8
mov dword [esp + 8], esi
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
sub esp, 0xc
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x28
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x1c]
mov word [eax + 0xc], 1
mov ax, word [esp + 0x22]
mov ecx, dword [esp + 0x1c]
mov word [ecx + 0xe], ax
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x10], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x18], 0
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x1c], 0
movzx eax, word [esp + 0x22]
cmp eax, 0x10
jge 0x447da9
movzx ecx, word [esp + 0x22]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x24], 0
mov word [esp + 0x34], 0x4d42
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x20]
shl eax, 2
xor eax, 0xffffffff
sub eax, 0xffffffff
mov ecx, 0x3087e6ac
sub ecx, eax
add ecx, 0xcf78198a
mov dword [esp + 0x3e], ecx
mov word [esp + 0x3a], 0
mov word [esp + 0x3c], 0
mov eax, dword [esp + 0x3e]
add eax, dword [esp + 0x24]
mov dword [esp + 0x36], eax
mov esi, dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], esi
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
sub esp, 0xc
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp], 0
call dword [sym.imp.USER32.dll_GetDC]
sub esp, 4
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x4c]
movzx edx, dx
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x30]
xor ebx, ebx
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], 0
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
call dword [sym.imp.GDI32.dll_GetDIBits]
sub esp, 0x1c
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp], 0
mov dword [esp + 4], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
sub esp, 8
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x20]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 4
mov edx, eax
and edx, 0xfffffffb
imul edx, ecx
mov ecx, eax
and ecx, 4
or eax, 4
imul eax, ecx
add eax, edx
mov ecx, eax
and ecx, 0xffffffff
shl ecx, 1
add eax, 0xffffffff
sub eax, ecx
sub eax, 0xffffffff
mov ecx, 0x36
sub ecx, eax
add ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
mov dword [eax], ecx
mov eax, dword [esp + 0x78]
mov esi, dword [eax]
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], esi
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
sub esp, 0xc
mov ecx, dword [esp + 0x74]
mov dword [ecx], eax
mov eax, dword [esp + 0x74]
mov edi, dword [eax]
lea eax, [esp + 0x34]
mov ecx, 0xe
xchg esi, eax
rep movsb byte es:[edi], byte [esi]
xchg esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x20]
mov edx, ecx
and edx, 0xfffffffb
xor edx, 0xffffffff
mov eax, ecx
xor eax, 0xffffffff
or eax, 4
xor edx, 0xffffffff
xor eax, 0xffffffff
or edx, eax
mov eax, ecx
and eax, 0xfffffffb
mov esi, ecx
xor esi, 0xfffffffb
or eax, esi
xor eax, 0xffffffff
imul eax, edx
mov esi, ecx
and esi, 4
mov edx, ecx
or edx, 4
xor edx, 0xffffffff
or ecx, 4
xor ecx, 0xffffffff
xor edx, 0xffffffff
xor ecx, 0xffffffff
and edx, ecx
mov ecx, esi
xor ecx, 0xffffffff
mov edi, edx
and edi, ecx
mov ebx, edx
or ebx, ecx
xor ebx, 0xffffffff
imul ebx, edi
mov ecx, edx
and ecx, esi
or edx, esi
imul edx, ecx
add edx, ebx
mov ecx, edx
and ecx, eax
or edx, eax
add ecx, edx
xor eax, eax
sub eax, ecx
add eax, 0
add eax, 0xffffffd8
xor ecx, ecx
sub ecx, eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x74]
mov edi, dword [edx]
add edi, 0xe
xchg esi, eax
rep movsb byte es:[edi], byte [esi]
xchg esi, eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x74]
mov edi, dword [edx]
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 0x20]
shl edx, 2
add edx, 0x36
add edi, edx
xchg esi, eax
rep movsb byte es:[edi], byte [esi]
xchg esi, eax
mov esi, dword [esp + 0x2c]
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], esi
call dword [sym.imp.KERNEL32.dll_HeapFree]
sub esp, 0xc
mov esi, dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], esi
call dword [sym.imp.KERNEL32.dll_HeapFree]
sub esp, 0xc
mov eax, 1
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret