Function at 0x140165028
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 rsi, 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.1401d9f34
mov r8, qword [rsp + 0x100]
lea r9d, [r15 + 1]
mov r14, qword [rsi + 0x20]
lea r11d, [r15 + 3]
mov rcx, qword [r12 + 0x20]
xor r13d, r13d
mov dword [rsp + 0x70], eax
movabs r10, 0x8000000000000000
mov rdx, qword [r8 + 0x60]
xor r8d, r8d
movsxd rax, dword [rsi + 0x14]
imul rax, rax, 0x38
mov dword [rsp + 0x40], r13d
add rax, r14
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x58], r8
cmp r14, rax
jae 0x1401652ea
test byte [r14 + 0x12], 2
mov rsi, qword [r14]
jne 0x1401651f7
test byte [r12 + 0x3c], 0x40
jne 0x1401651f7
mov eax, dword [rsi + 4]
and eax, r9d
test byte [r12 + 0x3c], 8
je 0x14016512b
test eax, eax
je 0x1401651f7
mov eax, dword [r12 + 0x44]
cmp dword [rsi + 0x34], eax
jmp 0x14016512d
test eax, eax
jne 0x1401651f7
mov r8d, dword [r12 + 0x44]
mov edx, r11d
mov rcx, rsi
call fcn.14016a360
test eax, eax
je 0x1401651f7
test rsi, rsi
je 0x140165164
mov rcx, qword [rbx]
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
call fcn.140169d8c
mov rsi, rax
mov rbp, qword [rbx]
test r15, r15
jne 0x140165171
mov r15, rsi
jmp 0x1401651ea
test rsi, rsi
je 0x1401651ea
mov eax, dword [r15 + 4]
mov ecx, 0x20000001
and eax, ecx
lea edx, [rcx - 1]
cmp eax, edx
je 0x140165191
mov eax, dword [rsi + 4]
and eax, ecx
cmp eax, edx
jne 0x1401651d4
cmp byte [rbx + 0x134], 2
jae 0x1401651d4
mov r8, r15
lea rdx, [0x1401b6190]
mov rcx, rbx
call fcn.1401cc03c
mov r8, rsi
lea rdx, [0x1401b6190]
mov rcx, rbx
call fcn.1401cc03c
lea r8, [0x1402dd724]
mov edx, 0x9b
mov rcx, rbp
call fcn.1401b32f4
jmp 0x1401651e7
mov r9, rsi
mov r8, r15
mov edx, 0x2c
mov rcx, rbx
call fcn.1401c9dec
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.1401ef2ec
test eax, eax
je 0x1401652ad
movsxd rcx, dword [r14 + 0x20]
mov esi, 1
shl rsi, cl
movabs rax, 0x8000000000000000
cmp ecx, 0x40
cmovge rsi, rax
test bpl, bpl
jne 0x140165261
mov rax, qword [rsp + 0x68]
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.14014763c
mov byte [rsp + 0xe0], 1
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x48]
test r8, rsi
jne 0x1401652b7
mov rcx, qword [rbx]
lea ebp, [r13 + 1]
mov r8d, ebp
call fcn.1401fa0c8
test eax, eax
jne 0x140165835
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 0x1401652b7
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x48]
mov bpl, byte [rsp + 0xe0]
mov r9d, 1
add r14, 0x38
lea r11d, [r9 + 2]
cmp r14, qword [rsp + 0x80]
jb 0x1401650f1
mov rcx, qword [rsp + 0x68]
movabs r10, 0x8000000000000000
mov word [rdx + 0x3c], r13w
not r8
mov word [rdx + 0x18], r13w
or r8, r10
mov dword [rdx + 0x38], 0x4241
mov ebp, 0x3f
and r8, qword [r12 + 0x50]
xor edx, edx
mov qword [rsp + 0x58], r8
cmp bp, word [rcx + 0x36]
jge 0x14016531c
mov esi, ebp
jmp 0x14016532b
movsx esi, word [rcx + 0x36]
mov dword [rsp + 0xe0], esi
test esi, esi
jle 0x140165353
mov ecx, r13d
mov eax, edx
inc r13d
bt r8, rax
cmovae r13d, ecx
add edx, r9d
cmp edx, esi
jl 0x14016532b
mov rcx, qword [rsp + 0x68]
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0xe0], esi
cmp qword [r12 + 0x50], 0
jge 0x14016536b
movsx eax, word [rcx + 0x36]
add r13d, 0xffffffc1
add r13d, eax
mov dword [rsp + 0x40], r13d
mov rcx, qword [rbx]
lea edx, [r9 + r13]
lea r9, [rsp + 0x78]
xor r8d, r8d
call fcn.1401a70d4
mov r15, rax
test rax, rax
je 0x140165835
mov rax, qword [rsp + 0x48]
lea r11, [0x1402d4fbc]
mov r14, qword [rsp + 0xe8]
xor r12d, r12d
mov r10, qword [rsp + 0x68]
and qword [rsp + 0x78], r12
mov qword [rax + 0x20], r15
lea rax, str.auto_index
mov qword [r15], rax
mov qword [r15 + 0x18], r10
mov r14, qword [r14 + 0x20]
cmp r14, qword [rsp + 0x80]
jae 0x1401654af
mov rbp, qword [rsp + 0x78]
xor r13d, r13d
mov rsi, qword [rsp + 0xf0]
xor edi, edi
mov r8, qword [rsp + 0xf8]
mov rdx, rsi
mov rcx, r14
call fcn.1401ef2ec
test eax, eax
je 0x140165478
mov ecx, dword [r14 + 0x20]
mov eax, 1
shl rax, cl
cmp ecx, 0x40
movabs rcx, 0x8000000000000000
cmovge rax, rcx
test rbp, rax
jne 0x140165478
mov rdx, qword [r14]
or rbp, rax
mov rcx, qword [r15 + 8]
movzx eax, word [r14 + 0x20]
mov word [rdi + rcx], ax
test dword [rdx + 4], 0x400
je 0x140165441
mov rax, qword [rdx + 0x18]
mov r8, qword [rdx + 0x10]
jmp 0x140165449
mov rax, qword [rdx + 0x10]
mov r8, qword [rdx + 0x18]
mov rdx, rax
mov rcx, rbx
call fcn.1401a97e4
test rax, rax
je 0x14016545e
mov rcx, qword [rax]
jmp 0x140165465
lea rcx, [0x1402d4fbc]
mov rax, qword [r15 + 0x40]
inc r12d
add rdi, 2
mov qword [rax + r13], rcx
add r13, 8
add r14, 0x38
cmp r14, qword [rsp + 0x80]
jb 0x1401653e2
mov rdi, qword [rsp + 0x88]
lea r11, [0x1402d4fbc]
mov esi, dword [rsp + 0xe0]
mov ebp, 0x3f
mov r13d, dword [rsp + 0x40]
mov r10, qword [rsp + 0x68]
xor ecx, ecx
lea r14d, [rcx + 1]
test esi, esi
jle 0x1401654f8
mov r9, qword [rsp + 0x58]
movsxd rax, r12d
lea rdx, [rax*8]
lea r8, [rax + rax]
mov eax, ecx
bt r9, rax
jae 0x1401654f1
mov rax, qword [r15 + 8]
add r12d, r14d
mov word [r8 + rax], cx
add r8, 2
mov rax, qword [r15 + 0x40]
mov qword [rdx + rax], r11
add rdx, 8
add ecx, r14d
cmp ecx, esi
jl 0x1401654cd
mov rax, qword [rsp + 0xf0]
cmp qword [rax + 0x50], 0
jge 0x140165544
cmp bp, word [r10 + 0x36]
jge 0x140165544
movsxd rax, r12d
lea rcx, [rax*8]
lea rdx, [rax + rax]
mov rax, qword [r15 + 8]
add r12d, r14d
mov word [rdx + rax], bp
add ebp, r14d
mov rax, qword [r15 + 0x40]
lea rdx, [rdx + 2]
mov qword [rcx + rax], r11
lea rcx, [rcx + 8]
movsx eax, word [r10 + 0x36]
cmp ebp, eax
jl 0x14016551d
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], r11
mov rcx, rdi
mov eax, dword [rbx + 0x34]
mov dword [rsi + 8], eax
add dword [rbx + 0x34], r14d
mov r8d, dword [rsi + 8]
call fcn.1401d9f34
mov rdx, r15
mov rcx, rbx
call fcn.1401e4bd0
mov rax, qword [rbx]
test dword [rax + 0x60], 0x80000
jne 0x1401655c2
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.1401d9f34
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 0x140165623
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.1401d9f34
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.1401d9f34
mov edx, 0xc
jmp 0x14016562b
mov esi, dword [rsi + 4]
mov edx, 0x24
and dword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, esi
mov rcx, rdi
call fcn.1401d9f34
mov r13d, eax
mov edx, 0x10
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x140165675
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.1401b6408
mov rax, qword [rsp + 0x48]
bts dword [rax + 0x38], 0x11
mov al, byte [rbx + 0x1f]
test al, al
jne 0x140165689
mov eax, 1
add dword [rbx + 0x38], eax
mov esi, dword [rbx + 0x38]
jmp 0x140165698
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.1401c4540
mov r15d, eax
mov rax, qword [rsp + 0x100]
mov r8d, dword [rax + 0x34]
test r8d, r8d
je 0x140165706
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.1401da048
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.1401d9f34
movsxd rax, dword [rdi + 0x90]
test eax, eax
jle 0x14016573c
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
mov word [rax + rcx*8 - 0x16], 0x10
cmp qword [rsp + 0x50], 0
je 0x140165750
mov edx, dword [rsp + 0x60]
mov rcx, rdi
call fcn.1401e4958
test byte [r14 + rbp + 0x48], 0x20
je 0x1401657c7
mov rax, qword [rdi]
cmp byte [rax + 0x67], 0
je 0x14016576a
lea rcx, [0x1403396c8]
jmp 0x14016577e
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.1401ef788
and dword [rsp + 0x20], 0
xor r8d, r8d
mov r9d, r13d
mov rcx, rdi
lea edx, [r8 + 9]
call fcn.1401d9f34
and dword [r14 + rbp + 0x48], 0xffffffdf
jmp 0x140165806
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.1401d9f34
movsxd rax, dword [rdi + 0x90]
test eax, eax
jle 0x140165806
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.1401e26f0
test esi, esi
je 0x140165829
cmp byte [rbx + 0x1f], 8
jae 0x140165829
movzx eax, byte [rbx + 0x1f]
mov dword [rbx + rax*4 + 0xe4], esi
inc byte [rbx + 0x1f]
mov edx, dword [rsp + 0x70]
mov rcx, rdi
call fcn.1401e26f0
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x14016584a
mov rcx, qword [rbx]
mov rdx, rax
call fcn.1401b61a4
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret