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

Disassembly:
sub esp, 0x150
push ebx
push ebp
push esi
push edi
xor ebp, ebp
push 0x94
lea eax, [esp + 0x38]
push ebp
push eax
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x3c], ebp
call fcn.00422290
xor eax, eax
add esp, 0xc
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov byte [esp + 0x13], al
mov byte [esp + 0x12], al
call fcn.00419850
mov edi, eax
mov dword [esp + 0x1c], edi
cmp edi, ebp
je 0x404dc3
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push ebp
call esi
push 1
mov dword [esp + 0x2c], eax
call esi
push edi
mov dword [esp + 0x30], eax
call fcn.00404b50
add esp, 4
test eax, eax
je 0x404df5
mov dword [esp + 0xc8], 1
cmp dword [0x4464d4], ebp
jne 0x404c3f
push 1
call fcn.00419bd0
add esp, 4
lea ecx, [esp + 0x30]
push ecx
push 0x98
lea edx, [esp + 0xd0]
push edx
push 0x98
push 0x6ea0
push edi
call dword [0x4464c0]
test eax, eax
jle 0x404df5
test dword [esp + 0x30], 0x80000000
je 0x404df5
test byte [esp + 0x30], 8
jne 0x404c8b
and dword [esp + 0x30], 0xfffffffb
mov ebx, 1
jmp 0x404c8f
mov ebx, dword [esp + 0x34]
test byte [esp + 0x30], 4
jne 0x404cc2
push 0x98
lea eax, [esp + 0x34]
push ebp
push eax
call fcn.00422290
add esp, 0xc
xor eax, eax
mov byte [esp + 0x78], 1
cmp ebx, ebp
jbe 0x404cc2
lea ecx, [esp + 0x79]
mov byte [ecx], al
inc eax
add ecx, 5
cmp eax, ebx
jb 0x404cb8
mov edx, 0xf
cmp ebx, ebp
jbe 0x404d06
lea eax, [esp + 0x7a]
mov esi, ebx
cmp byte [eax - 2], 0
je 0x404ce0
mov cl, byte [eax]
cmp cl, dl
jae 0x404ce0
movzx edx, cl
add eax, 5
sub esi, 1
jne 0x404cd1
cmp edx, ebp
je 0x404d06
cmp ebx, ebp
jbe 0x404d06
lea eax, [esp + 0x7a]
mov ecx, ebx
cmp byte [eax - 2], 0
je 0x404cfe
sub byte [eax], dl
add eax, 5
sub ecx, 1
jne 0x404cf6
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebp
test ebx, ebx
jbe 0x404d41
lea eax, [esp + 0x7a]
mov edx, ebx
cmp byte [eax - 2], 0
je 0x404d35
movzx ecx, byte [eax]
cmp ecx, dword [esp + 0x14]
jbe 0x404d2b
mov dword [esp + 0x14], ecx
movzx ecx, byte [eax - 1]
cmp ecx, ebp
jbe 0x404d35
mov ebp, ecx
add eax, 5
sub edx, 1
jne 0x404d18
mov dword [esp + 0x18], ebp
xor edi, edi
xor edx, edx
xor esi, esi
test ebx, ebx
jbe 0x404d75
lea eax, [esp + 0x79]
mov ecx, ebx
cmp byte [eax - 1], 0
je 0x404d69
movzx ebp, byte [eax + 1]
cmp ebp, edi
jne 0x404d69
movzx ebp, byte [eax]
cmp ebp, esi
jne 0x404d69
mov byte [eax], dl
inc edx
add eax, 5
sub ecx, 1
jne 0x404d51
mov ebp, dword [esp + 0x18]
inc esi
cmp esi, ebp
jbe 0x404d47
inc edi
cmp edi, dword [esp + 0x14]
jbe 0x404d43
xor esi, esi
test ebx, ebx
jbe 0x404db8
lea eax, [esp + 0x79]
mov edi, ebx
lea ecx, [ecx]
cmp byte [eax - 1], 0
je 0x404db0
mov cl, byte [eax]
inc esi
cmp cl, byte [esp + 0x12]
jbe 0x404da3
mov byte [esp + 0x12], cl
mov cl, byte [eax + 1]
cmp cl, byte [esp + 0x13]
jbe 0x404db0
mov byte [esp + 0x13], cl
add eax, 5
sub edi, 1
jne 0x404d90
mov edi, dword [esp + 0x1c]
push edi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [esp + 0x168]
test eax, eax
je 0x404de8
cmp esi, 2
jae 0x404df9
mov edx, dword [esp + 0x2c]
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x150
ret
xor esi, esi
jmp 0x404dbc
xor ebp, ebp
test ebx, ebx
jbe 0x404e5a
lea edi, [esp + 0x7a]
lea esi, [eax + 0xc]
cmp byte [edi - 2], 0
je 0x404e52
mov eax, dword [esp + 0x2c]
xor ecx, ecx
sub eax, ecx
movzx ecx, byte [esp + 0x13]
inc ecx
cdq
idiv ecx
movzx ecx, byte [edi]
inc ebp
imul ecx, eax
lea edx, [eax + ecx - 1]
mov eax, dword [esp + 0x28]
mov dword [esi - 8], ecx
xor ecx, ecx
sub eax, ecx
movzx ecx, byte [esp + 0x12]
mov dword [esi], edx
inc ecx
cdq
idiv ecx
movzx ecx, byte [edi - 1]
imul ecx, eax
lea edx, [eax + ecx - 1]
mov dword [esi - 0xc], ecx
mov dword [esi - 4], edx
add esi, 0x10
add edi, 5
sub ebx, 1
jne 0x404e06
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x150
ret