Function at 0x1400226a0
Capabilities:
Print debug messages

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1400a9080]
xor rax, rsp
mov qword [rbp + 0x60], rax
mov rbx, rdx
mov r12d, ecx
cmp ecx, 5
jge 0x1400226fd
lea rcx, str.please_enter_cmd_param_:_imgFile_outFile_nTimeOut_keyCode__ipc__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, 2
jmp 0x140022dbd
mov ecx, 0x98
call fcn.140032264
mov r15, rax
mov qword [rsp + 0x20], rax
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj_struct_OCRParam_.0
mov qword [r15], rax
lea rsi, [r15 + 0x10]
xor edx, edx
mov r8d, 0x88
mov rcx, rsi
call fcn.1400508a0
xor r13d, r13d
mov qword [rsi + 0x10], r13
mov qword [rsi + 0x18], 0xf
mov byte [rsi], r13b
mov qword [rsi + 0x30], r13
mov qword [rsi + 0x38], 0xf
mov byte [rsi + 0x20], r13b
mov qword [rsi + 0x50], r13
mov qword [rsi + 0x58], 0xf
mov byte [rsi + 0x40], r13b
mov qword [rsi + 0x70], r13
mov qword [rsi + 0x78], 0xf
mov byte [rsi + 0x60], r13b
mov dword [rsi + 0x80], r13d
xor eax, eax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x30], rsi
mov qword [rbp - 0x28], r15
mov rdx, qword [rbx + 8]
mov r14, 0xffffffffffffffff
mov r8, r14
nop dword [rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x1400227b0
mov rcx, rsi
call fcn.14000ebb0
mov rdx, qword [rbx + 0x10]
mov r8, r14
nop dword [rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x1400227d0
lea rcx, [rsi + 0x20]
call fcn.14000ebb0
mov rcx, qword [rbx + 0x18]
call fcn.1400578e8
mov dword [rsi + 0x80], eax
mov rdx, qword [rbx + 0x20]
mov r8, r14
nop dword [rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x140022800
lea rcx, [rsi + 0x40]
call fcn.14000ebb0
mov rdx, qword [rbx + 0x20]
mov r8, r14
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x140022820
lea rcx, [rsi + 0x60]
call fcn.14000ebb0
cmp r12d, 6
jl 0x140022853
mov rdx, qword [rbx + 0x28]
mov r8, r14
inc r8
cmp byte [rdx + r8], 0
jne 0x140022840
lea rcx, [rsi + 0x60]
call fcn.14000ebb0
xor eax, eax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rax
mov qword [rsp + 0x70], r13
lea rcx, [rsp + 0x78]
call fcn.1400280b0
mov qword [rbp - 0x78], r13
lea rdx, [rsi + 0x60]
lea rcx, [rsp + 0x70]
call fcn.140023a30
mov ecx, 0x80
call fcn.140032264
mov r12, rax
mov qword [rsp + 0x20], rax
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj_class_OCRApp_.0
mov qword [r12], rax
lea rdi, [r12 + 0x10]
mov qword [rsp + 0x30], rdi
mov qword [rdi + 0x10], r13
mov qword [rdi + 0x18], 0xf
mov byte [rdi], 0
mov qword [rdi + 0x20], r13
mov qword [rdi + 0x28], r13
mov qword [rdi + 0x30], r13
mov qword [rdi + 0x38], r13
mov qword [rdi + 0x40], r13
mov qword [rdi + 0x48], r13
lea rax, [rdi + 0x50]
mov qword [rsp + 0x28], rax
lea rbx, [rax + 8]
mov qword [rsp + 0x28], rbx
mov qword [rbx], r13
mov qword [rbx + 8], r13
xor r8d, r8d
xor edx, edx
call fcn.140028000
mov qword [rbx], rax
mov eax, r13d
xchg dword [rdi + 0x68], eax
mov eax, r13d
xchg dword [rdi + 0x6c], eax
xor eax, eax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x50], rdi
mov qword [rbp - 0x48], r12
lea ecx, [rax + 0x18]
call fcn.140032264
mov r13, rax
mov qword [rsp + 0x20], rax
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj_bool_.0
mov qword [r13], rax
lea rcx, [r13 + 0x10]
mov byte [rcx], 0
xor eax, eax
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x70], rcx
mov qword [rbp - 0x68], r13
lea ecx, [rax + 0x18]
call fcn.140032264
mov rdx, rax
mov qword [rsp + 0x20], rax
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj_int_.0
mov qword [rdx], rax
lea rcx, [rdx + 0x10]
mov dword [rcx], 1
xor eax, eax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], rdx
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], rax
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x38], rax
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x48], rax
movdqa xmmword [rbp + 0x10], xmm0
lock inc dword [r12 + 8]
mov rax, qword [rbp - 0x50]
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x18], r12
movdqa xmmword [rbp + 0x20], xmm0
lock inc dword [r13 + 8]
mov rax, qword [rbp - 0x70]
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], r13
movdqa xmmword [rbp + 0x30], xmm0
lock inc dword [rdx + 8]
mov rax, qword [rbp - 0x40]
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x38], rdx
movdqa xmmword [rbp + 0x40], xmm0
lock inc dword [r15 + 8]
mov rax, qword [rbp - 0x30]
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x48], r15
xor eax, eax
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rax
lea rdx, [rbp + 0x10]
lea rcx, [rbp - 0x60]
call fcn.140023270
nop
mov edi, dword [rsi + 0x80]
test edi, edi
jle 0x140022b9c
mov rsi, qword [rbp - 0x50]
mov qword [rsp + 0x30], rsi
movabs rbx, 0x112e0be826d694b3
call fcn.1400313f4
imul rcx, rax, 0x64
add rcx, 0x3b9aca00
mov rax, rbx
imul rcx
sar rdx, 0x1a
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov qword [rsp + 0x40], rdx
imul rax, rdx, 0x3b9aca00
sub rcx, rax
mov dword [rsp + 0x48], ecx
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rbp + 0x50], xmm0
lea rcx, [rbp + 0x50]
call fcn.140031274
dec edi
mov ebx, dword [rsi + 0x68]
mov esi, dword [rsi + 0x6c]
cmp qword [rbp - 0x78], 0
je 0x140022b3a
xor eax, eax
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rax
lea rax, [rsp + 0x78]
mov qword [rbp - 0x20], rax
mov byte [rbp - 0x18], 0
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140022b0d
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, 0xffffff7f
je 0x140022b07
xor cl, cl
jmp 0x140022b0d
mov byte [rbp - 0x80], 1
mov cl, 1
mov byte [rbp - 0x18], cl
mov rax, qword [rbp - 0x78]
mov dword [rax + 8], ebx
mov dword [rax + 0xc], esi
test cl, cl
je 0x140022b32
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140022b2e
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [rbp - 0x80], 0
mov qword [rbp - 0x20], 0
mov rbx, qword [rbp - 0x60]
mov rax, qword [rbp - 0x70]
test edi, edi
jle 0x140022b55
cmp byte [rax], 0
jne 0x140022b5a
mov rsi, qword [rsp + 0x30]
jmp 0x140022a6d
cmp byte [rax], 0
je 0x140022b65
cmp dword [rbx + 8], 0
je 0x140022b6b
mov rcx, rbx
jmp 0x140022ba0
cmp dword [rbx + 8], 0
jne 0x140022b75
mov ecx, 1
call fcn.140030ca4
movups xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x60], xmm0
lea rcx, [rsp + 0x60]
call fcn.1400311dc
test eax, eax
je 0x140022b92
mov ecx, eax
call fcn.140030c68
xor edi, edi
mov qword [rbx], rdi
mov dword [rbx + 8], edi
jmp 0x140022ba7
mov rcx, qword [rbp - 0x60]
call fcn.140022630
xor edi, edi
mov rax, qword [rbp - 0x40]
mov ebx, dword [rax]
mov dword [rsp + 0x28], ebx
cmp qword [rbp - 0x78], 0
je 0x140022c8c
xor eax, eax
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], rax
lea rax, [rsp + 0x78]
mov qword [rbp - 0x10], rax
mov byte [rbp - 8], 0
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140022bf9
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, 0xffffff7f
je 0x140022bf3
xor cl, cl
jmp 0x140022bf9
mov byte [rbp - 0x80], 1
mov cl, 1
mov byte [rbp - 8], cl
mov rax, qword [rbp - 0x78]
mov dword [rax + 4], ebx
test cl, cl
je 0x140022c1b
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140022c17
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [rbp - 0x80], 0
mov qword [rbp - 0x10], rdi
cmp qword [rbp - 0x78], 0
je 0x140022c8c
xor eax, eax
mov qword [rbp], rax
mov qword [rbp + 8], rax
lea rax, [rsp + 0x78]
mov qword [rbp], rax
mov byte [rbp + 8], 0
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140022c63
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, 0xffffff7f
je 0x140022c5d
xor cl, cl
jmp 0x140022c63
mov byte [rbp - 0x80], 1
mov cl, 1
mov byte [rbp + 8], cl
mov rax, qword [rbp - 0x78]
mov dword [rax], 1
test cl, cl
je 0x140022c88
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140022c84
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [rbp - 0x80], 0
mov qword [rbp], rdi
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x140022cc6
mov eax, r14d
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140022cc6
mov rbx, qword [rbp - 0x58]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140022cc6
mov rcx, qword [rbp - 0x58]
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rcx, [rbp + 0x10]
call fcn.1400230e0
nop
mov eax, r14d
mov rbx, qword [rsp + 0x20]
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140022d01
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140022d01
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
mov eax, r14d
lock xadd dword [r13 + 8], eax
cmp eax, 1
jne 0x140022d31
mov rax, qword [r13]
mov rcx, r13
call qword [rax]
mov eax, r14d
lock xadd dword [r13 + 0xc], eax
cmp eax, 1
jne 0x140022d31
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 8]
nop
mov eax, r14d
lock xadd dword [r12 + 8], eax
cmp eax, 1
jne 0x140022d63
mov rax, qword [r12]
mov rcx, r12
call qword [rax]
mov eax, r14d
lock xadd dword [r12 + 0xc], eax
cmp eax, 1
jne 0x140022d63
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 8]
nop
lea rcx, [rsp + 0x78]
call fcn.1400280d0
mov rbx, qword [rsp + 0x70]
test rbx, rbx
je 0x140022d8d
mov rcx, rbx
call fcn.140028120
mov edx, 0x18
mov rcx, rbx
call fcn.140032254
nop
mov eax, r14d
lock xadd dword [r15 + 8], eax
cmp eax, 1
jne 0x140022db9
mov rax, qword [r15]
mov rcx, r15
call qword [rax]
lock xadd dword [r15 + 0xc], r14d
cmp r14d, 1
jne 0x140022db9
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 8]
nop
mov eax, dword [rsp + 0x28]
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.140032230
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret