Function at 0x405790
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 0x28
add esp, 0xfffff004
push eax
dec eax
jne 0x405799
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 [0x46417c]
jmp 0x4058e6
mov eax, ebx
call fcn.004027d0
mov edi, eax
test edi, edi
je 0x4058e3
mov eax, edi
sub eax, 4
mov esi, dword [eax]
test esi, 1
jne 0x4058d2
cmp byte [ebp - 0x1c002], 0
je 0x4058d2
test esi, 4
je 0x40583a
push ebp
mov eax, edi
call fcn.0040563c
pop ecx
jmp 0x4058d2
cmp dword [ebp - 0x1c008], 0x1000
jge 0x4058d2
xor edx, edx
mov eax, edi
call fcn.00404328
test al, al
je 0x4058d2
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.004055a0
mov byte [ebp - 0x1c003], al
cmp byte [ebp - 0x1c001], 0
je 0x405892
cmp byte [ebp - 0x1c003], 0
jne 0x405896
xor eax, eax
jmp 0x405898
mov al, 1
mov byte [ebp - 0x1c001], al
cmp byte [ebp - 0x1c003], 1
je 0x4058b0
mov dl, 1
mov eax, edi
call fcn.00403db4
cmp byte [ebp - 0x1c003], 1
je 0x4058d2
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.004027ac
mov edi, eax
test edi, edi
jne 0x405804
mov ebx, dword [ebx + 4]
cmp ebx, 0x464178
jne 0x4057f3
cmp byte [ebp - 0x1c002], 0
je 0x405c23
mov ebx, dword [0x466220]
jmp 0x4059a0
cmp dword [ebp - 0x1c008], 0x1000
jge 0x40599d
mov eax, ebx
add eax, 0x10
xor edx, edx
call fcn.00404328
test al, al
je 0x40599d
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.004055a0
mov byte [ebp - 0x1c003], al
cmp byte [ebp - 0x1c001], 0
je 0x405960
cmp byte [ebp - 0x1c003], 0
jne 0x405964
xor eax, eax
jmp 0x405966
mov al, 1
mov byte [ebp - 0x1c001], al
cmp byte [ebp - 0x1c003], 1
je 0x405981
mov eax, ebx
add eax, 0x10
mov dl, 1
call fcn.00403db4
cmp byte [ebp - 0x1c003], 1
je 0x40599d
mov eax, dword [ebp - 0x1c008]
mov dword [ebp + eax*4 - 0x20024], esi
inc dword [ebp - 0x1c008]
mov ebx, dword [ebx + 4]
cmp ebx, 0x46621c
jne 0x40590a
cmp byte [ebp - 0x1c001], 0
jne 0x405c23
mov byte [ebp - 0x1c009], 0
xor eax, eax
mov dword [ebp - 0x1c018], eax
lea edx, [ebp - 0x28024]
mov eax, 0x405c2c
mov ecx, 0x24
call fcn.0040259c
mov dword [ebp - 0x1c010], 0x38
mov dword [ebp - 0x1c020], 0x45c0da
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 0x405a2a
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 0x405b3b
cmp dword [ebx], 0
jbe 0x405b2e
cmp byte [ebp - 0x1c009], 0
jne 0x405a75
mov edx, 0x405c54
mov ecx, 0x4d
xchg edx, eax
call fcn.0040259c
mov byte [ebp - 0x1c009], 1
cmp byte [ebp - 0x1c00a], 0
jne 0x405ac5
mov byte [eax], 0xd
inc eax
mov byte [eax], 0xa
inc eax
mov edx, dword [ebp - 0x1c018]
inc edx
xchg edx, eax
call fcn.004024ec
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.004024ec
mov edx, 0x405ca4
mov ecx, 8
xchg edx, eax
call fcn.0040259c
mov byte [ebp - 0x1c00a], 1
jmp 0x405acd
mov byte [eax], 0x2c
inc eax
mov byte [eax], 0x20
inc eax
mov edx, esi
sub edx, 1
jb 0x405adb
je 0x405aed
dec edx
je 0x405aff
jmp 0x405b11
mov edx, 0x405cb0
mov ecx, 7
xchg edx, eax
call fcn.0040259c
jmp 0x405b1a
mov edx, 0x405cb8
mov ecx, 0xa
xchg edx, eax
call fcn.0040259c
jmp 0x405b1a
mov edx, 0x405cc4
mov ecx, 0xd
xchg edx, eax
call fcn.0040259c
jmp 0x405b1a
mov edx, dword [ebx - 4]
xchg edx, eax
call fcn.004025b8
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.004024ec
dec esi
sub ebx, 8
cmp esi, 0xffffffff
jne 0x405a3e
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 0x4059fd
cmp dword [ebp - 0x1c008], 0
jle 0x405bcf
cmp byte [ebp - 0x1c009], 0
je 0x405b86
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, 0x405cd4
mov ecx, 0x62
xchg edx, eax
call fcn.0040259c
mov esi, dword [ebp - 0x1c008]
dec esi
test esi, esi
jb 0x405bcf
inc esi
xor edi, edi
lea ebx, [ebp - 0x20024]
test edi, edi
je 0x405bb6
mov byte [eax], 0x2c
inc eax
mov byte [eax], 0x20
inc eax
mov edx, dword [ebx]
xchg edx, eax
call fcn.004024ec
lea edx, [ebp - 0x20825]
cmp eax, edx
ja 0x405bcf
inc edi
add ebx, 4
dec esi
jne 0x405baa
mov edx, 0x405d38
mov ecx, 0xa9
xchg edx, eax
call fcn.0040259c
lea edx, [ebp - 0x28023]
push edx
mov edx, eax
pop eax
sub edx, eax
lea eax, [ebp - 0x28024]
call fcn.00402fd4
lea eax, [ebp - 0x28024]
push eax
call sub.kernel32.dll_OutputDebugStringA
lea edx, [ebp - 0x28424]
mov eax, 0x405de4
call fcn.004022f8
lea edx, [ebp - 0x28424]
lea eax, [ebp - 0x28024]
call fcn.004025e8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret