Function at 0x454bc9
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xfffffdc0
push esi
push edi
mov esi, 0x463cc0
lea edi, [ebp - 0x13c]
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
mov esi, 0x463dc0
lea edi, [ebp - 0x14c]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], 2
push 0x46591c
call sub.kernel32.dll_OutputDebugStringA
lea edx, [ebp - 0x18]
push edx
push dword [ebp + 8]
call fcn.0045395a
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x454c3b
push 0x465935
call sub.kernel32.dll_OutputDebugStringA
xor eax, eax
jmp 0x454f69
test byte [ebp + 0x20], 2
je 0x454c48
mov dword [ebp - 0xc], 4
test byte [ebp + 0x20], 4
je 0x454c55
mov dword [ebp - 0xc], 8
mov eax, dword [ebp + 0x18]
cdq
idiv dword [ebp - 0xc]
test edx, edx
jne 0x454c6f
mov ecx, dword [ebp + 0x18]
sar ecx, 1
jns 0x454c6a
adc ecx, 0
mov dword [ebp - 0x10], ecx
jmp 0x454c84
mov eax, dword [ebp + 0x18]
cdq
idiv dword [ebp - 0xc]
inc eax
imul dword [ebp - 0xc]
sar eax, 1
jns 0x454c81
adc eax, 0
mov dword [ebp - 0x10], eax
movzx ecx, word [ebp + 0x10]
add ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x18]
jbe 0x454ca8
push 0x46594e
call sub.kernel32.dll_OutputDebugStringA
push 6
call sub.kernel32.dll_SetLastError
xor eax, eax
jmp 0x454f69
cmp dword [ebp + 0x1c], 0
je 0x454cdf
push dword [ebp + 0x1c]
call fcn.004519c2
pop ecx
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x100
jle 0x454cca
mov dword [ebp - 8], 0xff
push dword [ebp - 8]
push dword [ebp + 0x1c]
lea edx, [ebp - 0x13c]
push edx
call fcn.0045197a
add esp, 0xc
cmp dword [ebp - 8], 0x10
jge 0x454cec
mov dword [ebp - 8], 0x10
push 0x10
push 0x465973
lea ecx, [ebp - 0x13c]
push ecx
call fcn.00454854
add esp, 0xc
test byte [ebp + 0x23], 0x80
je 0x454d46
push 0x10
lea eax, [ebp - 0x14c]
push eax
push dword [ebp + 8]
call fcn.00453722
test eax, eax
jne 0x454d2e
push 0x465983
call sub.kernel32.dll_OutputDebugStringA
xor eax, eax
jmp 0x454f69
push 0x10
lea edx, [ebp - 0x14c]
push edx
lea ecx, [ebp - 0x13c]
push ecx
call fcn.00454854
add esp, 0xc
mov eax, dword [ebp - 0x10]
add eax, eax
push eax
call fcn.004519ff
pop ecx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x454d6c
push 0x46599d
call sub.kernel32.dll_OutputDebugStringA
xor eax, eax
jmp 0x454f69
mov edx, dword [ebp - 0x10]
add edx, edx
push edx
push 0
push dword [ebp - 0x14]
call fcn.0045199e
add esp, 0xc
mov ecx, dword [ebp - 0x10]
add ecx, ecx
push ecx
push dword [ebp - 0x14]
movzx eax, word [ebp + 0x10]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00453e4c
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x454dbc
push 0x4659b7
call sub.kernel32.dll_OutputDebugStringA
push dword [ebp - 0x14]
call fcn.00451a1b
pop ecx
mov eax, dword [ebp - 4]
jmp 0x454f69
mov edx, dword [ebp - 0xc]
sub edx, 2
je 0x454ddb
sub edx, 2
je 0x454e50
sub edx, 4
je 0x454ecd
jmp 0x454f4a
mov ecx, dword [ebp - 0x10]
add ecx, ecx
sar ecx, 1
jns 0x454de7
adc ecx, 0
mov dword [ebp - 0x24], ecx
push dword [ebp - 8]
lea eax, [ebp - 0x13c]
push eax
lea edx, [ebp - 0x164]
push edx
call fcn.004585c9
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x10]
jge 0x454f4a
mov edx, dword [ebp - 0x24]
add edx, edx
add edx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x24]
add ecx, ecx
add ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x20], ecx
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
lea eax, [ebp - 0x164]
push eax
call fcn.0045853a
add esp, 0xc
inc dword [ebp - 0x24]
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp - 0x10]
jl 0x454e14
jmp 0x454f4a
mov ecx, dword [ebp - 0x10]
add ecx, ecx
test ecx, ecx
jns 0x454e5c
add ecx, 3
sar ecx, 2
mov dword [ebp - 0x30], ecx
push dword [ebp - 8]
lea eax, [ebp - 0x13c]
push eax
lea edx, [ebp - 0x1f8]
push edx
call fcn.004588c6
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 0x30], ecx
jmp 0x454eb7
mov eax, dword [ebp - 0x30]
add eax, eax
add eax, eax
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x30]
add edx, edx
add edx, edx
add edx, dword [ebp - 0x14]
add edx, 2
mov dword [ebp - 0x2c], edx
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
lea ecx, [ebp - 0x1f8]
push ecx
call fcn.0045881b
add esp, 0xc
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
add eax, eax
test eax, eax
jns 0x454ec3
add eax, 3
sar eax, 2
cmp eax, dword [ebp - 0x30]
jg 0x454e82
jmp 0x454f4a
mov edx, dword [ebp - 0x10]
add edx, edx
test edx, edx
jns 0x454ed9
add edx, 7
sar edx, 3
mov dword [ebp - 0x3c], edx
push dword [ebp - 8]
lea ecx, [ebp - 0x13c]
push ecx
lea eax, [ebp - 0x1240]
push eax
call fcn.004582e2
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x3c], edx
jmp 0x454f36
mov ecx, dword [ebp - 0x3c]
add ecx, ecx
shl ecx, 2
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x3c]
add eax, eax
shl eax, 2
add eax, dword [ebp - 0x14]
add eax, 4
mov dword [ebp - 0x38], eax
push dword [ebp - 0x38]
push dword [ebp - 0x34]
lea edx, [ebp - 0x1240]
push edx
call fcn.00458254
add esp, 0xc
inc dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x10]
add ecx, ecx
test ecx, ecx
jns 0x454f42
add ecx, 7
sar ecx, 3
cmp ecx, dword [ebp - 0x3c]
jg 0x454eff
push dword [ebp + 0x18]
push dword [ebp - 0x14]
push dword [ebp + 0x14]
call fcn.0045197a
add esp, 0xc
push dword [ebp - 0x14]
call fcn.00451a1b
pop ecx
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x1c