Function at 0x402d70
Capabilities:
Print debug messages

Disassembly:
push 0xffffffffffffffff
push 0x410a30
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30
mov al, byte [esp + 0x40]
push ebx
push ebp
push esi
xor ebx, ebx
push edi
push ebx
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], al
call fcn.00403940
or ebp, 0xffffffff
mov edi, 0x4145a0
mov ecx, ebp
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x4145a0
lea ecx, [esp + 0x18]
call fcn.00403bc0
mov esi, dword [esp + 0x50]
mov ecx, ebp
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x48], ebx
push ecx
push esi
lea ecx, [esp + 0x18]
call fcn.00403b00
mov edi, 0x41459c
mov ecx, ebp
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x41459c
lea ecx, [esp + 0x18]
call fcn.00403b00
cmp dword [0x417a68], 1
jne 0x402e3f
mov edi, 0x41458c
mov ecx, ebp
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x41458c
lea ecx, [esp + 0x18]
call fcn.00403b00
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x402e2e
mov eax, 0x411204
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x402e96
jmp 0x402e91
push esi
push 0x414580
call fcn.00401590
push ebx
push esi
call fcn.00404abd
add esp, 0x10
cmp eax, ebp
jne 0x402ecb
mov edi, 0x41456c
mov ecx, ebp
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x41456c
lea ecx, [esp + 0x18]
call fcn.00403b00
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x402e82
mov eax, 0x411204
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x402e96
mov eax, 0x411204
push eax
push 0x414568
call fcn.00401590
add esp, 8
lea ecx, [esp + 0x10]
mov dword [esp + 0x48], ebp
push 1
call fcn.00403940
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret
mov dl, byte [esp + 0x50]
xor ecx, ecx
cmp esi, ebx
push ebx
setne cl
mov edi, ecx
lea ecx, [esp + 0x24]
mov byte [esp + 0x24], dl
call fcn.00403940
push 0x414544
mov byte [esp + 0x4c], 1
call fcn.00401590
add esp, 4
cmp edi, ebx
je 0x402f16
lea eax, [esp + 0x20]
push ebx
push eax
push esi
call fcn.00403290
add esp, 0xc
test eax, eax
je 0x402f16
mov ebp, 1
jmp 0x402f18
xor ebp, ebp
mov eax, dword [esp + 0x24]
cmp eax, ebx
jne 0x402f25
mov eax, 0x411204
push eax
push 0x414520
call fcn.00401590
add esp, 8
cmp ebp, ebx
je 0x403051
mov edi, 0x4144f0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov ecx, dword [esp + 0x2c]
push 0x4144f0
push ecx
push ebx
lea ecx, [esp + 0x30]
call fcn.00404170
cmp eax, ebx
je 0x402fb7
mov edi, 0x4144dc
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x28]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x4144dc
push edx
push ebx
lea ecx, [esp + 0x30]
call fcn.00404170
cmp eax, ebx
je 0x402fb7
mov edi, 0x4144c4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x28]
not ecx
dec ecx
push ecx
push 0x4144c4
push eax
push ebx
lea ecx, [esp + 0x30]
call fcn.00404170
cmp eax, ebx
jne 0x4030fc
mov edi, 0x4144b4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x4144b4
lea ecx, [esp + 0x18]
call fcn.00403b00
mov ecx, dword [0x411200]
lea edx, [esp + 0x20]
push ecx
push ebx
push edx
lea ecx, [esp + 0x1c]
call fcn.00403a20
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x402ff8
mov eax, 0x411204
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x40300c
mov eax, 0x411204
push eax
push 0x414568
call fcn.00401590
add esp, 8
lea ecx, [esp + 0x20]
mov byte [esp + 0x48], bl
push 1
call fcn.00403940
push 1
lea ecx, [esp + 0x14]
mov dword [esp + 0x4c], 0xffffffff
call fcn.00403940
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret
xor eax, eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x31], eax
push ecx
mov dword [esp + 0x39], eax
push esi
mov dword [esp + 0x41], eax
mov byte [esp + 0x38], bl
mov word [esp + 0x45], ax
mov byte [esp + 0x47], al
call fcn.00402c20
add esp, 8
test eax, eax
je 0x4030fc
mov ecx, 0x41117c
xor eax, eax
mov dl, byte [esp + eax + 0x30]
cmp dl, byte [ecx + eax]
jne 0x403094
inc eax
cmp eax, 0x10
jl 0x403085
cmp eax, 0x10
je 0x403125
add ecx, 0x10
cmp ecx, 0x41118c
jl 0x403083
push 0xa
mov ecx, 0x417cf8
call fcn.00403790
mov eax, dword [0x417cf8]
xor esi, esi
mov eax, dword [eax + 4]
test byte [eax + 0x417cfc], 6
jne 0x4030de
mov eax, dword [eax + 0x417d20]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x2c]
cmp eax, 0xffffffff
jne 0x4030de
mov esi, 4
mov eax, dword [0x417cf8]
mov ecx, dword [eax + 4]
add ecx, 0x417cf8
cmp esi, ebx
je 0x4030fc
mov edx, dword [ecx + 4]
push ebx
or edx, esi
push edx
call fcn.00403990
mov ecx, dword [esp + 0x24]
cmp ecx, ebx
je 0x403249
mov al, byte [ecx - 1]
cmp al, bl
je 0x40323f
cmp al, 0xff
je 0x40323f
dec al
mov byte [ecx - 1], al
jmp 0x403249
mov edi, 0x4144a8
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x18]
repne scasb al, byte es:[edi]
mov eax, dword [0x411200]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x40314a
call fcn.0040eb78
cmp esi, ebx
jbe 0x40318e
mov ecx, dword [esp + 0x18]
push ebx
lea ebp, [ecx + esi]
lea ecx, [esp + 0x14]
push ebp
call fcn.00403c80
test al, al
je 0x40318e
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, 0x4144a8
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x14]
call fcn.00403c60
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x40319b
mov eax, 0x411204
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x4031af
mov eax, 0x411204
push eax
push 0x414568
call fcn.00401590
mov ecx, dword [esp + 0x2c]
add esp, 8
cmp ecx, ebx
je 0x4031e1
mov al, byte [ecx - 1]
cmp al, bl
je 0x4031d7
cmp al, 0xff
je 0x4031d7
dec al
mov byte [ecx - 1], al
jmp 0x4031e1
dec ecx
push ecx
call fcn.00404b01
add esp, 4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], ebx
cmp ecx, ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
je 0x403227
mov al, byte [ecx - 1]
cmp al, bl
je 0x40321d
cmp al, 0xff
je 0x40321d
dec al
pop edi
pop esi
mov byte [ecx - 1], al
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret
dec ecx
push ecx
call fcn.00404b01
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret
dec ecx
push ecx
call fcn.00404b01
add esp, 4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], ebx
cmp ecx, ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
je 0x403279
mov al, byte [ecx - 1]
cmp al, bl
je 0x40326f
cmp al, 0xff
je 0x40326f
dec al
mov byte [ecx - 1], al
jmp 0x403279
dec ecx
push ecx
call fcn.00404b01
add esp, 4
mov ecx, dword [esp + 0x40]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov dword fs:[0], ecx
add esp, 0x3c
ret