Function at 0x406844
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x818
push esi
mov esi, eax
test esi, esi
je 0x406b3a
push ebx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_LocalAlloc]
push 0x100000
push 0x40
call edi
cmp dword [ebp + 0xc], 0
push dword [ebp + 8]
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
push dword [ebp + 8]
push esi
jne 0x406898
push str.Dumping_buffer_0x_p___size0x_x__d_:
push eax
mov dword [ebp + 0xc], eax
call ebx
add esp, 0x14
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push dword [ebp + 0xc]
jmp 0x4068b5
push dword [ebp + 0xc]
mov dword [ebp - 4], eax
push str.Dumping__s_0x_p___size0x_x__d_:
push eax
call ebx
add esp, 0x18
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp + 8]
cmp eax, 0x10
jb 0x406a71
shr eax, 4
mov dword [ebp - 0x18], eax
push 0x100000
push 0x40
call edi
mov dword [ebp - 4], eax
mov al, byte [esi + 0xd]
mov byte [ebp + 0xf], al
mov al, byte [esi + 0xc]
mov byte [ebp - 0xc], al
mov al, byte [esi + 0xb]
mov byte [ebp - 0xf], al
mov al, byte [esi + 0xa]
mov byte [ebp - 0x10], al
mov al, byte [esi + 9]
mov byte [ebp - 8], al
mov al, byte [esi + 8]
mov cl, byte [esi + 0xf]
mov byte [ebp - 0xe], al
mov al, byte [esi + 7]
mov dl, byte [esi + 0xe]
mov byte [ebp - 0xa], al
mov al, byte [esi + 6]
mov byte [ebp - 0x11], al
mov al, byte [esi + 5]
mov byte [ebp - 5], al
mov al, byte [esi + 4]
mov byte [ebp - 6], al
mov al, byte [esi + 3]
mov byte [ebp - 7], al
mov al, byte [esi + 2]
mov byte [ebp - 9], al
mov al, byte [esi + 1]
mov byte [ebp - 0xb], al
mov al, byte [esi]
mov byte [ebp - 0xd], al
mov al, cl
call fcn.0040682b
movsx eax, al
push eax
mov al, dl
call fcn.0040682b
movsx eax, al
push eax
mov al, byte [ebp + 0xf]
call fcn.0040682b
movsx eax, al
push eax
mov al, byte [ebp - 0xc]
call fcn.0040682b
movsx eax, al
push eax
mov al, byte [ebp - 0xf]
call fcn.0040682b
movsx eax, al
push eax
mov al, byte [ebp - 0x10]
call fcn.0040682b
movsx eax, al
push eax
mov al, byte [ebp - 8]
call fcn.0040682b
movsx eax, al
push eax
mov al, byte [ebp - 0xe]
call fcn.0040682b
movsx eax, al
push eax
mov al, byte [ebp - 0xa]
call fcn.0040682b
movsx eax, al
push eax
mov al, byte [ebp - 0x11]
call fcn.0040682b
movsx eax, al
push eax
mov al, byte [ebp - 5]
call fcn.0040682b
movsx eax, al
push eax
mov al, byte [ebp - 6]
call fcn.0040682b
movsx eax, al
push eax
mov al, byte [ebp - 7]
call fcn.0040682b
movsx eax, al
push eax
mov al, byte [ebp - 9]
call fcn.0040682b
movsx eax, al
push eax
mov al, byte [ebp - 0xb]
call fcn.0040682b
movsx eax, al
push eax
mov al, byte [ebp - 0xd]
call fcn.0040682b
movsx eax, al
push eax
movzx eax, cl
push eax
movzx eax, dl
push eax
movzx eax, byte [ebp + 0xf]
push eax
movzx eax, byte [ebp - 0xc]
push eax
movzx eax, byte [ebp - 0xf]
push eax
movzx eax, byte [ebp - 0x10]
push eax
movzx eax, byte [ebp - 8]
push eax
movzx eax, byte [ebp - 0xe]
push eax
movzx eax, byte [ebp - 0xa]
push eax
movzx eax, byte [ebp - 0x11]
push eax
movzx eax, byte [ebp - 5]
push eax
movzx eax, byte [ebp - 6]
push eax
movzx eax, byte [ebp - 7]
push eax
movzx eax, byte [ebp - 9]
push eax
movzx eax, byte [ebp - 0xb]
push eax
movzx eax, byte [ebp - 0xd]
push eax
push esi
push str._0x_p___02x__02x__02x__02x__02x__02x__02x__02x__02x__02x__02x__02x__02x__02x__02x__02x___c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_c_n
push dword [ebp - 4]
call ebx
add esp, 0x8c
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_LocalFree]
sub dword [ebp + 8], 0x10
add esi, 0x10
dec dword [ebp - 0x18]
jne 0x4068cd
xor eax, eax
cmp dword [ebp + 8], eax
je 0x406b38
mov dword [ebp + 0xc], eax
jbe 0x406ab1
lea eax, [ebp - 0x818]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax + esi]
push eax
push str.__02x
push dword [ebp - 4]
call sub.ntdll.dll_sprintf
add dword [ebp - 4], 3
add esp, 0xc
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp + 8]
jb 0x406a8a
mov eax, dword [ebp + 8]
imul eax, eax, 3
mov dword [ebp - 0x18], eax
lea eax, [ebp + eax - 0x818]
push 0x40a5f4
push eax
call sub.ntdll.dll_sprintf
and dword [ebp + 0xc], 0
cmp dword [ebp + 8], 0
pop ecx
pop ecx
jbe 0x406b13
mov eax, dword [ebp - 0x18]
lea eax, [ebp + eax - 0x815]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov al, byte [eax + esi]
call fcn.0040682b
movsx eax, al
push eax
push 0x40a6cc
push dword [ebp - 4]
call sub.ntdll.dll_sprintf
add dword [ebp - 4], 3
add esp, 0xc
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp + 8]
jb 0x406ae5
push 0x100000
push 0x40
call edi
mov esi, eax
lea eax, [ebp - 0x818]
push eax
push esi
call ebx
pop ecx
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
pop edi
pop ebx
pop esi
leave
ret 8