Function at 0x403180
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 8
add esp, 0xfffff004
push eax
dec eax
jne 0x403189
mov eax, dword [ebp - 4]
add esp, 0xfffffbfc
push ebx
push esi
push edi
mov byte [ebp - 1], cl
mov ebx, edx
mov esi, eax
lea edx, [ebp - 0x8008]
mov eax, 0x403540
mov ecx, 0x26
call fcn.00402118
mov edi, eax
mov eax, ebx
sub al, 1
jb 0x40320e
je 0x4031cf
dec al
je 0x4031e4
dec al
je 0x4031f9
jmp 0x403221
mov eax, 0x403568
mov ecx, 6
mov edx, edi
call fcn.00402118
mov edi, eax
jmp 0x403221
mov eax, 0x403570
mov ecx, 7
mov edx, edi
call fcn.00402118
mov edi, eax
jmp 0x403221
mov eax, 0x403578
mov ecx, 0xa
mov edx, edi
call fcn.00402118
mov edi, eax
jmp 0x403221
mov eax, 0x403584
mov ecx, 0xf
mov edx, edi
call fcn.00402118
mov edi, eax
mov eax, 0x403594
mov ecx, 0xc
mov edx, edi
call fcn.00402118
mov edi, eax
cmp byte [ebp - 1], 0
je 0x4034a9
cmp byte [ebp + 8], 0
je 0x403299
cmp bl, 1
ja 0x403269
mov eax, 0x4035a4
mov ecx, 0x42
mov edx, edi
call fcn.00402118
mov edi, eax
mov edx, edi
mov eax, esi
call fcn.004030b8
mov edi, eax
jmp 0x4032ac
cmp dword [esi + 8], 0
jne 0x403284
mov eax, 0x4035e8
mov ecx, 0x41
mov edx, edi
call fcn.00402118
mov edi, eax
jmp 0x4032ac
mov eax, 0x40362c
mov ecx, 0x97
mov edx, edi
call fcn.00402118
mov edi, eax
jmp 0x4032ac
mov eax, 0x4036c4
mov ecx, 0x25
mov edx, edi
call fcn.00402118
mov edi, eax
cmp bl, 1
ja 0x4032c6
mov eax, 0x4036ec
mov ecx, 0x21
mov edx, edi
call fcn.00402118
mov edi, eax
jmp 0x4032d9
mov eax, 0x403710
mov ecx, 0x17
mov edx, edi
call fcn.00402118
mov edi, eax
mov edx, edi
mov eax, dword [esi + 0x74]
call fcn.00402068
mov edi, eax
cmp dword [esi + 0x14], 0
je 0x403349
cmp bl, 1
ja 0x403305
mov eax, 0x403728
mov ecx, 0x34
mov edx, edi
call fcn.00402118
mov edi, eax
jmp 0x403318
mov eax, 0x403760
mov ecx, 0x29
mov edx, edi
call fcn.00402118
mov edi, eax
mov edx, edi
mov eax, dword [esi + 0x40]
call fcn.004020c0
mov edi, eax
mov eax, 0x40378c
mov ecx, 0x39
mov edx, edi
call fcn.00402118
mov edi, eax
lea eax, [esi + 0x14]
mov ecx, edi
mov edx, 0xb
call dword [0x41f7f8]
mov edi, eax
lea eax, [esi + 0x78]
call fcn.00402290
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x403383
mov eax, 0x423640
cmp eax, dword [ebp - 8]
je 0x403383
mov eax, 0x4037c8
mov ecx, 0x3a
mov edx, edi
call fcn.00402118
mov edi, eax
mov edx, edi
mov eax, dword [ebp - 8]
call fcn.00402134
mov edi, eax
cmp bl, 1
jbe 0x403419
cmp dword [esi + 8], 0
je 0x403419
mov eax, 0x403804
mov ecx, 0x38
mov edx, edi
call fcn.00402118
mov edi, eax
mov eax, esi
add eax, 0x80
call fcn.00402290
mov dword [ebp - 8], eax
mov eax, 0x423640
cmp eax, dword [ebp - 8]
jne 0x4033c7
xor eax, eax
mov dword [ebp - 8], eax
mov edx, edi
mov eax, dword [ebp - 8]
call fcn.00402134
mov edi, eax
cmp dword [esi + 0xc], 0
jbe 0x4033f8
mov eax, 0x403840
mov ecx, 0x1d
mov edx, edi
call fcn.00402118
mov edi, eax
mov edx, edi
mov eax, dword [esi + 0xc]
call fcn.00402068
mov edi, eax
mov eax, 0x403860
mov ecx, 0x1e
mov edx, edi
call fcn.00402118
mov edi, eax
mov edx, edi
mov eax, dword [esi + 0x10]
call fcn.00402068
mov edi, eax
jmp 0x40345d
cmp dword [esi + 0xc], 0
jbe 0x40343e
mov eax, 0x403880
mov ecx, 0x1e
mov edx, edi
call fcn.00402118
mov edi, eax
mov edx, edi
mov eax, dword [esi + 0xc]
call fcn.00402068
mov edi, eax
mov eax, 0x4038a0
mov ecx, 0x1f
mov edx, edi
call fcn.00402118
mov edi, eax
mov edx, edi
mov eax, dword [esi + 0x10]
call fcn.00402068
mov edi, eax
cmp dword [esi + 0x48], 0
je 0x4034bc
mov eax, 0x4038c0
mov ecx, 0x2f
mov edx, edi
call fcn.00402118
mov edi, eax
mov edx, edi
mov eax, dword [esi + 0x44]
call fcn.004020c0
mov edi, eax
mov eax, 0x40378c
mov ecx, 0x39
mov edx, edi
call fcn.00402118
mov edi, eax
lea eax, [esi + 0x48]
mov ecx, edi
mov edx, 0xb
call dword [0x41f7f8]
mov edi, eax
jmp 0x4034bc
mov eax, 0x4038f0
mov ecx, 0x25
mov edx, edi
call fcn.00402118
mov edi, eax
cmp bl, 1
setne al
and eax, 0x7f
add eax, 3
cmp bl, 3
sete dl
and edx, 0x7f
add eax, edx
mov edx, edi
call fcn.00402ea8
mov edi, eax
mov edx, edi
mov eax, esi
call fcn.00402f74
mov edi, eax
mov byte [edi], 0xd
inc edi
mov byte [edi], 0xa
inc edi
mov byte [edi], 0
lea eax, [ebp - 0x8008]
mov edx, edi
sub edx, eax
lea eax, [ebp - 0x8008]
call fcn.00402b50
lea eax, [ebp - 0x8008]
push eax
call sub.kernel32.dll_OutputDebugStringA
lea edx, [ebp - 0x8408]
mov eax, 0x403918
call fcn.00401e74
lea edx, [ebp - 0x8408]
lea eax, [ebp - 0x8008]
call fcn.00402164
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4