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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c4
push ebx
push esi
push edi
mov ebx, ecx
call fcn.00450360
mov dword [esp + 0x10], eax
xor eax, eax
push eax
mov ecx, 0x7d
lea edi, [esp + 0xdc]
rep stosd dword es:[edi], eax
lea eax, [esp + 0xdc]
push eax
push 0
push 0x29
mov dword [esp + 0x24], 0
mov dword [esp + 0xe8], 0x1f4
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
mov eax, dword [ebx + 0x20]
test eax, eax
mov ecx, 0x17
lea esi, [esp + 0x1b8]
lea edi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jne 0x455991
lea ecx, [ebx + 0x1dc]
test eax, eax
mov ecx, dword [ecx + 0x6b0]
mov dword [esp + 0x78], ecx
mov ecx, eax
jne 0x4559a7
lea ecx, [ebx + 0x1dc]
test eax, eax
mov edx, dword [ecx + 0x6b4]
mov dword [esp + 0x7c], edx
mov ecx, eax
jne 0x4559bd
lea ecx, [ebx + 0x1dc]
test eax, eax
mov ecx, dword [ecx + 0x6c0]
mov dword [esp + 0x88], ecx
mov esi, eax
jne 0x4559d6
lea esi, [ebx + 0x1dc]
test eax, eax
mov dl, byte [esi + 0x6c4]
mov byte [esp + 0x8c], dl
mov esi, eax
jne 0x4559ef
lea esi, [ebx + 0x1dc]
test eax, eax
mov cl, byte [esi + 0x6c5]
mov byte [esp + 0x8d], cl
jne 0x455a06
lea eax, [ebx + 0x1dc]
mov dl, byte [eax + 0x6c6]
lea eax, [esp + 0x94]
push 0x4a8118
push eax
mov byte [esp + 0x96], dl
call dword [sym.imp.MSVCR71.dll_wcscpy]
add esp, 8
lea ecx, [esp + 0x78]
push ecx
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov edi, dword [esp + 0x10]
mov esi, eax
push esi
push edi
mov dword [esp + 0x24], esi
call dword [sym.imp.GDI32.dll_SelectObject]
lea edx, [esp + 0x30]
push edx
push 4
push 0x4a017c
push edi
mov dword [esp + 0x20], eax
call dword [sym.imp.GDI32.dll_GetTextExtentPointW]
mov eax, dword [ebx + 0x1d4]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [esp + 0x18], ecx
je 0x455ae0
jmp 0x455a76
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + 8]
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
add esi, 0xc
cmp eax, 8
jb 0x455a8c
mov eax, dword [esi + 4]
jmp 0x455a8f
lea eax, [esi + 4]
lea edx, [esp + 0x20]
push edx
push ecx
push eax
push edi
call dword [sym.imp.GDI32.dll_GetTextExtentPointW]
push 0
push 0x4a8114
mov ecx, esi
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::find_wchar_t_const___unsigned_int_const]
cmp eax, 0xffffffff
mov eax, dword [esp + 0x20]
je 0x455abd
add eax, dword [esp + 0x30]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x14], eax
jge 0x455ac7
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx + 0x1d4]
mov eax, dword [eax]
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x18], eax
jne 0x455a72
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
push edx
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
push edi
mov ecx, ebx
call fcn.00450370
mov eax, dword [ebx + 0x1d4]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x2c], ecx
mov ecx, ebx
call fcn.00454d30
mov esi, eax
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x455b1e
mov dword [esp + 0x10], eax
jmp 0x455b28
lea edx, [ebx + 0x1dc]
mov dword [esp + 0x10], edx
test eax, eax
mov ecx, eax
jne 0x455be9
lea edx, [ebx + 0x1dc]
lea ecx, [ebx + 0x1dc]
mov dword [esp + 0x18], edx
test eax, eax
mov edi, eax
jne 0x455b4e
lea edi, [ebx + 0x1dc]
push 3
lea eax, [esp + 0x5c]
push eax
call fcn.004666a0
push 5
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
mov dword [esp + 0x30], eax
call fcn.004666a0
mov ecx, dword [esp + 0x18]
push 5
lea edx, [esp + 0x6c]
push edx
mov dword [esp + 0x24], eax
call fcn.004666a0
mov ecx, dword [esp + 0x10]
mov edi, eax
push 3
lea eax, [esp + 0x4c]
push eax
call fcn.004666a0
mov ecx, eax
mov edx, dword [ecx + 8]
mov eax, dword [edi + 8]
add eax, edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx]
mov edx, dword [esp + 0x14]
sub eax, ecx
mov ecx, dword [esp + 0x28]
sub eax, dword [ecx]
add eax, edx
mov edx, dword [ebx + 0x20]
test edx, edx
mov dword [esp + 0x20], eax
mov edi, edx
jne 0x455bf2
lea edi, [ebx + 0x1dc]
lea ecx, [ebx + 0x1dc]
mov ecx, dword [ecx + 0xa00]
add ecx, dword [edi + 0x9f8]
add ecx, eax
test edx, edx
lea eax, [ecx + esi*2 + 1]
mov dword [esp + 0x20], eax
je 0x455bf6
mov dword [esp + 0x14], edx
jmp 0x455c00
mov dword [esp + 0x18], eax
jmp 0x455b42
mov ecx, edx
jmp 0x455bc9
lea ecx, [ebx + 0x1dc]
mov dword [esp + 0x14], ecx
test edx, edx
mov ecx, edx
jne 0x455c98
lea eax, [ebx + 0x1dc]
lea ecx, [ebx + 0x1dc]
mov dword [esp + 0x10], eax
test edx, edx
mov edi, edx
jne 0x455c26
lea edi, [ebx + 0x1dc]
push 0
lea edx, [esp + 0x4c]
push edx
call fcn.004666a0
imul esi, dword [esp + 0x2c]
mov ecx, dword [eax + 4]
push 6
lea eax, [esp + 0x6c]
sub esi, ecx
push eax
mov ecx, edi
call fcn.004666a0
sub esi, dword [eax + 4]
push 6
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x18]
call fcn.004666a0
mov ecx, dword [eax + 0xc]
push 0
lea edx, [esp + 0x5c]
add esi, ecx
mov ecx, dword [esp + 0x18]
push edx
call fcn.004666a0
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp + 8]
add esi, ecx
mov ecx, dword [esp + 0x20]
mov dword [ebx + 0x1c8], esi
mov dword [ebx + 0x1cc], ecx
pop edi
mov dword [eax + 4], esi
pop esi
mov dword [eax], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [esp + 0x10], edx
jmp 0x455c1a