Function at 0x407058
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 0x28
add esp, 0xfffff004
push eax
dec eax
jne 0x407061
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 [0x537178]
jmp 0x4071ae
mov eax, ebx
call fcn.00403fd4
mov edi, eax
test edi, edi
je 0x4071ab
mov eax, edi
sub eax, 4
mov esi, dword [eax]
test esi, 1
jne 0x40719a
cmp byte [ebp - 0x1c002], 0
je 0x40719a
test esi, 4
je 0x407102
push ebp
mov eax, edi
call fcn.00406f04
pop ecx
jmp 0x40719a
cmp dword [ebp - 0x1c008], 0x1000
jge 0x40719a
xor edx, edx
mov eax, edi
call fcn.00405bd4
test al, al
je 0x40719a
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.00406e68
mov byte [ebp - 0x1c003], al
cmp byte [ebp - 0x1c001], 0
je 0x40715a
cmp byte [ebp - 0x1c003], 0
jne 0x40715e
xor eax, eax
jmp 0x407160
mov al, 1
mov byte [ebp - 0x1c001], al
cmp byte [ebp - 0x1c003], 1
je 0x407178
mov dl, 1
mov eax, edi
call fcn.00405660
cmp byte [ebp - 0x1c003], 1
je 0x40719a
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.00403fb0
mov edi, eax
test edi, edi
jne 0x4070cc
mov ebx, dword [ebx + 4]
cmp ebx, 0x537174
jne 0x4070bb
cmp byte [ebp - 0x1c002], 0
je 0x4074eb
mov ebx, dword [0x53921c]
jmp 0x407268
cmp dword [ebp - 0x1c008], 0x1000
jge 0x407265
mov eax, ebx
add eax, 0x10
xor edx, edx
call fcn.00405bd4
test al, al
je 0x407265
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.00406e68
mov byte [ebp - 0x1c003], al
cmp byte [ebp - 0x1c001], 0
je 0x407228
cmp byte [ebp - 0x1c003], 0
jne 0x40722c
xor eax, eax
jmp 0x40722e
mov al, 1
mov byte [ebp - 0x1c001], al
cmp byte [ebp - 0x1c003], 1
je 0x407249
mov eax, ebx
add eax, 0x10
mov dl, 1
call fcn.00405660
cmp byte [ebp - 0x1c003], 1
je 0x407265
mov eax, dword [ebp - 0x1c008]
mov dword [ebp + eax*4 - 0x20024], esi
inc dword [ebp - 0x1c008]
mov ebx, dword [ebx + 4]
cmp ebx, 0x539218
jne 0x4071d2
cmp byte [ebp - 0x1c001], 0
jne 0x4074eb
mov byte [ebp - 0x1c009], 0
xor eax, eax
mov dword [ebp - 0x1c018], eax
lea edx, [ebp - 0x28024]
mov eax, 0x4074f4
mov ecx, 0x24
call fcn.00403da0
mov dword [ebp - 0x1c010], 0x38
mov dword [ebp - 0x1c020], 0x5320ca
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 0x4072f2
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 0x407403
cmp dword [ebx], 0
jbe 0x4073f6
cmp byte [ebp - 0x1c009], 0
jne 0x40733d
mov edx, 0x40751c
mov ecx, 0x4d
xchg edx, eax
call fcn.00403da0
mov byte [ebp - 0x1c009], 1
cmp byte [ebp - 0x1c00a], 0
jne 0x40738d
mov byte [eax], 0xd
inc eax
mov byte [eax], 0xa
inc eax
mov edx, dword [ebp - 0x1c018]
inc edx
xchg edx, eax
call fcn.00403cf0
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.00403cf0
mov edx, 0x40756c
mov ecx, 8
xchg edx, eax
call fcn.00403da0
mov byte [ebp - 0x1c00a], 1
jmp 0x407395
mov byte [eax], 0x2c
inc eax
mov byte [eax], 0x20
inc eax
mov edx, esi
sub edx, 1
jb 0x4073a3
je 0x4073b5
dec edx
je 0x4073c7
jmp 0x4073d9
mov edx, 0x407578
mov ecx, 7
xchg edx, eax
call fcn.00403da0
jmp 0x4073e2
mov edx, 0x407580
mov ecx, 0xa
xchg edx, eax
call fcn.00403da0
jmp 0x4073e2
mov edx, 0x40758c
mov ecx, 0xd
xchg edx, eax
call fcn.00403da0
jmp 0x4073e2
mov edx, dword [ebx - 4]
xchg edx, eax
call fcn.00403dbc
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.00403cf0
dec esi
sub ebx, 8
cmp esi, 0xffffffff
jne 0x407306
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 0x4072c5
cmp dword [ebp - 0x1c008], 0
jle 0x407497
cmp byte [ebp - 0x1c009], 0
je 0x40744e
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, 0x40759c
mov ecx, 0x62
xchg edx, eax
call fcn.00403da0
mov esi, dword [ebp - 0x1c008]
dec esi
test esi, esi
jb 0x407497
inc esi
xor edi, edi
lea ebx, [ebp - 0x20024]
test edi, edi
je 0x40747e
mov byte [eax], 0x2c
inc eax
mov byte [eax], 0x20
inc eax
mov edx, dword [ebx]
xchg edx, eax
call fcn.00403cf0
lea edx, [ebp - 0x20825]
cmp eax, edx
ja 0x407497
inc edi
add ebx, 4
dec esi
jne 0x407472
mov edx, 0x407600
mov ecx, 0xa9
xchg edx, eax
call fcn.00403da0
lea edx, [ebp - 0x28023]
push edx
mov edx, eax
pop eax
sub edx, eax
lea eax, [ebp - 0x28024]
call fcn.00404880
lea eax, [ebp - 0x28024]
push eax
call sub.kernel32.dll_OutputDebugStringA
lea edx, [ebp - 0x28424]
mov eax, 0x4076ac
call fcn.00403afc
lea edx, [ebp - 0x28424]
lea eax, [ebp - 0x28024]
call fcn.00403dec
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret