Function at 0x1800196c8
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x790]
sub rsp, 0x890
mov rax, qword [0x180052d00]
xor rax, rsp
mov qword [rbp + 0x780], rax
mov rdi, rdx
mov r15, rcx
test r8d, r8d
je 0x18001982b
sub r8d, 1
je 0x18001981b
cmp r8d, 1
je 0x18001972b
lea rcx, str.Decode_Error____n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x18001995c
mov ebx, dword [rcx + 0x45c]
mov dword [rsp + 0x40], 0xf00
xor edx, edx
mov r8d, 0x400
lea rcx, [rbp - 0x80]
call fcn.18003b660
lea r14, [rdi + 4]
lea r8, [rsp + 0x40]
mov edx, dword [rdi]
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_IsTextUnicode]
neg eax
sbb ecx, ecx
not ecx
and ecx, 0xfde9
and qword [rsp + 0x38], 0
and qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x100
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
or r9d, 0xffffffff
mov r8, r14
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea esi, [rax - 1]
cmp ebx, 2
jbe 0x180019800
lea rcx, [rsp + 0x48]
call fcn.18001fb20
nop
mov byte [rsp + 0x71], 0
mov edx, 3
cmp ebx, edx
jne 0x1800197be
mov edx, 2
jmp 0x1800197c3
cmp ebx, 4
jne 0x1800197e0
lea rcx, [rsp + 0x48]
call fcn.180020054
mov r8d, esi
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x48]
call fcn.18001fe1c
mov dword [rdi], eax
movsxd r8, dword [rdi]
mov rdx, qword [rsp + 0x60]
mov rcx, r14
call fcn.18003afc0
nop
lea rcx, [rsp + 0x48]
call fcn.18001fb68
jmp 0x18001995c
mov r8d, esi
lea rdx, [rbp - 0x80]
mov rcx, r14
call fcn.18003afc0
mov byte [rsi + rdi + 4], 0
mov dword [rdi], esi
jmp 0x18001995c
lea rcx, [rdx + 4]
call fcn.18002e3c0
mov dword [rdi], eax
jmp 0x18001995c
lea rcx, [rdx + 4]
call fcn.18002e3c0
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.180020730
mov rsi, rax
mov rcx, rbx
call fcn.180020730
mov r14, rax
test rsi, rsi
je 0x180019942
test rax, rax
je 0x180019954
mov byte [rsi], 0
lea rdx, [rdi + 4]
mov rcx, rax
call fcn.18002e920
mov rcx, r14
jmp 0x18001987f
mov rdx, rax
call fcn.18002e880
xor ecx, ecx
lea rdx, [0x18003fc9c]
call fcn.18002ebdc
mov rcx, rsi
test rax, rax
jne 0x180019875
call fcn.18002e3c0
mov rbx, rax
test al, 1
je 0x1800198e9
call qword [sym.imp.USER32.dll_GetActiveWindow]
and qword [rsp + 0x20], 0
mov r12d, 0x30
mov r9d, r12d
lea r8, str.MsgBox_OddDigits
mov rdx, qword [r15 + 0x20]
mov rcx, qword [r15 + 8]
call fcn.1800191d0
test eax, eax
jne 0x1800198e7
mov r9d, r12d
lea r8, str.Hex_Editor
lea rdx, str.There_are_odd_digits._The_data_will_be_trunkated_
mov rcx, qword [r15 + 0x20]
call qword [sym.imp.USER32.dll_MessageBoxW]
dec ebx
lea eax, [rbx - 1]
movsxd rcx, eax
test eax, eax
js 0x180019934
lea r8, [rsi + rcx*2]
lea rdx, [rdi + 4]
add rdx, rcx
lea r9, [rcx + 1]
xor r10d, r10d
xor cl, cl
shl cl, 4
mov byte [rdx], cl
movsx rax, byte [r8 + r10]
lea r11, [0x180042980]
or cl, byte [rax + r11]
mov byte [rdx], cl
inc r10
cmp r10, 2
jl 0x180019907
dec rdx
sub r8, 2
sub r9, 1
jne 0x180019902
sar ebx, 1
mov dword [rdi], ebx
movsxd rax, ebx
mov byte [rax + rdi + 4], 0
jmp 0x180019947
test r14, r14
je 0x18001995c
mov rcx, r14
call fcn.180020640
test rsi, rsi
je 0x18001995c
mov rcx, rsi
call fcn.180020640
mov rcx, qword [rbp + 0x780]
xor rcx, rsp
call fcn.180020620
lea r11, [rsp + 0x890]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rbx, rdx
mov rdi, rcx
add rdx, 4
call fcn.180019c8c
mov r8d, dword [rdi + 0x458]
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp 0x1800196c8