Function at 0x1003ae20
Capabilities:
Print debug messages

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c
mov ecx, dword [ebp + 8]
mov eax, 0x80
mov dword [ebp - 0x10], eax
cmp dword [ecx + 0x24], 0
je 0x1003ae70
push ebx
push esi
push edi
lea esp, [esp]
mov edi, eax
xor esi, esi
mov dword [ebp - 4], edi
mov dword [ebp - 0x18], edi
test eax, eax
je 0x1003ae8b
add eax, 0x20
je 0x1003ae74
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edx, eax
test edx, edx
jne 0x1003ae76
push 0x100056d8
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor edx, edx
mov eax, edx
mov ecx, 0x20
and eax, 0x1f
sub ecx, eax
mov dword [edx + ecx - 4], ecx
lea ebx, [edx + ecx]
jmp 0x1003ae8d
xor ebx, ebx
test ebx, ebx
je 0x1003ae62
mov edx, dword [ebp + 0xc]
mov eax, ebx
mov dword [ebp - 0xc], eax
mov ecx, ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], eax
cmp edx, 1
ja 0x1003aee2
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x1003aee2
mov edi, 0x80
test edi, edi
je 0x1003af0c
lea eax, [edi + 0x20]
test eax, eax
je 0x1003aef2
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edx, eax
test edx, edx
jne 0x1003aef4
push 0x100056d8
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edi, dword [ebp - 4]
xor esi, esi
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 0xc]
cmp edx, 3
ja case.default.0x1003aeeb
jmp dword [edx*4 + 0x1003b1e4]
xor edx, edx
mov eax, edx
mov ecx, 0x20
and eax, 0x1f
sub ecx, eax
mov eax, dword [ebp + 0x10]
mov dword [edx + ecx - 4], ecx
lea esi, [edx + ecx]
jmp 0x1003af0e
xor esi, esi
test esi, esi
je 0x1003aecc
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x1003af3c
mov eax, dword [eax + 0x18]
test eax, eax
je 0x1003af24
mov eax, dword [eax]
jmp 0x1003af29
mov eax, 1
push eax
push ecx
push 0x10006a90
push edi
push esi
call fcn.10023eb0
add esp, 0x14
jmp 0x1003af4e
push dword [eax + 0x20]
push 0x10006a9c
push edi
push esi
call fcn.10023eb0
add esp, 0x10
test eax, eax
jns 0x1003af74
sub esi, dword [esi - 4]
je 0x1003af5e
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp + 0x10]
add edi, edi
cmp edi, 0x10000
jb 0x1003aeb2
jmp 0x1003aed7
push esi
push pe_nt_image_headers32
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x10]
dec eax
push eax
push ebx
call fcn.1003a320
add esp, 0x18
test eax, eax
js case.default.0x1003aeeb
mov eax, dword [ebp - 0x14]
mov ecx, eax
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], edi
jmp 0x1003aedf
dec edi
xor edx, edx
test ecx, ecx
jne 0x1003afb9
test edi, edi
jne 0x1003afc1
cmp edi, 0x7fffffff
jbe 0x1003afc6
mov edx, 0x80070057
test edx, edx
js 0x1003b026
test edi, edi
jne 0x1003afe9
test ecx, ecx
jne 0x1003afdc
mov edx, 0x80070057
jmp 0x1003b112
mov edx, 0x8007007a
mov dword [ebp - 0xc], ecx
jmp 0x1003b115
push ecx
push 0x10006b04
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
push eax
mov edx, edi
call fcn.1003a4a0
mov ecx, dword [ebp - 0x1c]
mov edx, eax
add dword [ebp - 8], ecx
sub edi, ecx
test edx, edx
jns 0x1003b01b
cmp edx, 0x8007007a
jne 0x1003b112
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], ecx
jmp 0x1003b115
test edi, edi
mov edi, dword [ebp - 4]
je 0x1003b115
mov byte [ecx], 0
jmp 0x1003b115
dec edi
xor edx, edx
test ecx, ecx
jne 0x1003b044
test edi, edi
jne 0x1003b04c
cmp edi, 0x7fffffff
jbe 0x1003b051
mov edx, 0x80070057
test edx, edx
js 0x1003b026
test edi, edi
jne 0x1003b067
test ecx, ecx
jne 0x1003b0cd
mov edx, 0x80070057
jmp 0x1003b112
push ecx
push 0x10006b18
jmp 0x1003b0dd
dec edi
xor edx, edx
test ecx, ecx
jne 0x1003b07a
test edi, edi
jne 0x1003b082
cmp edi, 0x7fffffff
jbe 0x1003b087
mov edx, 0x80070057
test edx, edx
js 0x1003b026
test edi, edi
jne 0x1003b09a
test ecx, ecx
jne 0x1003b0cd
mov edx, 0x80070057
jmp 0x1003b112
push ecx
push 0x10006b34
jmp 0x1003b0dd
dec edi
xor edx, edx
test ecx, ecx
jne 0x1003b0ad
test edi, edi
jne 0x1003b0b5
cmp edi, 0x7fffffff
jbe 0x1003b0ba
mov edx, 0x80070057
test edx, edx
js 0x1003b10b
test edi, edi
jne 0x1003b0d7
test ecx, ecx
jne 0x1003b0cd
mov edx, 0x80070057
jmp 0x1003b112
mov edx, 0x8007007a
mov dword [ebp - 0xc], ecx
jmp 0x1003b115
push ecx
push 0x10006b4c
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
push eax
mov edx, edi
call fcn.1003a4a0
mov ecx, dword [ebp - 8]
mov edx, eax
add ecx, dword [ebp - 0x1c]
sub edi, dword [ebp - 0x1c]
test edx, edx
jns 0x1003b106
cmp edx, 0x8007007a
jne 0x1003b112
mov dword [ebp - 0xc], ecx
jmp 0x1003b115
test edi, edi
je 0x1003b112
mov byte [ecx], 0
mov edi, dword [ebp - 4]
test edx, edx
js case.default.0x1003aeeb
lea ecx, [edi - 1]
xor eax, eax
test ecx, ecx
je 0x1003b12a
cmp ecx, 0x7fffffff
jbe 0x1003b12f
mov eax, 0x80070057
test eax, eax
js 0x1003b176
lea eax, [ebp + 0x18]
mov dword [ebp - 0x1c], 0
push eax
push dword [ebp + 0x14]
lea edi, [ecx - 1]
mov ecx, dword [ebp - 0xc]
push edi
push ecx
call dword [sym.imp.msvcrt.dll__vsnprintf]
add esp, 0x10
test eax, eax
js 0x1003b168
cmp eax, edi
ja 0x1003b168
jne 0x1003b163
mov eax, dword [ebp - 0xc]
mov byte [edi + eax], 0
mov eax, dword [ebp - 0x1c]
jmp 0x1003b180
mov eax, dword [ebp - 0xc]
mov byte [edi + eax], 0
mov eax, 0x8007007a
jmp 0x1003b180
test ecx, ecx
je 0x1003b180
mov ecx, dword [ebp - 0xc]
mov byte [ecx], 0
test eax, eax
jns 0x1003b1ad
test esi, esi
je 0x1003b194
sub esi, dword [esi - 4]
je 0x1003b194
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
sub ebx, dword [ebx - 4]
je 0x1003b1a0
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x10]
add eax, eax
mov dword [ebp - 0x10], eax
jmp 0x1003ae40
mov eax, dword [ebp + 8]
push ebx
push dword [eax + 0x24]
call fcn.10040020
add esp, 8
test esi, esi
je 0x1003b1cc
sub esi, dword [esi - 4]
je 0x1003b1cc
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
sub ebx, dword [ebx - 4]
je 0x1003ae6d
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret