Function at 0x140163510
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0xc0
mov r8, qword [rcx + 0x40]
mov rsi, rdx
mov eax, dword [rcx + 0x3c]
mov rbx, rcx
mov rdi, qword [rcx + 8]
add rax, r8
mov qword [rcx + 0x58], rax
cmp rdi, rdx
je 0x140162f3d
movzx eax, byte [rdi]
sub al, 1
mov byte [rdi], al
jne 0x140162f11
movzx eax, byte [rdi + 1]
mov edx, dword [rdi + 4]
and al, 0x10
add rdx, qword [rbx + 0x40]
movzx ecx, byte [rdx]
add ecx, 0xc0
shr ecx, 5
and cl, 8
add cl, al
mov byte [rdi + 1], cl
movzx eax, byte [rdx]
mov byte [rdi + 2], al
movzx eax, byte [rdx + 1]
add eax, 0xb
shr eax, 3
mov byte [rdi + 3], al
movzx eax, word [rdx + 2]
mov word [rdi + 4], ax
movzx eax, word [rdx + 4]
mov word [rdi + 6], ax
mov rax, qword [rbx + 0x60]
cmp rdx, rax
je 0x140162f07
mov dword [rdx], 0xffffffff
mov eax, dword [rbx + 0x128]
mov dword [rdx + 4], eax
movzx eax, byte [rbx + 0x80]
mov dword [rdx + 8], eax
sub edx, dword [rbx + 0x40]
inc dword [rbx + 0x1c0]
mov dword [rbx + 0x128], edx
jmp 0x140162f2a
add rax, 0xc
mov qword [rbx + 0x60], rax
jmp 0x140162f2a
movzx r8d, al
xor r9d, r9d
add r8d, 3
mov rdx, rdi
shr r8d, 1
mov rcx, rbx
call fcn.140162740
mov r8, qword [rbx + 0x40]
mov edi, dword [rdi + 8]
add rdi, r8
cmp rdi, rsi
jne 0x140162e83
cmp rdi, qword [rbx]
je 0x140162f94
movzx eax, byte [rdi]
test al, al
jne 0x140162f56
movzx eax, byte [rdi + 3]
inc eax
shr eax, 1
mov byte [rdi + 3], al
jmp 0x140162f85
add word [rdi + 2], 4
mov r8d, eax
movzx ecx, word [rdi + 2]
lea eax, [rax*4 + 0x80]
cmp ecx, eax
jbe 0x140162f85
add r8d, 2
mov r9d, 1
shr r8d, 1
mov rdx, rdi
mov rcx, rbx
call fcn.140162740
mov r8, qword [rbx + 0x40]
mov edi, dword [rdi + 8]
add rdi, r8
cmp rdi, qword [rbx]
jne 0x140162f42
cmp dword [rbx + 0x28], 0
je 0x140163103
mov rcx, rbx
call fcn.140162bd0
mov ecx, dword [rbx + 0x34]
shr ecx, 1
cmp eax, ecx
jb 0x140163103
mov rax, qword [rbx + 8]
mov qword [rsp + 0xd0], rbp
cmp dword [rax + 8], 0
je 0x140162fe0
nop word [rax + rax]
mov eax, dword [rax + 8]
add rax, r8
mov qword [rbx + 8], rax
cmp dword [rax + 8], 0
jne 0x140162fd0
lea rdi, [rsp + 0x20]
sub rdi, rbx
xor ebp, ebp
nop word [rax + rax]
mov rdx, qword [rbx + 8]
xor r8d, r8d
mov rcx, rbx
call fcn.140162830
xorps xmm0, xmm0
xor eax, eax
mov qword [rsp + 0xb0], rax
mov rax, qword [rbx + 0x48]
movups xmmword [rsp + 0x20], xmm0
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x80], xmm0
movups xmmword [rsp + 0x90], xmm0
movups xmmword [rsp + 0xa0], xmm0
cmp rax, qword [rbx + 0x50]
je 0x14016304e
mov dword [rax], ebp
mov rdx, qword [rbx + 0x60]
cmp dword [rdx], 0xffffffff
jne 0x14016307f
nop word [rax + rax]
mov ecx, dword [rdx + 8]
mov dword [rdx], ebp
movzx eax, byte [rcx + rbx + 0xa7]
inc dword [rsp + rax*4 + 0x20]
lea rax, [rcx + rcx*2]
cmp dword [rdx + rax*4], 0xffffffff
lea rdx, [rdx + rax*4]
je 0x140163060
mov qword [rbx + 0x60], rdx
lea r10, [rbx + 0x1c0]
mov r11d, 0x26
mov ecx, dword [rdi + r10 - 0x1c0]
test ecx, ecx
je 0x1401630cd
lea r9, [r10 - 0x98]
mov r8d, dword [r9]
sub dword [r10], ecx
nop dword [rax]
mov eax, r8d
add rax, qword [rbx + 0x40]
mov r8d, dword [rax + 4]
cmp dword [rax], ebp
je 0x1401630c5
lea r9, [rax + 4]
jmp 0x1401630b0
mov dword [r9], r8d
add ecx, 0xffffffff
jne 0x1401630b0
add r10, 4
sub r11, 1
jne 0x140163090
mov rcx, rbx
call fcn.140162bd0
mov ecx, dword [rbx + 0x34]
shr ecx, 2
lea ecx, [rcx + rcx*2]
cmp eax, ecx
ja 0x140162ff0
mov eax, dword [rbx + 0x24]
mov dword [rbx + 0x38], ebp
mov rbp, qword [rsp + 0xd0]
mov dword [rbx + 0x18], eax
jmp 0x14016310b
mov rcx, rbx
call fcn.140162400
mov rax, qword [rbx + 8]
lea r11, [rsp + 0xc0]
mov rsi, qword [r11 + 0x20]
mov qword [rbx], rax
mov rbx, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret
push rbx
push rbp
push rdi
push r13
push r15
sub rsp, 0x40
xor ebp, ebp
mov rbx, rcx
mov rcx, qword [rcx + 0x10]
mov r10d, ebp
movzx r11d, byte [rcx + 1]
movzx r15d, word [rcx + 4]
movzx eax, word [rcx + 2]
movzx r13d, byte [rcx]
shl r15d, 0x10
or r15d, eax
mov dword [rsp + 0x70], r11d
cmp r11b, 0x1f
jae 0x1401635e1
mov rax, qword [rbx]
mov ecx, dword [rax + 8]
test ecx, ecx
je 0x1401635e1
mov rax, qword [rbx + 0x40]
cmp byte [rax + rcx], bpl
lea r8, [rax + rcx]
jne 0x140163581
movzx eax, byte [r8 + 3]
lea r10, [r8 + 2]
cmp al, 0x20
jae 0x1401635e1
inc al
mov byte [r10 + 1], al
jmp 0x1401635e1
mov r10d, dword [r8 + 4]
add r10, rax
cmp byte [r10], r13b
je 0x1401635cc
nop dword [rax]
mov r9, r10
add r10, 6
cmp byte [r10], r13b
jne 0x140163590
movzx eax, byte [r10 - 5]
cmp byte [r10 + 1], al
jb 0x1401635cc
mov eax, dword [r10 - 6]
mov ecx, dword [r10]
movzx edx, word [r10 + 4]
mov dword [r10], eax
movzx eax, word [r10 - 2]
mov word [r10 + 4], ax
mov dword [r10 - 6], ecx
mov word [r10 - 2], dx
mov r10, r9
movzx eax, byte [r10 + 1]
cmp al, 0x73
jae 0x1401635e1
add al, 2
mov byte [r10 + 1], al
add word [r8 + 2], 2
mov rdi, qword [rbx + 8]
cmp dword [rbx + 0x18], ebp
jne 0x140163648
test r15d, r15d
je 0x140163648
mov r9, qword [rbx]
mov r8, r10
mov edx, 1
mov rcx, rbx
call fcn.140163130
mov rcx, qword [rbx + 0x10]
mov rdx, rax
test rax, rax
jne 0x140163627
mov dword [rcx + 2], ebp
mov rdx, rdi
mov rcx, rbx
add rsp, 0x40
pop r15
pop r13
pop rdi
pop rbp
pop rbx
jmp 0x140162e50
sub eax, dword [rbx + 0x40]
mov word [rcx + 2], ax
shr eax, 0x10
mov word [rcx + 4], ax
mov qword [rbx + 8], rdx
mov qword [rbx], rdx
add rsp, 0x40
pop r15
pop r13
pop rdi
pop rbp
pop rbx
ret
mov rdx, qword [rbx + 0x58]
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0x38], rsi
lea rsi, [rdx + 1]
movzx ecx, byte [rax]
mov byte [rdx], cl
mov rcx, qword [rbx + 0x60]
mov qword [rbx + 0x58], rsi
cmp rsi, rcx
jae 0x140163a0c
sub esi, dword [rbx + 0x40]
mov qword [rsp + 0x88], rsi
test r15d, r15d
jne 0x14016369f
mov r8, qword [rbx]
mov rdx, r10
mov rcx, rbx
call fcn.140163390
mov r15, rax
test rax, rax
je 0x140163a0c
sub r15d, dword [rbx + 0x40]
jmp 0x1401636ca
mov eax, r15d
add rax, qword [rbx + 0x40]
cmp rax, rcx
jae 0x1401636cf
mov r9, qword [rbx]
mov r8, r10
xor edx, edx
mov rcx, rbx
call fcn.140163130
test rax, rax
je 0x140163a0c
sub eax, dword [rbx + 0x40]
mov r15d, eax
mov r11d, dword [rsp + 0x70]
add dword [rbx + 0x18], 0xffffffff
mov rcx, qword [rbx]
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r14
jne 0x1401636fb
cmp qword [rbx + 8], rcx
mov rax, rbp
mov esi, r15d
setne al
mov qword [rsp + 0x88], rsi
sub qword [rbx + 0x58], rax
movzx r12d, byte [rcx]
lea r14d, [r13 + 0xc0]
movzx r9d, word [rcx + 2]
shr r14d, 5
sub r9d, r12d
and r14b, 8
sub r9d, r11d
mov dword [rsp + 0x80], r14d
mov dword [rsp + 0x78], r9d
cmp rdi, rcx
je 0x1401639d6
nop
movzx ebp, byte [rdi]
test ebp, ebp
je 0x140163867
test bpl, 1
je 0x140163847
lea esi, [rbp + 1]
shr esi, 1
movzx r14d, byte [rsi + rbx + 0xa7]
movzx eax, byte [rsi + rbx + 0xa8]
cmp r14d, eax
je 0x14016383f
lea edx, [r14 + 1]
mov eax, dword [rbx + rdx*4 + 0x128]
test eax, eax
je 0x14016378e
mov r8d, eax
add r8, qword [rbx + 0x40]
mov eax, dword [r8 + 4]
dec dword [rbx + rdx*4 + 0x1c0]
mov dword [rbx + rdx*4 + 0x128], eax
jmp 0x1401637c0
movzx eax, byte [rdx + rbx + 0x80]
mov r8, qword [rbx + 0x48]
lea ecx, [rax + rax*2]
mov eax, dword [rbx + 0x50]
sub eax, r8d
shl ecx, 2
cmp eax, ecx
jb 0x1401637b5
mov eax, ecx
add rax, r8
mov qword [rbx + 0x48], rax
jmp 0x1401637c0
mov rcx, rbx
call fcn.1401621f0
mov r8, rax
test r8, r8
je 0x1401639ff
mov r9d, dword [rdi + 4]
lea rdx, [r8 + 8]
add r9, qword [rbx + 0x40]
mov rcx, r9
nop dword [rax + rax]
mov eax, dword [rcx]
lea rcx, [rcx + 0xc]
mov dword [rdx - 8], eax
lea rdx, [rdx + 0xc]
mov eax, dword [rcx - 8]
mov dword [rdx - 0x10], eax
mov eax, dword [rcx - 4]
mov dword [rdx - 0xc], eax
add esi, 0xffffffff
jne 0x1401637e0
mov dword [r9], 0xffffffff
mov eax, dword [rbx + r14*4 + 0x128]
mov dword [r9 + 4], eax
movzx eax, byte [r14 + rbx + 0x80]
mov dword [r9 + 8], eax
sub r9d, dword [rbx + 0x40]
inc dword [rbx + r14*4 + 0x1c0]
mov dword [rbx + r14*4 + 0x128], r9d
sub r8d, dword [rbx + 0x40]
mov r9d, dword [rsp + 0x78]
mov dword [rdi + 4], r8d
mov r14d, dword [rsp + 0x80]
movzx edx, word [rdi + 2]
lea eax, [rbp*2 + 1]
mov rsi, qword [rsp + 0x88]
add eax, ebp
cmp eax, r12d
adc edx, 0
jmp 0x14016390f
mov eax, dword [rbx + 0x128]
test eax, eax
je 0x140163888
mov edx, eax
add rdx, qword [rbx + 0x40]
mov eax, dword [rdx + 4]
dec dword [rbx + 0x1c0]
mov dword [rbx + 0x128], eax
jmp 0x1401638bf
movzx eax, byte [rbx + 0x80]
mov rdx, qword [rbx + 0x48]
lea ecx, [rax + rax*2]
mov eax, dword [rbx + 0x50]
sub eax, edx
shl ecx, 2
cmp eax, ecx
jb 0x1401638ad
mov eax, ecx
add rax, rdx
mov qword [rbx + 0x48], rax
jmp 0x1401638bf
xor edx, edx
mov rcx, rbx
call fcn.1401621f0
mov r9d, dword [rsp + 0x78]
mov rdx, rax
test rdx, rdx
je 0x1401639ff
movzx ecx, byte [rdi + 2]
mov eax, edx
movzx r8d, byte [rdi + 3]
mov byte [rdx], cl
movzx ecx, word [rdi + 4]
mov word [rdx + 2], cx
movzx ecx, word [rdi + 6]
mov word [rdx + 4], cx
sub eax, dword [rbx + 0x40]
mov dword [rdi + 4], eax
cmp r8d, 0x1e
jae 0x1401638f6
add r8d, r8d
jmp 0x1401638fc
mov r8d, pe_nt_image_headers64
mov byte [rdx + 1], r8b
xor edx, edx
cmp r12d, 2
seta dl
add edx, dword [rbx + 0x1c]
add edx, r8d
lea rax, [rbp + 1]
add r9d, edx
lea rcx, [rax + rax*2]
inc bpl
mov eax, dword [rdi + 4]
lea r10d, [rdx + 6]
imul r10d, dword [rsp + 0x70]
lea r11, [rax + rcx*2]
mov eax, esi
add r11, qword [rbx + 0x40]
shr eax, 0x10
add r10d, r10d
mov byte [r11], r13b
mov byte [rdi], bpl
mov word [r11 + 4], ax
lea eax, [r9 + r9*2]
mov word [r11 + 2], si
add eax, eax
or byte [rdi + 1], r14b
cmp r10d, eax
jae 0x14016397f
xor r8d, r8d
lea eax, [r9*4]
cmp r10d, eax
setae r8b
xor eax, eax
cmp r10d, r9d
seta al
inc eax
add r8d, eax
mov eax, 4
jmp 0x1401639b6
xor ebp, ebp
imul eax, r9d, 0xf
mov r8d, ebp
mov ecx, ebp
cmp r10d, eax
lea eax, [r9 + r9*8]
seta r8b
cmp r10d, eax
lea eax, [r9 + r9*2]
seta cl
shl eax, 2
add ecx, 4
add r8d, ecx
mov ecx, ebp
cmp r10d, eax
seta cl
add r8d, ecx
mov eax, r8d
mov r9d, dword [rsp + 0x78]
add dx, ax
mov word [rdi + 2], dx
mov byte [r11 + 1], r8b
mov edi, dword [rdi + 8]
add rdi, qword [rbx + 0x40]
cmp rdi, qword [rbx]
jne 0x140163730
mov edx, r15d
add rdx, qword [rbx + 0x40]
mov qword [rbx], rdx
mov qword [rbx + 8], rdx
mov r12, qword [rsp + 0x30]
mov r14, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x38]
add rsp, 0x40
pop r15
pop r13
pop rdi
pop rbp
pop rbx
ret
mov rdx, rdi
mov rcx, rbx
call 0x140162e50
jmp 0x1401639e4
mov rdx, rdi
mov rcx, rbx
mov rsi, qword [rsp + 0x38]
add rsp, 0x40
pop r15
pop r13
pop rdi
pop rbp
pop rbx
jmp 0x140162e50