Function at 0x40a2fc
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 0x27
add esp, 0xfffff004
push eax
dec eax
jne 0x40a305
mov eax, dword [ebp - 4]
add esp, 0xfffff6dc
push ebx
push esi
push edi
mov ebx, eax
lea eax, [ebp - 0x1b800]
xor ecx, ecx
mov edx, 0x1b800
call fcn.0040380c
lea eax, [ebp - 0x1f828]
xor ecx, ecx
mov edx, 0x4000
call fcn.0040380c
xor eax, eax
mov dword [ebp - 0x1b808], eax
mov byte [ebp - 0x1b801], 1
mov edi, dword [0x5c27d0]
jmp 0x40a3f9
mov eax, edi
call fcn.004092ac
mov esi, eax
test esi, esi
je 0x40a3f6
mov eax, esi
sub eax, 4
mov eax, dword [eax]
test al, 1
jne 0x40a3e5
test bl, bl
je 0x40a3e5
test al, 4
je 0x40a38a
push ebp
mov eax, esi
call fcn.0040a1b8
pop ecx
jmp 0x40a3e5
cmp dword [ebp - 0x1b808], 0x1000
jge 0x40a3e5
and eax, 0xfffffff0
sub eax, 4
mov dword [ebp - 0x1b814], eax
mov edx, dword [ebp - 0x1b814]
mov eax, esi
call fcn.0040a124
cmp byte [ebp - 0x1b801], 0
je 0x40a3bc
test al, al
jne 0x40a3c0
xor edx, edx
jmp 0x40a3c2
mov dl, 1
mov byte [ebp - 0x1b801], dl
cmp al, 1
je 0x40a3e5
mov eax, dword [ebp - 0x1b808]
mov edx, dword [ebp - 0x1b814]
mov dword [ebp + eax*4 - 0x1f828], edx
inc dword [ebp - 0x1b808]
mov eax, esi
call fcn.00409288
mov esi, eax
test esi, esi
jne 0x40a36c
mov edi, dword [edi + 4]
cmp edi, 0x5c27cc
jne 0x40a35b
test bl, bl
je 0x40a6ce
mov ebx, dword [0x5c4874]
jmp 0x40a46c
cmp dword [ebp - 0x1b808], 0x1000
jge 0x40a469
mov esi, dword [ebx + 0xc]
and esi, 0xfffffff0
sub esi, 4
sub esi, 0x10
mov eax, ebx
add eax, 0x10
mov edx, esi
call fcn.0040a124
cmp byte [ebp - 0x1b801], 0
je 0x40a446
test al, al
jne 0x40a44a
xor edx, edx
jmp 0x40a44c
mov dl, 1
mov byte [ebp - 0x1b801], dl
cmp al, 1
je 0x40a469
mov eax, dword [ebp - 0x1b808]
mov dword [ebp + eax*4 - 0x1f828], esi
inc dword [ebp - 0x1b808]
mov ebx, dword [ebx + 4]
cmp ebx, 0x5c4870
jne 0x40a415
cmp byte [ebp - 0x1b801], 0
jne 0x40a6ce
mov byte [ebp - 0x1b809], 0
xor eax, eax
mov dword [ebp - 0x1b818], eax
lea edx, [ebp - 0x27828]
mov eax, 0x40a6d8
mov ecx, 0x24
call fcn.00409110
mov ebx, eax
mov dword [ebp - 0x1b810], 0x37
mov dword [ebp - 0x1b824], 0x5b40fa
lea eax, [ebp - 0x1b004]
mov dword [ebp - 0x1b828], eax
mov eax, dword [ebp - 0x1b824]
movzx eax, word [eax]
sub eax, 4
mov dword [ebp - 0x1b81c], eax
mov byte [ebp - 0x1b80a], 0
mov edi, 0xff
mov eax, dword [ebp - 0x1b828]
mov esi, eax
lea eax, [ebp - 0x20029]
cmp ebx, eax
ja 0x40a605
cmp dword [esi], 0
jbe 0x40a5f8
cmp byte [ebp - 0x1b809], 0
jne 0x40a527
mov eax, 0x40a700
mov ecx, 0x4d
mov edx, ebx
call fcn.00409110
mov ebx, eax
mov byte [ebp - 0x1b809], 1
cmp byte [ebp - 0x1b80a], 0
jne 0x40a57f
mov byte [ebx], 0xd
inc ebx
mov byte [ebx], 0xa
inc ebx
mov eax, dword [ebp - 0x1b818]
inc eax
mov edx, ebx
call fcn.00408ff4
mov ebx, eax
mov byte [ebx], 0x20
inc ebx
mov byte [ebx], 0x2d
inc ebx
mov byte [ebx], 0x20
inc ebx
mov edx, ebx
mov eax, dword [ebp - 0x1b81c]
call fcn.00408ff4
mov ebx, eax
mov eax, 0x40a750
mov ecx, 8
mov edx, ebx
call fcn.00409110
mov ebx, eax
mov byte [ebp - 0x1b80a], 1
jmp 0x40a587
mov byte [ebx], 0x2c
inc ebx
mov byte [ebx], 0x20
inc ebx
mov eax, edi
sub eax, 1
jb 0x40a592
je 0x40a5a7
jmp 0x40a5bc
mov eax, 0x40a75c
mov ecx, 7
mov edx, ebx
call fcn.00409110
mov ebx, eax
jmp 0x40a5e1
mov eax, 0x40a764
mov ecx, 6
mov edx, ebx
call fcn.00409110
mov ebx, eax
jmp 0x40a5e1
lea edx, [ebp - 0x27928]
mov eax, dword [esi - 4]
call fcn.00404208
xor ecx, ecx
mov cl, byte [ebp - 0x27928]
lea eax, [ebp - 0x27927]
mov edx, ebx
call fcn.00409110
mov ebx, eax
mov byte [ebx], 0x20
inc ebx
mov byte [ebx], 0x78
inc ebx
mov byte [ebx], 0x20
inc ebx
mov eax, dword [esi]
mov edx, ebx
call fcn.00408ff4
mov ebx, eax
dec edi
sub esi, 8
cmp edi, 0xffffffff
jne 0x40a4ed
mov eax, dword [ebp - 0x1b81c]
mov dword [ebp - 0x1b818], eax
add dword [ebp - 0x1b828], 0x800
add dword [ebp - 0x1b824], 0x20
dec dword [ebp - 0x1b810]
jne 0x40a4c7
cmp dword [ebp - 0x1b808], 0
jle 0x40a6b1
cmp byte [ebp - 0x1b809], 0
je 0x40a650
mov byte [ebx], 0xd
inc ebx
mov byte [ebx], 0xa
inc ebx
mov byte [ebx], 0xd
inc ebx
mov byte [ebx], 0xa
inc ebx
mov eax, 0x40a76c
mov ecx, 0x62
mov edx, ebx
call fcn.00409110
mov ebx, eax
mov edi, dword [ebp - 0x1b808]
dec edi
test edi, edi
jb 0x40a6b1
inc edi
mov dword [ebp - 0x1b820], 0
lea esi, [ebp - 0x1f828]
cmp dword [ebp - 0x1b820], 0
je 0x40a690
mov byte [ebx], 0x2c
inc ebx
mov byte [ebx], 0x20
inc ebx
mov eax, dword [esi]
mov edx, ebx
call fcn.00408ff4
mov ebx, eax
lea eax, [ebp - 0x20029]
cmp ebx, eax
ja 0x40a6b1
inc dword [ebp - 0x1b820]
add esi, 4
dec edi
jne 0x40a67f
mov eax, 0x40a7d0
mov ecx, 0x13b
mov edx, ebx
call fcn.00409110
lea eax, [ebp - 0x27828]
push eax
call sub.kernel32.dll_OutputDebugStringA
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret