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

Disassembly:
sub esp, 0x28
push ebx
push ebp
xor ebp, ebp
push esi
mov ebx, edi
mov dword [esp + 0x10], ebp
call fcn.00427330
mov ebx, dword [esp + 0x38]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
cmp eax, ebp
mov dword [edi + 0xc4], eax
je 0x427094
mov ecx, dword [esp + 0x3c]
mov dword [edi + 0x80], ecx
mov edx, eax
mov dword [edi + 0xc0], eax
movzx ecx, byte [edx]
sub ecx, 0x47
jne 0x426fbe
movzx ecx, byte [edx + 1]
add edx, 1
sub ecx, 0x49
jne 0x426fbe
movzx ecx, byte [edx + 1]
add edx, 1
sub ecx, 0x46
je 0x426fcc
cmp ecx, ebp
mov edx, 1
jg 0x426fce
or edx, 0xffffffff
jmp 0x426fce
xor edx, edx
cmp edx, ebp
je 0x427116
lea esi, [eax + 3]
mov edx, esi
movzx ecx, byte [edx]
sub ecx, 0x38
jne 0x426ffb
movzx ecx, byte [edx + 1]
add edx, 1
sub ecx, 0x37
jne 0x426ffb
movzx ecx, byte [edx + 1]
add edx, 1
sub ecx, 0x61
je 0x427009
cmp ecx, ebp
mov edx, 1
jg 0x42700b
or edx, 0xffffffff
jmp 0x42700b
xor edx, edx
cmp edx, ebp
jne 0x427049
mov edx, esi
movzx ecx, byte [edx]
sub ecx, 0x38
jne 0x427031
movzx ecx, byte [edx + 1]
add edx, 1
sub ecx, 0x39
jne 0x427031
movzx ecx, byte [edx + 1]
add edx, 1
sub ecx, 0x61
je 0x42703f
cmp ecx, ebp
mov edx, 1
jg 0x427041
or edx, 0xffffffff
jmp 0x427041
xor edx, edx
cmp edx, ebp
je 0x427116
push ebx
mov dword [edi + 0xc4], ebp
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
lea edx, [esp + 0x10]
push edx
push ebp
push ebx
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
test eax, eax
jne 0x427094
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
lea esi, [edi + 0xbc]
push esi
push 0x4990bc
push ebp
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_OleCreatePictureIndirect]
test eax, eax
mov eax, dword [esp + 0x10]
push eax
je 0x42709f
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 8
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
call edx
mov eax, dword [esi]
mov ecx, dword [eax]
lea edx, [esp + 0x38]
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
mov eax, dword [esi]
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
push eax
mov eax, dword [ecx + 0x1c]
call eax
mov ecx, dword [edi + 0x20]
push ecx
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0x9ec
mov esi, eax
push 0x58
push esi
call ebx
mov edx, dword [esp + 0x3c]
mov ebp, dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push edx
call ebp
push 0x9ec
push 0x5a
push esi
mov dword [edi + 0x70], eax
call ebx
push eax
mov eax, dword [esp + 0x1c]
push eax
call ebp
mov ecx, dword [edi + 0x20]
push esi
push ecx
mov dword [edi + 0x74], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
jmp 0x42730b
lea esi, [eax + 6]
mov dword [edi + 0x8c], 1
mov dword [edi + 0xc8], esi
movzx ecx, byte [esi + 4]
mov edx, ecx
sar edx, 7
cmp edx, 1
jne 0x427167
and ecx, 7
add ecx, edx
shl edx, cl
lea edx, [edx + edx*2]
mov dword [edi + 0x88], edx
movzx ecx, byte [esi + 5]
lea eax, [eax + ecx*2]
movzx edx, byte [ecx + eax + 0xd]
lea eax, [ecx + eax + 0xd]
xor ecx, ecx
mov ch, byte [eax + 2]
mov cl, byte [eax + 1]
shl ecx, 8
or ecx, edx
mov dword [edi + 0x78], ecx
movzx eax, word [esi]
mov edx, dword [edi + 0x88]
mov dword [edi + 0x70], eax
movzx ecx, word [esi + 2]
add edx, 0xd
mov eax, edi
mov dword [edi + 0x74], ecx
xor esi, esi
mov dword [edi + 0x84], edx
call fcn.004276f0
test eax, eax
je 0x4271a2
mov eax, edi
add esi, 1
call fcn.004276f0
test eax, eax
jne 0x427190
cmp esi, ebp
jne 0x4271ba
push ebx
mov dword [edi + 0xc4], ebp
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 8
cmp esi, 1
jne 0x427220
push ebx
mov dword [edi + 0xc4], ebp
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
lea eax, [esp + 0x10]
push eax
push ebp
push ebx
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
test eax, eax
jne 0x427094
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [edi + 0xbc]
push ecx
push 0x4990bc
push ebp
push edx
push eax
call dword [sym.imp.OLEAUT32.dll_OleCreatePictureIndirect]
test eax, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
je 0x427219
call edx
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 8
call edx
jmp 0x42730b
mov eax, dword [edi + 0x88]
add eax, 0xd
lea ecx, [esp + 0x30]
push ecx
mov dword [edi + 0x84], eax
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x24]
push edx
mov eax, edi
call fcn.004287e0
mov esi, eax
cmp esi, ebp
je 0x4272eb
mov ebx, dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
mov ebp, dword [sym.imp.OLEAUT32.dll_OleCreatePictureIndirect]
lea eax, [esp + 0x3c]
push eax
push 1
push esi
mov dword [esp + 0x48], 0
call ebx
test eax, eax
je 0x427284
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x4272bf
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x18]
push ecx
push 0x4990bc
push 0
push edx
push eax
call ebp
test eax, eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
je 0x4272ae
call edx
jmp 0x4272bf
call edx
lea esi, [edi + 0xcc]
lea eax, [esp + 0x18]
call fcn.00428cc0
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x24]
push ecx
mov eax, edi
call fcn.004287e0
mov esi, eax
test esi, esi
jne 0x427265
mov ebx, dword [esp + 0x38]
xor ebp, ebp
push ebx
mov dword [edi + 0xc4], ebp
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
lea ecx, [edi + 0xcc]
call fcn.00428c40
test al, al
jne 0x427094
mov edx, dword [edi + 0x70]
mov ebx, dword [edi + 0x74]
push edx
mov esi, edi
call fcn.00428a90
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 8