Function at 0x409554
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x170
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x78], 0
mov dword [ebp - 0xbc], 1
mov dword [ebp - 0xa8], 1
push 2
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0xc], 0
mov ecx, dword [ebp - 0xb8]
mov byte [ecx], 0
mov dword [ebp - 0x20], 1
mov byte [ebp - 0xb4], 0x77
mov byte [ebp - 0xb3], 0x73
mov dword [ebp - 0x94], 0
jmp 0x4095ec
mov edx, dword [ebp - 0x94]
add edx, 1
mov dword [ebp - 0x94], edx
mov eax, dword [ebp - 0x94]
cmp eax, dword [ebp - 0xbc]
jge 0x409609
mov ecx, dword [ebp - 0xb8]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x4095dd
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0x94], edx
mov eax, dword [ebp - 0xbc]
shl eax, 2
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xa4]
sub edx, dword [ebp - 0x78]
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x48], 0
push 2
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x130]
mov dword [ebp - 8], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 4], 0
mov byte [ebp - 0xb2], 0x70
mov ecx, dword [ebp - 0xa4]
add ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 8]
mov byte [edx], 0
mov byte [ebp - 0x68], 0x55
mov dword [ebp - 0x84], 0
mov eax, dword [ebp - 0x54]
sub eax, 3
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x30], 1
mov byte [ebp - 0xa0], 0x65
mov ecx, dword [ebp - 0x44]
add ecx, dword [ebp - 0xa4]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0xb1], 0x72
mov dword [ebp - 0x38], 0
mov byte [ebp - 0xb0], 0x69
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x134], eax
mov edx, dword [ebp - 0x134]
mov dword [ebp - 0x10], edx
mov byte [ebp - 0xaf], 0x6e
mov dword [ebp - 0x94], 0
jmp 0x409717
mov eax, dword [ebp - 0x94]
add eax, 1
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0x94]
cmp ecx, dword [ebp - 0xbc]
jge 0x40974e
mov edx, dword [ebp - 0xb8]
add edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xc]
mov al, byte [ecx + eax*4]
mov byte [edx], al
mov ecx, dword [ebp - 0xb8]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x409708
push 2
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x138]
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x67], 0x73
mov byte [ebp - 0x74], 0x65
mov dword [ebp - 0x2c], 0
jmp 0x409788
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x20]
jge 0x40979c
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x40977f
mov byte [ebp - 0xae], 0x74
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x90], eax
mov byte [ebp - 0xad], 0x66
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x140], eax
mov ecx, dword [ebp - 0x140]
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0x58], edx
mov byte [ebp - 0x9f], 0x72
mov byte [ebp - 0x66], 0x65
mov byte [ebp - 0x73], 0x72
mov byte [ebp - 0x9e], 0x72
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0xac], 0x41
cmp dword [ebp - 0x48], 0
jne 0x40982e
mov ecx, dword [ebp - 0x90]
mov dl, byte [ebp - 0xa8]
mov byte [ecx], dl
mov eax, dword [ebp - 0x90]
mov cl, byte [ebp - 0x84]
mov byte [eax + 1], cl
mov byte [ebp - 0x9d], 0
cmp dword [ebp - 0x28], 0
jne 0x40984c
mov edx, dword [ebp - 0x5c]
mov al, byte [ebp - 0x34]
mov byte [edx], al
mov ecx, dword [ebp - 0x5c]
mov dl, byte [ebp - 0x18]
mov byte [ecx + 1], dl
mov byte [ebp - 0x72], 0x72
mov byte [ebp - 0xab], 0
mov byte [ebp - 0x65], 0x72
mov eax, dword [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov byte [ebp - 0x64], 0x33
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x40], 0
mov byte [ebp - 0x63], 0x32
cmp dword [ebp - 0x1c], 0
jne 0x409891
mov edx, dword [ebp - 0x10]
mov al, byte [ebp - 0x14]
mov byte [edx], al
mov ecx, dword [ebp - 0x10]
mov dl, byte [ebp - 0x38]
mov byte [ecx + 1], dl
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [ebp - 0x50]
mov byte [edx], 0
mov eax, dword [ebp - 0x20]
shl eax, 2
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x144], eax
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 4], ecx
mov dword [ebp - 0x2c], 0
jmp 0x4098d7
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x20]
jge 0x4098fc
mov ecx, dword [ebp - 8]
add ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ecx], dl
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x4098ce
mov byte [ebp - 0x71], 0
mov dword [ebp - 0x3c], 0
jmp 0x409912
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x3c]
cmp edx, dword [ebp - 0x30]
jge 0x409926
mov eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x409909
mov ecx, dword [ebp - 0x4c]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x30]
shl eax, 2
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x148], eax
mov ecx, dword [ebp - 0x148]
mov dword [ebp - 0x40], ecx
mov byte [ebp - 0x62], 0x2e
mov dword [ebp - 0x3c], 0
jmp 0x40996a
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x30]
jge 0x40998f
mov ecx, dword [ebp - 0x50]
add ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
mov dl, byte [eax + edx*4]
mov byte [ecx], dl
mov eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x409961
mov byte [ebp - 0x61], 0x64
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x14c], eax
mov ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x88], ecx
mov byte [ebp - 0x60], 0x6c
mov byte [ebp - 0x5f], 0x6c
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x150]
mov dword [ebp - 0x7c], edx
cmp dword [ebp - 0x88], 0
jne 0x4099e3
lea eax, [ebp - 0x74]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov byte [ebp - 0x5e], 0
cmp dword [ebp - 0x88], 0
je 0x409a0d
mov ecx, dword [ebp - 0x88]
mov byte [ecx], 0x61
mov edx, dword [ebp - 0x88]
mov byte [edx + 1], 0x62
mov eax, dword [ebp - 0x88]
mov byte [eax + 2], 0
cmp dword [ebp - 0x88], 0
je 0x409a23
mov ecx, dword [ebp - 0x88]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp dword [ebp - 0x7c], 0
jne 0x409a36
lea edx, [ebp - 0xa0]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x40c860], eax
cmp dword [0x40c860], 0
jne 0x409a7b
mov byte [ebp - 0xcc], 0x65
mov dword [ebp - 0xc0], 1
mov byte [ebp - 0xcb], 0x72
mov byte [ebp - 0xca], 0x72
mov byte [ebp - 0xc9], 0
xor eax, eax
jmp 0x409d6e
cmp dword [ebp - 0x80], 0
je 0x409c71
mov dword [ebp - 0xec], 1
push 2
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x15c], eax
mov edx, dword [ebp - 0x15c]
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0xfc], 1
push 2
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xf4], 0
mov ecx, dword [ebp - 0xf8]
mov byte [ecx], 0
mov dword [ebp - 0xf0], 0
jmp 0x409aff
mov edx, dword [ebp - 0xf0]
add edx, 1
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge 0x409b1c
mov ecx, dword [ebp - 0xf8]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x409af0
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0xf0], edx
mov dword [ebp - 0xe4], 0
mov eax, dword [ebp - 0xe8]
mov byte [eax], 0
mov ecx, dword [ebp - 0xec]
shl ecx, 2
push ecx
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x164]
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0xf0], 0
jmp 0x409b7a
mov eax, dword [ebp - 0xf0]
add eax, 1
mov dword [ebp - 0xf0], eax
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge 0x409bb4
mov edx, dword [ebp - 0xf8]
add edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xf4]
mov al, byte [ecx + eax*4]
mov byte [edx], al
mov ecx, dword [ebp - 0xf8]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x409b6b
mov dword [ebp - 0x100], 0
jmp 0x409bcf
mov edx, dword [ebp - 0x100]
add edx, 1
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x100]
cmp eax, dword [ebp - 0xfc]
jge 0x409bec
mov ecx, dword [ebp - 0xe8]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x409bc0
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0xfc]
shl eax, 2
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x168], eax
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0x100], 0
jmp 0x409c37
mov edx, dword [ebp - 0x100]
add edx, 1
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x100]
cmp eax, dword [ebp - 0xfc]
jge 0x409c71
mov ecx, dword [ebp - 0xe8]
add ecx, dword [ebp - 0x100]
mov edx, dword [ebp - 0x100]
mov eax, dword [ebp - 0xe4]
mov dl, byte [eax + edx*4]
mov byte [ecx], dl
mov eax, dword [ebp - 0xe8]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x409c28
cmp dword [ebp - 0x7c], 0
je 0x409c8b
mov ecx, dword [ebp - 0x7c]
mov byte [ecx], 0x61
mov edx, dword [ebp - 0x7c]
mov byte [edx + 1], 0x62
mov eax, dword [ebp - 0x7c]
mov byte [eax + 2], 0
lea ecx, [ebp - 0xb4]
push ecx
mov edx, dword [0x40c860]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x40c850], eax
cmp dword [0x40c850], 0
jne 0x409d59
mov byte [ebp - 0x114], 0x65
mov dword [ebp - 0x11c], 1
mov byte [ebp - 0x113], 0x72
mov byte [ebp - 0x112], 0x72
mov byte [ebp - 0x111], 0
mov dword [ebp - 0x108], 0
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x104], 0
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x170], eax
mov ecx, dword [ebp - 0x170]
mov dword [ebp - 0x124], ecx
mov edx, dword [ebp - 0x124]
mov dword [ebp - 0x120], edx
cmp dword [ebp - 0x108], 0
jne 0x409d55
mov eax, dword [ebp - 0x124]
mov cl, byte [ebp - 0x11c]
mov byte [eax], cl
mov edx, dword [ebp - 0x124]
mov al, byte [ebp - 0x104]
mov byte [edx + 1], al
xor eax, eax
jmp 0x409d6e
cmp dword [ebp - 0x7c], 0
je 0x409d69
mov ecx, dword [ebp - 0x7c]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, 1
mov esp, ebp
pop ebp
ret