Function at 0x140016790
Capabilities:
Terminate process

Disassembly:
push rbx
push rsi
push r12
push r15
sub rsp, 0x28
mov rbx, qword [rcx]
xor r12d, r12d
mov rsi, rdx
mov r15, rcx
test rbx, rbx
je 0x140016854
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x1400167fc
mov rdx, qword [rbx + 0x40]
sub rdx, rcx
sar rdx, 1
add rdx, rdx
cmp rdx, 0x1000
jb 0x1400167eb
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400168ae
mov rcx, r8
call fcn.14004935c
mov qword [rbx + 0x30], r12
mov qword [rbx + 0x38], r12
mov qword [rbx + 0x40], r12
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x140016844
mov rdx, qword [rbx + 0x28]
sub rdx, rcx
sar rdx, 1
add rdx, rdx
cmp rdx, 0x1000
jb 0x140016833
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400168ae
mov rcx, r8
call fcn.14004935c
mov qword [rbx + 0x18], r12
mov qword [rbx + 0x20], r12
mov qword [rbx + 0x28], r12
mov edx, 0x48
mov rcx, rbx
call fcn.14004935c
mov qword [r15], r12
add rsi, 0x28
mov qword [rsp + 0x58], rbp
mov rcx, rsi
mov qword [rsp + 0x60], rdi
call fcn.14001fac0
mov r8, qword [r15 + 0x10]
movabs r11, 0x2aaaaaaaaaaaaaab
mov r10, qword [r15 + 8]
mov rcx, r8
movzx edi, al
sub rcx, r10
mov rax, r11
imul rcx
mov r9, rdx
sar r9, 1
mov rax, r9
shr rax, 0x3f
add r9, rax
cmp rdi, r9
jae 0x1400168b5
lea rax, [rdi + rdi*2]
lea rcx, [r10 + rax*4]
mov qword [r15 + 0x10], rcx
jmp 0x140016908
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
jbe 0x140016908
mov rcx, qword [r15 + 0x18]
mov rax, r11
sub rcx, r10
imul rcx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdi, rdx
jbe 0x1400168e9
lea r8, [rsp + 0x50]
mov rdx, rdi
lea rcx, [r15 + 8]
call fcn.140016ee0
jmp 0x140016908
mov rax, rdi
sub rax, r9
je 0x140016904
xor ecx, ecx
mov qword [r8], rcx
mov dword [r8 + 8], ecx
add r8, 0xc
sub rax, 1
jne 0x1400168f1
mov qword [r15 + 0x10], r8
test rdi, rdi
je 0x140016954
mov qword [rsp + 0x20], r14
mov r14, r12
nop word [rax + rax]
mov rbx, qword [r15 + 8]
mov rcx, rsi
add rbx, r14
call fcn.14001fa20
mov rcx, rsi
mov dword [rbx], eax
call fcn.14001fa20
add r14, 0xc
mov dword [rbx + 4], eax
mov word [rbx + 9], r12w
mov byte [rbx + 8], r12b
sub rdi, 1
jne 0x140016920
mov r14, qword [rsp + 0x20]
mov rcx, rsi
call fcn.14001fac0
movzx ebx, al
cmp al, 0x31
je 0x1400169c7
cmp al, 0x33
je 0x1400169bd
cmp al, 0x45
je 0x1400169b3
cmp al, 0x57
je 0x1400169a9
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, str.Unknown_address_type
call fcn.140001940
mov rcx, rax
movzx edx, bl
call fcn.140001700
lea rdx, [0x140003880]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3
mov dword [r15 + 0x20], 2
jmp 0x1400169cb
mov dword [r15 + 0x20], 3
jmp 0x1400169cb
mov dword [r15 + 0x20], 1
jmp 0x1400169cb
mov dword [r15 + 0x20], r12d
mov rcx, rsi
mov dword [r15 + 0x24], r12d
call fcn.14001fac0
mov rcx, qword [r15 + 0x28]
cmp rcx, qword [r15 + 0x30]
je 0x1400169e5
mov qword [r15 + 0x30], rcx
test al, al
je 0x140016a25
movzx edi, al
nop dword [rax]
mov rcx, rsi
call fcn.14001f9e0
mov rdx, qword [r15 + 0x30]
mov word [rsp + 0x50], ax
cmp rdx, qword [r15 + 0x38]
je 0x140016a11
mov word [rdx], ax
add qword [r15 + 0x30], 2
jmp 0x140016a1f
lea r8, [rsp + 0x50]
lea rcx, [r15 + 0x28]
call fcn.140002070
sub rdi, 1
jne 0x1400169f0
mov rcx, qword [r15 + 0x30]
lea rdi, [r15 + 0x28]
mov rax, rcx
sub rax, qword [r15 + 0x28]
sar rax, 1
cmp rax, 0xc
jae 0x140016a7a
mov ebp, 0xffffffff
mov word [rsp + 0x50], bp
cmp rcx, qword [r15 + 0x38]
je 0x140016a57
mov word [rcx], bp
add qword [rdi + 8], 2
jmp 0x140016a67
mov rdx, rcx
lea r8, [rsp + 0x50]
mov rcx, rdi
call fcn.140002070
mov rcx, qword [rdi + 8]
mov rax, rcx
sub rax, qword [rdi]
sar rax, 1
cmp rax, 0xc
jb 0x140016a42
mov rcx, rsi
call fcn.14001f9e0
mov rcx, qword [r15 + 0x40]
cmp rcx, qword [r15 + 0x48]
je 0x140016a90
mov qword [r15 + 0x48], rcx
cmp r12w, ax
jae 0x140016ad5
movzx edi, ax
nop dword [rax]
mov rcx, rsi
call fcn.14001f9e0
mov rdx, qword [r15 + 0x48]
mov word [rsp + 0x50], ax
cmp rdx, qword [r15 + 0x50]
je 0x140016ac1
mov word [rdx], ax
add qword [r15 + 0x48], 2
jmp 0x140016acf
lea r8, [rsp + 0x50]
lea rcx, [r15 + 0x40]
call fcn.140012910
sub rdi, 1
jne 0x140016aa0
mov rcx, rsi
call fcn.14001fac0
test al, al
mov rcx, rsi
setne al
mov byte [r15 + 0x58], al
call fcn.14001fa20
mov rbp, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
mov dword [r15 + 0x5c], eax
add rsp, 0x28
pop r15
pop r12
pop rsi
pop rbx
ret