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

Disassembly:
sub esp, 0x24
push ebx
push ebp
mov ebx, ecx
mov dword [esp + 8], 0
call fcn.0043a180
mov ebp, dword [esp + 0x30]
push ebp
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
mov dword [ebx + 0xb8], eax
jne 0x43a381
pop ebp
pop ebx
add esp, 0x24
ret 8
mov ecx, dword [esp + 0x34]
push esi
push edi
mov dword [ebx + 0x74], ecx
mov ecx, 3
mov edi, 0x4a5af0
mov esi, eax
xor edx, edx
mov dword [ebx + 0xb4], eax
repe cmpsb byte [esi], byte es:[edi]
je 0x43a49b
lea edx, [eax + 3]
mov ecx, 3
mov edi, 0x4a5aec
mov esi, edx
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
jne 0x43a3d1
mov esi, edx
mov ecx, 3
mov edi, 0x4a5ae8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x43a497
mov esi, dword [esp + 0x38]
push esi
mov dword [ebx + 0xb8], 0
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
lea eax, [esp + 0x10]
push eax
push 0
push esi
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
test eax, eax
jne 0x43a587
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
lea esi, [ebx + 0xb0]
push esi
push 0x4ad014
push eax
push ecx
push edx
call dword [sym.imp.OLEAUT32.dll_OleCreatePictureIndirect]
test eax, eax
mov eax, dword [esp + 0x10]
push eax
jne 0x43a582
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [esi]
mov ecx, dword [eax]
lea edx, [esp + 0x38]
push edx
push eax
call dword [ecx + 0x18]
mov eax, dword [esi]
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
push eax
call dword [ecx + 0x1c]
mov eax, dword [ebx + 0x20]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov edi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0x9ec
mov esi, eax
push 0x58
push esi
call edi
mov ecx, dword [esp + 0x3c]
mov ebp, dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push ecx
call ebp
push 0x9ec
push 0x5a
push esi
mov dword [ebx + 0x64], eax
call edi
mov edx, dword [esp + 0x18]
push eax
push edx
call ebp
mov dword [ebx + 0x68], eax
mov eax, dword [ebx + 0x20]
push esi
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
jmp 0x43a68c
mov ebp, dword [esp + 0x38]
lea esi, [eax + 6]
mov dword [ebx + 0x80], 1
mov dword [ebx + 0xbc], esi
movzx ecx, byte [esi + 4]
mov edx, ecx
sar edx, 7
cmp edx, 1
jne 0x43a4e6
and ecx, 7
inc ecx
shl edx, cl
lea ecx, [edx + edx*2]
mov dword [ebx + 0x7c], ecx
movzx ecx, byte [esi + 5]
lea edx, [eax + ecx*2]
lea eax, [ecx + edx + 0xd]
movzx edx, byte [eax]
xor ecx, ecx
mov ch, byte [eax + 2]
mov cl, byte [eax + 1]
shl ecx, 8
or ecx, edx
mov dword [ebx + 0x6c], ecx
movzx eax, word [esi]
mov edx, dword [ebx + 0x7c]
mov dword [ebx + 0x64], eax
movzx ecx, word [esi + 2]
mov dword [ebx + 0x68], ecx
add edx, 0xd
mov ecx, ebx
xor edi, edi
xor esi, esi
mov dword [ebx + 0x78], edx
call fcn.00439650
test eax, eax
je 0x43a520
jmp 0x43a510
mov ecx, ebx
inc esi
call fcn.00439650
test eax, eax
jne 0x43a510
cmp esi, edi
jne 0x43a539
push ebp
mov dword [ebx + 0xb8], edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x24
ret 8
cmp esi, 1
jne 0x43a59d
push ebp
mov dword [ebx + 0xb8], edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
lea eax, [esp + 0x10]
push eax
push edi
push ebp
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
test eax, eax
jne 0x43a587
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [ebx + 0xb0]
push ecx
push 0x4ad014
push edi
push edx
push eax
call dword [sym.imp.OLEAUT32.dll_OleCreatePictureIndirect]
test eax, eax
mov eax, dword [esp + 0x10]
push eax
je 0x43a593
mov ecx, dword [eax]
call dword [ecx + 8]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x24
ret 8
mov edx, dword [eax]
call dword [edx + 8]
jmp 0x43a68c
mov eax, dword [ebx + 0x7c]
add eax, 0xd
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x28]
push edx
mov dword [ebx + 0x78], eax
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x24]
push edx
mov ecx, ebx
call fcn.004393e0
mov esi, eax
cmp esi, edi
je 0x43a66c
mov edi, dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
mov ebp, dword [sym.imp.OLEAUT32.dll_OleCreatePictureIndirect]
lea esp, [esp]
lea eax, [esp + 0x3c]
push eax
push 1
push esi
mov dword [esp + 0x48], 0
call edi
test eax, eax
je 0x43a5ff
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x43a63c
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x18]
push ecx
push 0x4ad014
push 0
push edx
push eax
call ebp
test eax, eax
mov eax, dword [esp + 0x3c]
push eax
je 0x43a627
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x43a63c
mov edx, dword [eax]
call dword [edx + 8]
lea eax, [esp + 0x18]
push eax
lea ecx, [ebx + 0xc0]
call fcn.0043a010
lea ecx, [esp + 0x30]
push ecx
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 ecx, ebx
call fcn.004393e0
mov esi, eax
test esi, esi
jne 0x43a5e0
mov ebp, dword [esp + 0x38]
xor edi, edi
push ebp
mov dword [ebx + 0xb8], edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
lea ecx, [ebx + 0xc0]
call fcn.004392c0
test al, al
jne 0x43a587
mov eax, dword [ebx + 0x68]
mov ecx, dword [ebx + 0x64]
push eax
push ecx
mov ecx, ebx
call fcn.00439190
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 8