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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x98
mov rdi, qword [rcx + 0x10]
xor eax, eax
mov r12, r8
mov byte [rsp + 0xe0], al
mov r14, rdx
mov qword [rsp + 0x50], rax
mov rbx, rcx
mov dword [rsp + 0x60], eax
lea edx, [rax + 0xf]
mov dword [rsp + 0x64], eax
xor r9d, r9d
mov qword [rsp + 0x88], rdi
xor r8d, r8d
mov dword [rsp + 0x20], eax
mov rcx, rdi
mov bpl, al
mov r15d, eax
call fcn.1401d9be0
mov r8, qword [rsp + 0x100]
lea r9d, [r15 + 1]
mov r14, qword [r14 + 0x20]
lea r10d, [r15 + 3]
mov rsi, qword [r12 + 0x20]
xor r13d, r13d
mov dword [rsp + 0x68], eax
movabs rcx, 0x8000000000000000
mov rdx, qword [r8 + 0x60]
xor r8d, r8d
mov rax, qword [rsp + 0xe8]
mov dword [rsp + 0x40], r13d
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x48], rdx
movsxd rax, dword [rax + 0x14]
imul rax, rax, 0x38
mov qword [rsp + 0x58], r8
add rax, r14
mov qword [rsp + 0x78], rax
cmp r14, rax
jae 0x140164fdd
test byte [r14 + 0x12], 2
mov rsi, qword [r14]
jne 0x140164ee7
test byte [r12 + 0x3c], 0x40
jne 0x140164ee7
mov eax, dword [rsi + 4]
and eax, r9d
test byte [r12 + 0x3c], 8
je 0x140164e1b
test eax, eax
je 0x140164ee7
mov eax, dword [r12 + 0x44]
cmp dword [rsi + 0x34], eax
jmp 0x140164e1d
test eax, eax
jne 0x140164ee7
mov r8d, dword [r12 + 0x44]
mov edx, r10d
mov rcx, rsi
call fcn.14016a04c
test eax, eax
je 0x140164ee7
test rsi, rsi
je 0x140164e54
mov rcx, qword [rbx]
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
call fcn.140169a78
mov rsi, rax
mov rbp, qword [rbx]
test r15, r15
jne 0x140164e61
mov r15, rsi
jmp 0x140164eda
test rsi, rsi
je 0x140164eda
mov eax, dword [r15 + 4]
mov ecx, 0x20000001
and eax, ecx
lea edx, [rcx - 1]
cmp eax, edx
je 0x140164e81
mov eax, dword [rsi + 4]
and eax, ecx
cmp eax, edx
jne 0x140164ec4
cmp byte [rbx + 0x134], 2
jae 0x140164ec4
mov r8, r15
lea rdx, [0x1401b5e48]
mov rcx, rbx
call fcn.1401cbce4
mov r8, rsi
lea rdx, [0x1401b5e48]
mov rcx, rbx
call fcn.1401cbce4
lea r8, [0x1402de754]
mov edx, 0x9b
mov rcx, rbp
call fcn.1401b2fac
jmp 0x140164ed7
mov r9, rsi
mov r8, r15
mov edx, 0x2c
mov rcx, rbx
call fcn.1401c9a94
mov r15, rax
mov bpl, byte [rsp + 0xe0]
mov qword [rsp + 0x50], r15
mov r8, qword [rsp + 0xf8]
mov rdx, r12
mov rcx, r14
call fcn.1401eef74
test eax, eax
je 0x140164fa0
movsxd rcx, dword [r14 + 0x20]
mov esi, 1
shl rsi, cl
movabs rax, 0x8000000000000000
cmp ecx, 0x40
cmovge rsi, rax
test bpl, bpl
jne 0x140164f54
mov rax, qword [rsp + 0x80]
lea rcx, [rcx + rcx*2]
lea rdx, str.automatic_index_on__s__s_
mov r9, qword [rax + 8]
mov r8, qword [rax]
mov r9, qword [r9 + rcx*8]
mov ecx, 0x11c
call fcn.140145c8c
mov byte [rsp + 0xe0], 1
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x48]
test r8, rsi
jne 0x140164faa
mov rcx, qword [rbx]
lea ebp, [r13 + 1]
mov r8d, ebp
call fcn.1401f9d3c
test eax, eax
jne 0x140165520
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x48]
or r8, rsi
movsxd rcx, r13d
mov r13d, ebp
mov dword [rsp + 0x40], ebp
mov qword [rsp + 0x58], r8
mov rax, qword [rdx + 0x48]
mov qword [rax + rcx*8], r14
jmp 0x140164faa
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x48]
mov bpl, byte [rsp + 0xe0]
mov r9d, 1
add r14, 0x38
lea r10d, [r9 + 2]
cmp r14, qword [rsp + 0x78]
jb 0x140164de1
mov rsi, qword [rsp + 0x80]
movabs rcx, 0x8000000000000000
mov word [rdx + 0x3c], r13w
not r8
mov word [rdx + 0x18], r13w
or r8, rcx
mov dword [rdx + 0x38], 0x4241
mov r14d, 0x3f
and r8, qword [r12 + 0x50]
xor edx, edx
mov qword [rsp + 0x58], r8
cmp r14w, word [rsi + 0x36]
jge 0x14016501a
mov ebp, r14d
mov dword [rsp + 0xe0], r14d
jmp 0x140165029
movsx ebp, word [rsi + 0x36]
mov dword [rsp + 0xe0], ebp
test ebp, ebp
jle 0x140165045
mov eax, edx
lea ecx, [r13 + 1]
bt r8, rax
cmovae ecx, r13d
add edx, r9d
mov r13d, ecx
cmp edx, ebp
jl 0x140165029
mov dword [rsp + 0x40], ecx
cmp qword [r12 + 0x50], 0
jge 0x14016505d
movsx eax, word [rsi + 0x36]
add r13d, 0xffffffc1
add r13d, eax
mov dword [rsp + 0x40], r13d
mov rcx, qword [rbx]
lea edx, [r9 + r13]
lea r9, [rsp + 0x70]
xor r8d, r8d
call fcn.1401a6dcc
mov r15, rax
test rax, rax
je 0x140165520
mov rax, qword [rsp + 0x48]
lea r10, [0x1402d890c]
xor r12d, r12d
and qword [rsp + 0x70], r12
mov qword [rax + 0x20], r15
lea rax, str.auto_index
mov qword [r15], rax
mov rax, qword [rsp + 0xe8]
mov qword [r15 + 0x18], rsi
mov rsi, qword [rax + 0x20]
cmp rsi, qword [rsp + 0x78]
jae 0x140165190
mov r14, qword [rsp + 0x70]
xor r13d, r13d
mov rbp, qword [rsp + 0xf0]
xor edi, edi
mov r8, qword [rsp + 0xf8]
mov rdx, rbp
mov rcx, rsi
call fcn.1401eef74
test eax, eax
je 0x140165160
mov ecx, dword [rsi + 0x20]
mov eax, 1
shl rax, cl
cmp ecx, 0x40
movabs rcx, 0x8000000000000000
cmovge rax, rcx
test r14, rax
jne 0x140165160
mov rdx, qword [rsi]
or r14, rax
mov rcx, qword [r15 + 8]
movzx eax, word [rsi + 0x20]
mov word [rdi + rcx], ax
test dword [rdx + 4], 0x400
je 0x140165129
mov rax, qword [rdx + 0x18]
mov r8, qword [rdx + 0x10]
jmp 0x140165131
mov rax, qword [rdx + 0x10]
mov r8, qword [rdx + 0x18]
mov rdx, rax
mov rcx, rbx
call fcn.1401a94d0
test rax, rax
je 0x140165146
mov rcx, qword [rax]
jmp 0x14016514d
lea rcx, [0x1402d890c]
mov rax, qword [r15 + 0x40]
inc r12d
add rdi, 2
mov qword [rax + r13], rcx
add r13, 8
add rsi, 0x38
cmp rsi, qword [rsp + 0x78]
jb 0x1401650cc
mov rdi, qword [rsp + 0x88]
lea r10, [0x1402d890c]
mov ebp, dword [rsp + 0xe0]
mov r14d, 0x3f
mov r13d, dword [rsp + 0x40]
xor ecx, ecx
lea r11d, [rcx + 1]
test ebp, ebp
jle 0x1401651d9
mov r9, qword [rsp + 0x58]
movsxd rax, r12d
lea rdx, [rax*8]
lea r8, [rax + rax]
mov eax, ecx
bt r9, rax
jae 0x1401651d2
mov rax, qword [r15 + 8]
add r12d, r11d
mov word [r8 + rax], cx
add r8, 2
mov rax, qword [r15 + 0x40]
mov qword [rdx + rax], r10
add rdx, 8
add ecx, r11d
cmp ecx, ebp
jl 0x1401651ae
mov rax, qword [rsp + 0xf0]
cmp qword [rax + 0x50], 0
jge 0x14016522f
mov r8, qword [rsp + 0x80]
cmp r14w, word [r8 + 0x36]
jge 0x14016522f
movsxd rax, r12d
lea rcx, [rax*8]
lea rdx, [rax + rax]
mov rax, qword [r15 + 8]
add r12d, r11d
mov word [rdx + rax], r14w
add r14d, r11d
mov rax, qword [r15 + 0x40]
lea rdx, [rdx + 2]
mov qword [rcx + rax], r10
lea rcx, [rcx + 8]
movsx eax, word [r8 + 0x36]
cmp r14d, eax
jl 0x140165206
mov rax, qword [r15 + 8]
lea r9d, [r13 + 1]
mov rsi, qword [rsp + 0x100]
mov edx, 0x74
and dword [rsp + 0x20], 0
movsxd rcx, r12d
or word [rax + rcx*2], 0xffff
mov rax, qword [r15 + 0x40]
mov qword [rax + rcx*8], r10
mov rcx, rdi
mov eax, dword [rbx + 0x34]
mov dword [rsi + 8], eax
add dword [rbx + 0x34], r11d
mov r8d, dword [rsi + 8]
call fcn.1401d9be0
mov rdx, r15
mov rcx, rbx
call fcn.1401e4864
mov rax, qword [rbx]
test dword [rax + 0x60], 0x80000
jne 0x1401652ad
mov r9d, dword [rbx + 0x38]
mov edx, 0x4d
and dword [rsp + 0x20], 0
inc r9d
mov dword [rbx + 0x38], r9d
mov r8d, 0x2710
mov rcx, rdi
mov dword [rsi + 0x34], r9d
call fcn.1401d9be0
movzx eax, byte [rsi + 0x40]
imul rbp, rax, 0x68
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax]
mov r14, qword [rax + 8]
test byte [r14 + rbp + 0x48], 0x20
je 0x14016530e
mov esi, dword [r14 + rbp + 0x3c]
xor r9d, r9d
and dword [rsp + 0x20], 0
xor r8d, r8d
mov rcx, rdi
lea edx, [r9 + 0x47]
call fcn.1401d9be0
mov ecx, dword [r14 + rbp + 0x38]
xor r9d, r9d
mov dword [rsp + 0x20], ecx
mov r8d, esi
mov rcx, rdi
mov dword [rsp + 0x64], eax
lea edx, [r9 + 0xb]
call fcn.1401d9be0
mov edx, 0xc
jmp 0x140165316
mov esi, dword [rsi + 4]
mov edx, 0x24
and dword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, esi
mov rcx, rdi
call fcn.1401d9be0
mov r13d, eax
mov edx, 0x10
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x140165360
dec dword [rbx + 0x44]
mov r9d, edx
mov ecx, dword [rbx + 0x44]
mov rdx, rax
mov dword [rsp + 0x60], ecx
mov r8d, ecx
mov rcx, rbx
call fcn.1401b60c0
mov rax, qword [rsp + 0x48]
bts dword [rax + 0x38], 0x11
mov al, byte [rbx + 0x1f]
test al, al
jne 0x140165374
mov eax, 1
add dword [rbx + 0x38], eax
mov esi, dword [rbx + 0x38]
jmp 0x140165383
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov esi, dword [rbx + rax*4 + 0xe4]
and dword [rsp + 0x38], 0
mov r9d, esi
mov r8, qword [rsp + 0x100]
mov rdx, r15
and qword [rsp + 0x30], 0
mov rcx, rbx
and qword [rsp + 0x28], 0
and dword [rsp + 0x20], 0
mov r8d, dword [r8 + 4]
call fcn.1401c41f8
mov r15d, eax
mov rax, qword [rsp + 0x100]
mov r8d, dword [rax + 0x34]
test r8d, r8d
je 0x1401653f1
mov rax, qword [rsp + 0x48]
xor r9d, r9d
mov edx, 0xb4
movzx ecx, word [rax + 0x18]
mov dword [rsp + 0x28], ecx
mov rcx, rdi
mov dword [rsp + 0x20], r15d
call fcn.1401d9cf4
mov rax, qword [rsp + 0x100]
mov r8d, dword [rax + 8]
mov r9d, esi
and dword [rsp + 0x20], 0
mov edx, 0x8a
mov rcx, rdi
call fcn.1401d9be0
movsxd rax, dword [rdi + 0x90]
test eax, eax
jle 0x140165427
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
mov word [rax + rcx*8 - 0x16], 0x10
cmp qword [rsp + 0x50], 0
je 0x14016543b
mov edx, dword [rsp + 0x60]
mov rcx, rdi
call fcn.1401e45ec
test byte [r14 + rbp + 0x48], 0x20
je 0x1401654b2
mov rax, qword [rdi]
cmp byte [rax + 0x67], 0
je 0x140165455
lea rcx, [0x14033a6b8]
jmp 0x140165469
movsxd rax, dword [rsp + 0x64]
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
lea rcx, [rax + rcx*8]
lea eax, [r15 + r12]
mov edx, r13d
mov dword [rcx + 8], eax
mov rcx, qword [rsp + 0x100]
mov r9d, dword [r14 + rbp + 0x40]
mov eax, dword [rcx + 8]
mov r8d, dword [rcx + 4]
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.1401ef410
and dword [rsp + 0x20], 0
xor r8d, r8d
mov r9d, r13d
mov rcx, rdi
lea edx, [r8 + 9]
call fcn.1401d9be0
and dword [r14 + rbp + 0x48], 0xffffffdf
jmp 0x1401654f1
mov rax, qword [rsp + 0x100]
lea r9d, [r13 + 1]
and dword [rsp + 0x20], 0
mov edx, 0x27
mov rcx, rdi
mov r8d, dword [rax + 4]
call fcn.1401d9be0
movsxd rax, dword [rdi + 0x90]
test eax, eax
jle 0x1401654f1
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
mov word [rax + rcx*8 - 0x16], 3
mov edx, r13d
mov rcx, rdi
call fcn.1401e2398
test esi, esi
je 0x140165514
cmp byte [rbx + 0x1f], 8
jae 0x140165514
movzx eax, byte [rbx + 0x1f]
mov dword [rbx + rax*4 + 0xe4], esi
inc byte [rbx + 0x1f]
mov edx, dword [rsp + 0x68]
mov rcx, rdi
call fcn.1401e2398
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x140165535
mov rcx, qword [rbx]
mov rdx, rax
call fcn.1401b5e5c
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret