Function at 0x1003a830
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 0x1003a880
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 0x1003a89b
add eax, 0x20
je 0x1003a884
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edx, eax
test edx, edx
jne 0x1003a886
push 0x100056a8
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 0x1003a89d
xor ebx, ebx
test ebx, ebx
je 0x1003a872
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 0x1003a8f2
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x1003a8f2
mov edi, 0x80
test edi, edi
je 0x1003a91c
lea eax, [edi + 0x20]
test eax, eax
je 0x1003a902
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edx, eax
test edx, edx
jne 0x1003a904
push 0x100056a8
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.0x1003a8fb
jmp dword [edx*4 + 0x1003abf4]
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 0x1003a91e
xor esi, esi
test esi, esi
je 0x1003a8dc
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x1003a94c
mov eax, dword [eax + 0x18]
test eax, eax
je 0x1003a934
mov eax, dword [eax]
jmp 0x1003a939
mov eax, 1
push eax
push ecx
push 0x10006a60
push edi
push esi
call fcn.10023860
add esp, 0x14
jmp 0x1003a95e
push dword [eax + 0x20]
push 0x10006a6c
push edi
push esi
call fcn.10023860
add esp, 0x10
test eax, eax
jns 0x1003a984
sub esi, dword [esi - 4]
je 0x1003a96e
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp + 0x10]
add edi, edi
cmp edi, 0x10000
jb 0x1003a8c2
jmp 0x1003a8e7
push esi
push 0x100
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.10039d20
add esp, 0x18
test eax, eax
js case.default.0x1003a8fb
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 0x1003a8ef
dec edi
xor edx, edx
test ecx, ecx
jne 0x1003a9c9
test edi, edi
jne 0x1003a9d1
cmp edi, 0x7fffffff
jbe 0x1003a9d6
mov edx, 0x80070057
test edx, edx
js 0x1003aa36
test edi, edi
jne 0x1003a9f9
test ecx, ecx
jne 0x1003a9ec
mov edx, 0x80070057
jmp 0x1003ab22
mov edx, 0x8007007a
mov dword [ebp - 0xc], ecx
jmp 0x1003ab25
push ecx
push 0x10006ad4
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
push eax
mov edx, edi
call fcn.10039ea0
mov ecx, dword [ebp - 0x1c]
mov edx, eax
add dword [ebp - 8], ecx
sub edi, ecx
test edx, edx
jns 0x1003aa2b
cmp edx, 0x8007007a
jne 0x1003ab22
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], ecx
jmp 0x1003ab25
test edi, edi
mov edi, dword [ebp - 4]
je 0x1003ab25
mov byte [ecx], 0
jmp 0x1003ab25
dec edi
xor edx, edx
test ecx, ecx
jne 0x1003aa54
test edi, edi
jne 0x1003aa5c
cmp edi, 0x7fffffff
jbe 0x1003aa61
mov edx, 0x80070057
test edx, edx
js 0x1003aa36
test edi, edi
jne 0x1003aa77
test ecx, ecx
jne 0x1003aadd
mov edx, 0x80070057
jmp 0x1003ab22
push ecx
push 0x10006ae8
jmp 0x1003aaed
dec edi
xor edx, edx
test ecx, ecx
jne 0x1003aa8a
test edi, edi
jne 0x1003aa92
cmp edi, 0x7fffffff
jbe 0x1003aa97
mov edx, 0x80070057
test edx, edx
js 0x1003aa36
test edi, edi
jne 0x1003aaaa
test ecx, ecx
jne 0x1003aadd
mov edx, 0x80070057
jmp 0x1003ab22
push ecx
push 0x10006b04
jmp 0x1003aaed
dec edi
xor edx, edx
test ecx, ecx
jne 0x1003aabd
test edi, edi
jne 0x1003aac5
cmp edi, 0x7fffffff
jbe 0x1003aaca
mov edx, 0x80070057
test edx, edx
js 0x1003ab1b
test edi, edi
jne 0x1003aae7
test ecx, ecx
jne 0x1003aadd
mov edx, 0x80070057
jmp 0x1003ab22
mov edx, 0x8007007a
mov dword [ebp - 0xc], ecx
jmp 0x1003ab25
push ecx
push 0x10006b1c
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
push eax
mov edx, edi
call fcn.10039ea0
mov ecx, dword [ebp - 8]
mov edx, eax
add ecx, dword [ebp - 0x1c]
sub edi, dword [ebp - 0x1c]
test edx, edx
jns 0x1003ab16
cmp edx, 0x8007007a
jne 0x1003ab22
mov dword [ebp - 0xc], ecx
jmp 0x1003ab25
test edi, edi
je 0x1003ab22
mov byte [ecx], 0
mov edi, dword [ebp - 4]
test edx, edx
js case.default.0x1003a8fb
lea ecx, [edi - 1]
xor eax, eax
test ecx, ecx
je 0x1003ab3a
cmp ecx, 0x7fffffff
jbe 0x1003ab3f
mov eax, 0x80070057
test eax, eax
js 0x1003ab86
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 0x1003ab78
cmp eax, edi
ja 0x1003ab78
jne 0x1003ab73
mov eax, dword [ebp - 0xc]
mov byte [edi + eax], 0
mov eax, dword [ebp - 0x1c]
jmp 0x1003ab90
mov eax, dword [ebp - 0xc]
mov byte [edi + eax], 0
mov eax, 0x8007007a
jmp 0x1003ab90
test ecx, ecx
je 0x1003ab90
mov ecx, dword [ebp - 0xc]
mov byte [ecx], 0
test eax, eax
jns 0x1003abbd
test esi, esi
je 0x1003aba4
sub esi, dword [esi - 4]
je 0x1003aba4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
sub ebx, dword [ebx - 4]
je 0x1003abb0
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x10]
add eax, eax
mov dword [ebp - 0x10], eax
jmp 0x1003a850
mov eax, dword [ebp + 8]
push ebx
push dword [eax + 0x24]
call fcn.1003fa60
add esp, 8
test esi, esi
je 0x1003abdc
sub esi, dword [esi - 4]
je 0x1003abdc
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
sub ebx, dword [ebx - 4]
je 0x1003a87d
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret