Function at 0x40561c
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 0x28
add esp, 0xfffff004
push eax
dec eax
jne 0x405625
mov eax, dword [ebp - 4]
add esp, 0xfffffbe0
push ebx
push esi
push edi
mov byte [ebp - 0x1c002], al
lea eax, [ebp - 0x1c000]
xor ecx, ecx
mov edx, 0x1c000
call sub.rtl160.bpl__System__FillChar_qqrpvic
lea eax, [ebp - 0x20024]
xor ecx, ecx
mov edx, 0x4000
call sub.rtl160.bpl__System__FillChar_qqrpvic
xor eax, eax
mov dword [ebp - 0x1c008], eax
mov byte [ebp - 0x1c001], 1
mov ebx, dword [0x42b17c]
jmp 0x405772
mov eax, ebx
call fcn.0040265c
mov edi, eax
test edi, edi
je 0x40576f
mov eax, edi
sub eax, 4
mov esi, dword [eax]
test esi, 1
jne 0x40575e
cmp byte [ebp - 0x1c002], 0
je 0x40575e
test esi, 4
je 0x4056c6
push ebp
mov eax, edi
call fcn.004054c8
pop ecx
jmp 0x40575e
cmp dword [ebp - 0x1c008], 0x1000
jge 0x40575e
xor edx, edx
mov eax, edi
call fcn.004041b4
test al, al
je 0x40575e
and esi, 0xfffffff0
sub esi, 4
mov dword [ebp - 0x1c014], esi
sub dword [ebp - 0x1c014], 0x88
mov edx, dword [ebp - 0x1c014]
mov eax, edi
call fcn.0040542c
mov byte [ebp - 0x1c003], al
cmp byte [ebp - 0x1c001], 0
je 0x40571e
cmp byte [ebp - 0x1c003], 0
jne 0x405722
xor eax, eax
jmp 0x405724
mov al, 1
mov byte [ebp - 0x1c001], al
cmp byte [ebp - 0x1c003], 1
je 0x40573c
mov dl, 1
mov eax, edi
call fcn.00403c40
cmp byte [ebp - 0x1c003], 1
je 0x40575e
mov eax, dword [ebp - 0x1c008]
mov edx, dword [ebp - 0x1c014]
mov dword [ebp + eax*4 - 0x20024], edx
inc dword [ebp - 0x1c008]
mov eax, edi
call fcn.00402638
mov edi, eax
test edi, edi
jne 0x405690
mov ebx, dword [ebx + 4]
cmp ebx, 0x42b178
jne 0x40567f
cmp byte [ebp - 0x1c002], 0
je 0x405aaf
mov ebx, dword [0x42d220]
jmp 0x40582c
cmp dword [ebp - 0x1c008], 0x1000
jge 0x405829
mov eax, ebx
add eax, 0x10
xor edx, edx
call fcn.004041b4
test al, al
je 0x405829
mov esi, dword [ebx + 0xc]
and esi, 0xfffffff0
sub esi, 4
sub esi, 0x10
sub esi, 0x88
mov eax, ebx
add eax, 0x10
mov edx, esi
call fcn.0040542c
mov byte [ebp - 0x1c003], al
cmp byte [ebp - 0x1c001], 0
je 0x4057ec
cmp byte [ebp - 0x1c003], 0
jne 0x4057f0
xor eax, eax
jmp 0x4057f2
mov al, 1
mov byte [ebp - 0x1c001], al
cmp byte [ebp - 0x1c003], 1
je 0x40580d
mov eax, ebx
add eax, 0x10
mov dl, 1
call fcn.00403c40
cmp byte [ebp - 0x1c003], 1
je 0x405829
mov eax, dword [ebp - 0x1c008]
mov dword [ebp + eax*4 - 0x20024], esi
inc dword [ebp - 0x1c008]
mov ebx, dword [ebx + 4]
cmp ebx, 0x42d21c
jne 0x405796
cmp byte [ebp - 0x1c001], 0
jne 0x405aaf
mov byte [ebp - 0x1c009], 0
xor eax, eax
mov dword [ebp - 0x1c018], eax
lea edx, [ebp - 0x28024]
mov eax, 0x405ab8
mov ecx, 0x24
call fcn.00402428
mov dword [ebp - 0x1c010], 0x38
mov dword [ebp - 0x1c020], 0x42a0de
lea edx, [ebp - 0x1b804]
mov dword [ebp - 0x1c024], edx
mov edx, dword [ebp - 0x1c020]
movzx edx, word [edx]
sub edx, 4
mov dword [ebp - 0x1c01c], edx
sub dword [ebp - 0x1c01c], 0x88
cmp dword [ebp - 0x1c01c], 0
jge 0x4058b6
xor edx, edx
mov dword [ebp - 0x1c01c], edx
mov byte [ebp - 0x1c00a], 0
mov esi, 0xff
mov edx, dword [ebp - 0x1c024]
mov ebx, edx
lea edx, [ebp - 0x20825]
cmp eax, edx
ja 0x4059c7
cmp dword [ebx], 0
jbe 0x4059ba
cmp byte [ebp - 0x1c009], 0
jne 0x405901
mov edx, 0x405ae0
mov ecx, 0x4d
xchg edx, eax
call fcn.00402428
mov byte [ebp - 0x1c009], 1
cmp byte [ebp - 0x1c00a], 0
jne 0x405951
mov byte [eax], 0xd
inc eax
mov byte [eax], 0xa
inc eax
mov edx, dword [ebp - 0x1c018]
inc edx
xchg edx, eax
call fcn.00402378
mov byte [eax], 0x20
inc eax
mov byte [eax], 0x2d
inc eax
mov byte [eax], 0x20
inc eax
mov edx, eax
mov eax, dword [ebp - 0x1c01c]
call fcn.00402378
mov edx, 0x405b30
mov ecx, 8
xchg edx, eax
call fcn.00402428
mov byte [ebp - 0x1c00a], 1
jmp 0x405959
mov byte [eax], 0x2c
inc eax
mov byte [eax], 0x20
inc eax
mov edx, esi
sub edx, 1
jb 0x405967
je 0x405979
dec edx
je 0x40598b
jmp 0x40599d
mov edx, 0x405b3c
mov ecx, 7
xchg edx, eax
call fcn.00402428
jmp 0x4059a6
mov edx, 0x405b44
mov ecx, 0xa
xchg edx, eax
call fcn.00402428
jmp 0x4059a6
mov edx, 0x405b50
mov ecx, 0xd
xchg edx, eax
call fcn.00402428
jmp 0x4059a6
mov edx, dword [ebx - 4]
xchg edx, eax
call fcn.00402444
mov byte [eax], 0x20
inc eax
mov byte [eax], 0x78
inc eax
mov byte [eax], 0x20
inc eax
mov edx, dword [ebx]
xchg edx, eax
call fcn.00402378
dec esi
sub ebx, 8
cmp esi, 0xffffffff
jne 0x4058ca
mov edx, dword [ebp - 0x1c01c]
mov dword [ebp - 0x1c018], edx
add dword [ebp - 0x1c024], 0x800
add dword [ebp - 0x1c020], 0x20
dec dword [ebp - 0x1c010]
jne 0x405889
cmp dword [ebp - 0x1c008], 0
jle 0x405a5b
cmp byte [ebp - 0x1c009], 0
je 0x405a12
mov byte [eax], 0xd
inc eax
mov byte [eax], 0xa
inc eax
mov byte [eax], 0xd
inc eax
mov byte [eax], 0xa
inc eax
mov edx, 0x405b60
mov ecx, 0x62
xchg edx, eax
call fcn.00402428
mov esi, dword [ebp - 0x1c008]
dec esi
test esi, esi
jb 0x405a5b
inc esi
xor edi, edi
lea ebx, [ebp - 0x20024]
test edi, edi
je 0x405a42
mov byte [eax], 0x2c
inc eax
mov byte [eax], 0x20
inc eax
mov edx, dword [ebx]
xchg edx, eax
call fcn.00402378
lea edx, [ebp - 0x20825]
cmp eax, edx
ja 0x405a5b
inc edi
add ebx, 4
dec esi
jne 0x405a36
mov edx, 0x405bc4
mov ecx, 0xa9
xchg edx, eax
call fcn.00402428
lea edx, [ebp - 0x28023]
push edx
mov edx, eax
pop eax
sub edx, eax
lea eax, [ebp - 0x28024]
call fcn.00402e60
lea eax, [ebp - 0x28024]
push eax
call sub.kernel32.dll_OutputDebugStringA
lea edx, [ebp - 0x28424]
mov eax, 0x405c70
call fcn.00402184
lea edx, [ebp - 0x28424]
lea eax, [ebp - 0x28024]
call fcn.00402474
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret