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

Disassembly:
sub esp, 0x16c
mov eax, dword [0x4adadc]
xor eax, esp
mov dword [esp + 0x168], eax
push ebx
push ebp
push esi
push edi
push pe_nt_image_headers32
pop ecx
mov esi, 0x91
xor eax, eax
push esi
push dword [0x4af738]
mov edi, 0x4af758
rep stosd dword es:[edi], eax
call fcn.0040319c
xor ebx, ebx
inc ebx
and eax, ebx
push esi
push dword [0x4af738]
add eax, eax
mov dword [0x4af894], eax
call fcn.0040319c
shr eax, 1
push 0x7c
push dword [0x4af738]
and al, bl
mov dword [0x4af8d8], ebx
mov byte [0x4aebfb], al
call fcn.0040311b
mov edi, eax
add esp, 0x18
mov eax, 0x2bc
mov dword [esp + 0x18], edi
mov edx, 0x384
mov cl, byte [edi + 4]
push dword [0x4adacc]
test cl, cl
cmove edx, eax
mov dword [esp + 0x2c], edx
xor edx, edx
test cl, cl
cmove eax, edx
mov dword [esp + 0x14], eax
call dword [sym.imp.USER32.dll_GetDC]
mov esi, dword [esp + 0x184]
mov ebx, eax
mov dword [esp + 0x14], ebx
test esi, esi
je 0x45a68d
mov dword [0x4aebf4], esi
jmp 0x45a6b8
mov eax, dword [edi + 8]
mov dword [0x4aebf4], eax
test eax, eax
jle 0x45a6b8
push 0x48
push 0x5a
push ebx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push eax
push dword [0x4aebf4]
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
mov dword [0x4aebf4], eax
mov eax, dword [esp + 0x180]
push 0x7d
push dword [0x4af738]
mov dword [0x4aebf0], eax
call fcn.0040319c
pop ecx
pop ecx
push 5
pop ecx
push 3
mov ebp, eax
pop eax
push 4
pop edx
push dword [edi]
cmp ebp, 2
cmove ecx, eax
xor eax, eax
inc eax
cmp ebp, eax
push eax
cmove ecx, edx
neg ebp
sbb ebp, ebp
xor eax, eax
and ebp, ecx
push ebp
push eax
push eax
push dword [edi + 0xc]
mov dword [esp + 0x3c], ebp
push eax
push eax
push eax
push dword [esp + 0x34]
push eax
push eax
push dword [0x4aebf0]
push dword [0x4aebf4]
call dword [sym.imp.GDI32.dll_CreateFontA]
push eax
push ebx
mov dword [0x4af758], eax
call dword [sym.imp.GDI32.dll_SelectObject]
lea eax, [esp + 0x2c]
push eax
push ebx
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
lea eax, [esp + 0x98]
push eax
push 0xd4
push ebx
call dword [sym.imp.GDI32.dll_GetOutlineTextMetricsA]
test eax, eax
je 0x45a75f
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x150]
mov dword [0x4af8e0], eax
jmp 0x45a777
mov ecx, dword [esp + 0x30]
imul eax, ecx, 3
cdq
and edx, 7
add eax, edx
sar eax, 3
sub ecx, eax
mov dword [0x4af8e0], ecx
push 0x4af858
push 0x3c
push dword [0x4af758]
call dword [sym.imp.GDI32.dll_GetObjectA]
xor eax, eax
inc eax
test byte [esp + 0x5f], al
jne 0x45a7ab
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x44]
mov byte [0x4aebf9], 0
setne byte [0x4aebf8]
jmp 0x45a7b5
mov byte [0x4aebf9], al
mov byte [0x4aebf8], al
cmp dword [esp + 0x180], 0
je 0x45a7c3
test esi, esi
jne 0x45a7de
mov eax, dword [esp + 0x2c]
mov dword [0x4aebf4], eax
lea eax, [esp + 0x2c]
push eax
push ebx
call fcn.0045a4cb
pop ecx
pop ecx
mov dword [0x4aebf0], eax
movzx esi, byte [esp + 0x60]
lea eax, [esp + 0x78]
push 0x20
push 0xff
push eax
call fcn.00467540
add esp, 0xc
cmp esi, 0xff
jne 0x45a809
call dword [sym.imp.KERNEL32.dll_GetOEMCP]
mov ecx, eax
jmp 0x45a823
xor eax, eax
inc eax
push eax
lea eax, [esp + 0x7c]
push eax
push esi
call dword [sym.imp.GDI32.dll_TranslateCharsetInfo]
or ecx, 0xffffffff
test eax, eax
cmovne ecx, dword [esp + 0x7c]
lea eax, [esp + 0x64]
mov dword [0x4aec20], ecx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
xor ecx, ecx
inc ecx
cmp dword [esp + 0x64], ecx
seta byte [0x4aec1c]
xor eax, eax
push dword [edi]
push ecx
push ebp
push eax
push eax
push dword [edi + 0xc]
push eax
push ecx
push eax
push dword [esp + 0x34]
push eax
push eax
push dword [0x4aebf0]
push dword [0x4aebf4]
call dword [sym.imp.GDI32.dll_CreateFontA]
push ebx
mov dword [0x4af760], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push dword [0x4aebf4]
mov esi, eax
push dword [0x4aebf0]
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov ebp, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push esi
mov dword [esp + 0x28], eax
call ebp
push dword [0x4af760]
mov dword [esp + 0x20], eax
push esi
call ebp
push 0
push esi
call dword [sym.imp.GDI32.dll_SetTextAlign]
push 0xffffff
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
push 0
push esi
call dword [sym.imp.GDI32.dll_SetBkColor]
push 2
push esi
call dword [sym.imp.GDI32.dll_SetBkMode]
xor eax, eax
push eax
push 1
push 0x48f39c
push eax
push 2
push eax
push eax
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutA]
xor ebp, ebp
mov byte [esp + 0x10], 0
cmp dword [0x4aebf4], ebp
jle 0x45a928
mov ebx, dword [esp + 0x10]
xor edi, edi
inc edi
mov eax, dword [0x4aebf0]
cdq
sub eax, edx
push ebp
sar eax, 1
push eax
push esi
call dword [sym.imp.GDI32.dll_GetPixel]
test eax, eax
movzx ebx, bl
cmovne ebx, edi
inc ebp
cmp ebp, dword [0x4aebf4]
jl 0x45a8f8
mov edi, dword [esp + 0x18]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x14]
push dword [esp + 0x1c]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x20]
mov ebp, dword [sym.imp.GDI32.dll_DeleteObject]
call ebp
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
cmp byte [esp + 0x10], 0
jne 0x45a965
push dword [0x4af760]
and dword [0x4af8d8], 0
call ebp
xor eax, eax
mov dword [0x4af760], eax
jmp 0x45a967
xor eax, eax
cmp dword [0x4af894], 2
jne 0x45a99f
push dword [edi]
xor ecx, ecx
inc ecx
push ecx
push dword [esp + 0x2c]
push eax
push eax
push dword [edi + 0xc]
push eax
push eax
push eax
push dword [esp + 0x4c]
push eax
push eax
push dword [0x4aebf0]
push dword [0x4aebf4]
call dword [sym.imp.GDI32.dll_CreateFontA]
mov dword [0x4af75c], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [0x4aebf4]
inc eax
mov dword [0x4af8dc], eax
cmp eax, ecx
jl 0x45a9bb
lea eax, [ecx - 1]
mov dword [0x4af8dc], eax
xor edi, edi
xor esi, esi
mov eax, dword [esi + 0x4af758]
test eax, eax
je 0x45aa04
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
test eax, eax
je 0x45aa04
lea eax, [esp + 0x2c]
push eax
push ebx
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
test eax, eax
je 0x45aa04
lea eax, [esp + 0x2c]
push eax
push ebx
call fcn.0045a4cb
pop ecx
pop ecx
mov ecx, dword [esp + 0x2c]
shl ecx, 8
add eax, ecx
mov dword [esp + esi + 0x16c], eax
jmp 0x45aa0b
mov dword [esp + esi + 0x16c], edi
dec edi
add esi, 4
cmp edi, 0xfffffffd
jg 0x45a9bf
push ebx
push dword [0x4adacc]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x4adac8]
cmp eax, 0xffffffff
je 0x45aa32
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
mov eax, dword [0x4aebf0]
xor ebx, ebx
push ebx
push dword [0x4aebf4]
add eax, eax
xor edi, edi
push eax
inc edi
push edi
push 0xc8
push dword [0x4b27c8]
call dword [sym.imp.USER32.dll_LoadImageA]
mov esi, dword [esp + 0x16c]
mov dword [0x4adac8], eax
cmp dword [esp + 0x174], esi
je 0x45aa81
push dword [0x4af760]
mov dword [0x4af8d8], ebx
call ebp
mov dword [0x4af760], ebx
cmp dword [0x4af894], 2
jne 0x45aaa7
cmp dword [esp + 0x170], esi
je 0x45aaa7
push dword [0x4af75c]
mov dword [0x4af894], edi
call ebp
mov dword [0x4af75c], ebx
xor eax, eax
inc eax
push 0x4aec18
push dword [0x4af738]
mov byte [0x4af898], al
mov byte [0x4af899], al
mov byte [0x4af89a], al
call fcn.00463b13
pop ecx
pop ecx
mov ecx, dword [esp + 0x178]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004659d6
add esp, 0x16c
ret