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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x27c
mov eax, dword [0x580014]
xor eax, esp
mov dword [esp + 0x278], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, ecx
mov dword [esp + 0xc], edx
push edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x14], ebx
call dword [sym.imp.Mso30Win32Client.dll_Ordinal_56788]
mov esi, dword [ebp + 0x10]
lea eax, [esp + 0x78]
push 0x100
push eax
mov edx, esi
mov ecx, ebx
call fcn.0041ed51
mov ebx, 0x100
mov dword [esp + 0x14], eax
cmp esi, ebx
mov edx, eax
cmovbe ebx, esi
mov esi, dword [ebp + 0x14]
shr edx, 0x10
test esi, 0x8000000
je 0x4252aa
xor ecx, ecx
test dx, dx
je 0x425265
mov ecx, 0x2000000
test esi, 0x1000000
je 0x425265
and esi, 0xfeffffff
or esi, 0x8000
sub esp, 8
mov edx, ecx
or edx, 0x4000000
test dword [ebp + 0x18], 0x100000
cmove edx, ecx
mov ecx, edi
push esi
push 0
push ebx
push dword [esp + 0x24]
push 0
push edx
push dword [ebp + 8]
mov edx, dword [esp + 0x30]
call fcn.004181af
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x278]
xor ecx, esp
call fcn.0051a430
mov esp, ebp
pop ebp
ret 0x14
sub esp, 8
lea eax, [esp + 0x80]
sub ebx, edx
mov ecx, edi
mov edx, dword [esp + 0x14]
push esi
push 0
push ebx
push eax
push 0
push 0
push dword [ebp + 8]
call fcn.004181af
mov ecx, dword [esp + 0x14]
movzx eax, cx
mov ecx, 0xffff
mov dword [esp + 0x10], eax
cmp ax, cx
je 0x425469
test dword [ebp + 0x18], 0x100000
jne 0x425469
lea eax, [esp + 0x3c]
push eax
push edi
call dword [sym.imp.Mso30Win32Client.dll_Ordinal_15809]
test byte [ebp + 0x18], 2
je 0x425352
push edi
call dword [sym.imp.Mso30Win32Client.dll_Ordinal_56788]
mov dword [esp + 0x14], eax
test eax, eax
je 0x425340
mov edx, dword [eax]
lea eax, [esp + 0x18]
mov ecx, dword [esp + 0x10]
push 0
push esi
push 0
push eax
movzx ecx, cx
lea eax, [esp + 0x88]
sub ebx, ecx
push ebx
lea eax, [eax + ecx*2]
push eax
push edi
push dword [esp + 0x30]
call dword [edx + 0x42c]
mov ebx, dword [esp + 0xc]
sub ebx, dword [esp + 0x18]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x10]
jmp 0x425383
mov ebx, dword [esp + 0x10]
test bx, bx
je 0x425383
push 0
push esi
push 0
lea eax, [esp + 0x24]
mov ecx, edi
push eax
movzx eax, bx
lea edx, [esp + 0x88]
push eax
call fcn.00418553
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x5c]
add dword [esp + 0xc], eax
push edi
call dword [sym.imp.Mso30Win32Client.dll_Ordinal_56788]
mov edx, eax
test edx, edx
je 0x4253b1
mov ecx, dword [edx]
lea eax, [esp + 0x18]
push 0
push esi
push 0
push eax
movzx eax, bx
push 1
lea eax, [esp + eax*2 + 0x8c]
push eax
push edi
push edx
call dword [ecx + 0x42c]
mov eax, dword [esp + 0x5c]
movzx ebx, word [esp + 0x18]
cdq
sub eax, edx
sar eax, 1
sub ebx, eax
lea eax, [esp + 0x18]
push eax
push edi
call dword [sym.imp.GDI32.dll_GetWindowExtEx]
lea eax, [esp + 0x24]
push eax
push edi
call dword [sym.imp.GDI32.dll_GetViewportExtEx]
mov esi, dword [sym.imp.Mso20Win32Client.dll_Ordinal_48446]
xor ecx, ecx
cmp dword [esp + 0x28], ecx
push 6
setl cl
xor eax, eax
cmp dword [esp + 0x20], eax
setge al
xor ecx, eax
lea edi, [ecx*2 - 1]
call esi
add eax, dword [esp + 0x40]
mov ecx, dword [ebp + 8]
imul eax, edi
push 6
add ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], eax
add eax, ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], eax
call esi
mov ebx, dword [esp + 0x20]
imul eax, edi
push ebx
add eax, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
call dword [sym.imp.GDI32.dll_GetTextColor]
mov edi, dword [sym.imp.GDI32.dll_SetBkColor]
push eax
push ebx
call edi
mov edx, dword [esp + 0xc]
mov esi, eax
push 0
push 0
push 0x52c134
lea eax, [esp + 0x38]
mov ecx, ebx
push eax
push 2
push dword [esp + 0x24]
call fcn.00417ccd
push esi
push ebx
call edi
mov ecx, dword [esp + 0x284]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0051a430
mov esp, ebp
pop ebp
ret 0x14