Function at 0x10001ad0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov edx, dword [ebp + 8]
xor eax, eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, edx
mov dword [ebp - 4], ecx
push edi
mov dword [ebp - 0x14], ebx
mov dword [ebp + 0xc], eax
cmp word [edx], ax
je 0x10001e06
cmp word [esi], 0x25
jne 0x10001de9
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
cmp eax, 0x25
je 0x10001de6
xor edi, edi
xor ecx, ecx
mov dword [ebp - 0x10], edi
mov dword [ebp - 8], ecx
test ax, ax
je 0x10001b76
mov edi, dword [ebp + 0xc]
cmp ax, 0x23
jne 0x10001b31
add edi, 2
jmp 0x10001b59
cmp ax, 0x2a
jne 0x10001b41
mov eax, dword [ebx]
add ebx, 4
mov dword [ebp - 8], eax
jmp 0x10001b59
cmp ax, 0x2d
je 0x10001b59
cmp ax, 0x2b
je 0x10001b59
cmp ax, 0x30
je 0x10001b59
cmp ax, 0x20
jne 0x10001b6a
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
test ax, ax
jne 0x10001b26
cmp dword [ebp - 8], 0
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x10]
jne 0x10001bb2
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
movzx ecx, word [esi]
add esp, 4
mov dword [ebp - 8], eax
test cx, cx
je 0x10001bb2
nop dword [eax + eax]
movzx ecx, cx
push ecx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswdigit]
add esp, 4
test eax, eax
je 0x10001bb2
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx ecx, word [esi]
test cx, cx
jne 0x10001b90
cmp word [esi], 0x2e
mov dword [ebp - 0x10], 0
jne 0x10001c17
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
push esi
cmp word [esi], 0x2a
jne 0x10001be1
mov eax, dword [ebx]
add ebx, 4
mov dword [ebp - 0x10], eax
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
jmp 0x10001c17
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
movzx ecx, word [esi]
add esp, 4
mov dword [ebp - 0x10], eax
test cx, cx
je 0x10001c17
movzx ecx, cx
push ecx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswdigit]
add esp, 4
test eax, eax
je 0x10001c17
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx ecx, word [esi]
test cx, cx
jne 0x10001bf5
movzx eax, word [esi]
mov dword [ebp - 0xc], 0
cmp eax, 0x49
jne 0x10001c40
cmp word [esi + 2], 0x36
jne 0x10001c40
cmp word [esi + 4], 0x34
jne 0x10001c40
add esi, 6
mov dword [ebp - 0xc], 0x40000
jmp case.0x10001c4f.71
add eax, 0xffffffba
cmp eax, 0x26
ja case.0x10001c4f.71
movzx eax, byte [eax + 0x10001f28]
jmp dword [eax*4 + 0x10001f18]
mov dword [ebp - 0xc], 0x10000
jmp case.0x10001c4f.70
mov dword [ebp - 0xc], 0x20000
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
or eax, dword [ebp - 0xc]
cmp eax, 0x10063
ja 0x10001d04
je 0x10001c9c
cmp eax, 0x73
ja 0x10001cf6
je 0x10001cdd
cmp eax, 0x43
je 0x10001c9c
cmp eax, 0x53
je 0x10001cc4
cmp eax, 0x63
jne 0x10001d65
mov edi, 2
add ebx, 4
mov eax, dword [ebp - 8]
cmp edi, eax
cmovg eax, edi
mov edi, eax
mov eax, dword [ebp - 0x10]
test eax, eax
je case.0x10001d7b.70
cmp edi, eax
cmovl eax, edi
mov edi, eax
add dword [ebp + 0xc], edi
jmp 0x10001ded
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x10001cd2
lea edi, [eax + 6]
jmp 0x10001ca4
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
jmp 0x10001d52
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x10001ceb
lea edi, [eax + 6]
jmp 0x10001ca4
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
jmp 0x10001d52
sub eax, 0x10043
je 0x10001c9c
sub eax, 0x10
je 0x10001cc4
jmp 0x10001d65
cmp eax, 0x20053
ja 0x10001d1d
je 0x10001d2d
cmp eax, 0x10073
je 0x10001cc4
cmp eax, 0x20043
je 0x10001c9c
jmp 0x10001d65
sub eax, 0x20063
je 0x10001c9c
sub eax, 0x10
jne 0x10001d65
mov edi, dword [ebx]
add ebx, 4
test edi, edi
jne 0x10001d40
mov edi, 6
jmp 0x10001ca4
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x10001d43
sub edi, ecx
sar edi, 1
cmp edi, 1
mov eax, 1
cmovl edi, eax
test edi, edi
jne 0x10001ca4
movzx eax, word [esi]
add eax, 0xffffffbb
cmp eax, 0x33
ja case.0x10001d7b.70
movzx eax, byte [eax + 0x10001f64]
jmp dword [eax*4 + 0x10001f50]
mov eax, dword [ebp - 0xc]
mov edi, 0x20
and eax, 0x40000
neg eax
sbb eax, eax
and eax, 4
add eax, 4
add ebx, eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 8]
cmp eax, edi
cmovge edi, eax
add dword [ebp + 0xc], edi
jmp 0x10001ded
push 0x1000f560
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
call dword [sym.imp.KERNEL32.dll_DebugBreak]
add dword [ebp + 0xc], edi
jmp 0x10001ded
mov eax, dword [ebp - 0x10]
mov edi, 0x20
add eax, dword [ebp - 8]
add ebx, 4
cmp eax, edi
jl case.0x10001d7b.70
mov edi, eax
add dword [ebp + 0xc], edi
jmp 0x10001ded
add ebx, 4
add dword [ebp + 0xc], edi
jmp 0x10001ded
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
mov eax, dword [ebp + 0xc]
cmp word [esi], 0
jne 0x10001af5
mov ecx, dword [ebp - 4]
mov edi, dword [ecx]
cmp dword [edi - 0xc], 1
lea esi, [edi - 0xc]
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
jg 0x10001e1c
cmp eax, dword [edi - 4]
jle 0x10001e6d
mov ebx, dword [edi - 8]
cmp eax, ebx
cmovl eax, ebx
push eax
call fcn.10002130
test eax, eax
je 0x10001f0a
lea eax, [ebx*2 + 2]
push eax
push edi
mov edi, dword [ebp - 4]
push dword [edi]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [edi]
add esp, 0xc
mov dword [eax - 8], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp esi, 0x10013024
je 0x10001e70
push esi
call ebx
test eax, eax
jg 0x10001e70
push esi
call fcn.1000cc77
add esp, 4
jmp 0x10001e70
mov edi, dword [ebp - 4]
mov eax, dword [edi]
test eax, eax
je 0x10001f0a
push dword [ebp - 0x14]
push dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_wvsprintfW]
mov edi, dword [edi]
cmp dword [edi - 0xc], 1
lea esi, [edi - 0xc]
jle 0x10001ee6
lea eax, [edi - 0xc]
cmp eax, 0x10013024
je 0x10001ebd
push esi
call ebx
mov ebx, dword [ebp - 4]
test eax, eax
jg 0x10001eb4
mov eax, dword [ebx]
sub eax, 0xc
push eax
call fcn.1000cc77
add esp, 4
mov eax, dword [0x10013034]
mov dword [ebx], eax
jmp 0x10001ec0
mov ebx, dword [ebp - 4]
push dword [esi + 4]
mov ecx, ebx
call fcn.10002130
test eax, eax
je 0x10001ee9
mov eax, dword [esi + 4]
lea eax, [eax*2 + 2]
push eax
push edi
push dword [ebx]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
jmp 0x10001ee9
mov ebx, dword [ebp - 4]
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [ebx]
xor edx, edx
pop edi
pop esi
mov dword [ecx - 8], eax
mov ecx, dword [ebx]
pop ebx
mov word [ecx + eax*2], dx
lea eax, [edx + 1]
mov esp, ebp
pop ebp
ret 8
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8