Function at 0x455e08
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdc8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x238], ebx
mov dword [ebp - 0x22c], ebx
mov dword [ebp - 0x230], ebx
mov esi, ecx
lea edi, [ebp - 0x128]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, edx
lea edi, [ebp - 0x118]
xor ecx, ecx
mov cl, byte [esi]
inc ecx
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 4], eax
mov esi, 0x4bfd38
xor eax, eax
push ebp
push 0x45608f
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.004560ac
mov eax, dword [ebp - 4]
push eax
call sub.user32.dll_GetDC
mov dword [ebp - 0xc], eax
push 0xc
call sub.gdi32.dll_GetStockObject
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [esi + 1], eax
xor eax, eax
mov dword [esi + 0xd], eax
xor eax, eax
mov dword [esi + 9], eax
mov byte [ebp - 0x228], 0
movzx edi, byte [ebp - 0x118]
test edi, edi
jle 0x455f93
mov dword [ebp - 8], 1
lea ebx, [ebp - 0x117]
cmp byte [ebx], 0xa
je 0x455f0e
lea eax, [ebp - 0x22c]
lea edx, [ebp - 0x228]
call fcn.00404e58
lea eax, [ebp - 0x22c]
push eax
lea eax, [ebp - 0x234]
mov dl, byte [ebx]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x234]
lea eax, [ebp - 0x230]
call fcn.00404e58
mov edx, dword [ebp - 0x230]
pop eax
call fcn.00404ebc
mov edx, dword [ebp - 0x22c]
lea eax, [ebp - 0x228]
mov ecx, 0xff
call fcn.00404e90
cmp byte [ebx], 0xa
je 0x455f20
xor eax, eax
mov al, byte [ebp - 0x118]
cmp eax, dword [ebp - 8]
jne 0x455f88
inc dword [esi + 0xd]
lea eax, [ebp - 0x238]
lea edx, [ebp - 0x228]
call fcn.00404e58
mov edx, dword [ebp - 0x238]
imul eax, dword [esi + 0xd], 0xd
lea eax, [esi + eax*2 - 9]
call fcn.00409294
lea eax, [ebp - 0x14]
push eax
imul eax, dword [esi + 0xd], 0xd
lea eax, [esi + eax*2 - 9]
call fcn.004091fc
push eax
imul eax, dword [esi + 0xd], 0xd
lea eax, [esi + eax*2 - 9]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.gdi32.dll_GetTextExtentPoint32A
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
cmp eax, dword [esi + 1]
jle 0x455f79
mov dword [esi + 1], eax
cmp edx, dword [esi + 9]
jle 0x455f81
mov dword [esi + 9], edx
mov byte [ebp - 0x228], 0
inc dword [ebp - 8]
inc ebx
dec edi
jne 0x455eb0
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.user32.dll_ReleaseDC
mov eax, dword [esi + 1]
add eax, 9
add eax, 0x14
mov dword [esi + 1], eax
mov edx, dword [esi + 0xd]
dec edx
mov eax, dword [esi + 9]
mov ecx, eax
imul edx, ecx
add edx, eax
add edx, 0xa
add edx, 2
mov dword [esi + 5], edx
mov ebx, dword [ebp - 0x120]
mov eax, dword [ebp - 0x128]
sub ebx, eax
sar ebx, 1
jns 0x455fe5
adc ebx, 0
add ebx, eax
mov edi, dword [ebp - 0x11c]
push 0x11
call sub.user32.dll_GetSystemMetrics
mov edx, dword [esi + 5]
add edx, edi
cmp eax, edx
jle 0x456002
mov byte [esi], 1
jmp 0x45600e
mov byte [esi], 3
mov edi, dword [ebp - 0x124]
sub edi, dword [esi + 5]
push 0x10
call sub.user32.dll_GetSystemMetrics
mov edx, dword [esi + 1]
add edx, ebx
cmp eax, edx
jge 0x456023
inc byte [esi]
sub ebx, dword [esi + 1]
push ebx
push edi
mov eax, dword [esi + 1]
push eax
mov eax, dword [esi + 5]
push eax
push 0
push 0
mov eax, dword [0x47c664]
push eax
push 0
mov edx, 0x4560a0
mov eax, 0x4560a4
mov ecx, 0x88000000
call fcn.004075d0
mov dword [0x4bfd98], eax
mov byte [0x47ace0], 1
push 8
mov eax, dword [0x4bfd98]
push eax
call sub.user32.dll_ShowWindow
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x456096
lea eax, [ebp - 0x238]
call fcn.00404bf4
lea eax, [ebp - 0x230]
mov edx, 2
call fcn.00404c18
ret