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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
xor r12d, r12d
xor r14d, r14d
xor esi, esi
mov r15, qword [rcx + 0x10]
mov qword [rsp + 0xe8], rdx
mov rbx, rcx
mov edx, 0xf
mov rcx, r15
mov r13, r8
mov qword [rsp + 0xf8], r9
call fcn.1401e56c0
mov qword [rsp + 0x48], 0
mov dword [rsp + 0x74], eax
mov rax, qword [r13 + 0x20]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0xe8]
mov rdi, qword [rax + 0x20]
movsxd rax, dword [rax + 0x14]
imul rax, rax, 0x38
add rax, rdi
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x100]
mov rbp, qword [rax + 0x60]
cmp rdi, qword [rsp + 0x60]
jae 0x14016e18c
test byte [rdi + 0x12], 2
jne 0x14016e0e0
mov r9, qword [rdi]
mov rdx, r13
mov rcx, r9
mov qword [rsp + 0x58], r9
call fcn.1401bf3c0
mov r9, qword [rsp + 0x58]
test eax, eax
je 0x14016e0e0
mov rcx, qword [rbx]
mov rdx, r9
xor r8d, r8d
call fcn.1401bea10
mov rdx, qword [rsp + 0x48]
mov rcx, rbx
mov r8, rax
call fcn.1401bc0b0
mov qword [rsp + 0x48], rax
mov r8, qword [rsp + 0xf8]
mov rdx, r13
mov rcx, rdi
call fcn.1402028f0
test eax, eax
je 0x14016e183
mov eax, 1
movsxd rcx, dword [rdi + 0x20]
shl rax, 0x3f
mov qword [rsp + 0x58], rax
cmp ecx, 0x3f
jg 0x14016e11f
mov eax, 1
shl rax, cl
mov qword [rsp + 0x58], rax
test r12b, r12b
jne 0x14016e148
mov rax, qword [rsp + 0x50]
imul rcx, rcx, 0x18
lea rdx, str.automatic_index_on__s__s_
add rcx, qword [rax + 8]
mov r8, qword [rax]
mov r9, qword [rcx]
mov ecx, 0x11c
call fcn.1401fad90
mov r12b, 1
test qword [rsp + 0x58], r14
jne 0x14016e183
mov rcx, qword [rbx]
lea r8d, [rsi + 1]
mov rdx, rbp
mov dword [rsp + 0x68], r8d
call fcn.14020c290
test eax, eax
jne 0x14016e5ed
mov rax, qword [rbp + 0x48]
mov r8d, dword [rsp + 0x68]
or r14, qword [rsp + 0x58]
mov qword [rax + rsi*8], rdi
movsxd rsi, r8d
add rdi, 0x38
jmp 0x14016e090
mov rax, qword [rsp + 0x50]
mov r8, qword [r13 + 0x50]
not r14
mov word [rbp + 0x3c], si
bts r14, 0x3f
mov edx, 0x3f
mov word [rbp + 0x18], si
movsx eax, word [rax + 0x36]
and r14, r8
mov dword [rbp + 0x38], 0x4241
mov qword [rsp + 0x68], r14
cmp ax, 0x3f
cmovle edx, eax
xor ecx, ecx
movsx edi, dx
mov dword [rsp + 0x70], edi
cmp ecx, dword [rsp + 0x70]
jge 0x14016e1e4
mov rdx, qword [rsp + 0x68]
shr rdx, cl
inc ecx
and edx, 1
add esi, edx
jmp 0x14016e1cd
test r8, r8
jns 0x14016e1ed
lea esi, [rsi + rax - 0x3f]
mov rcx, qword [rbx]
lea edx, [rsi + 1]
lea r9, [rsp + 0x88]
xor r8d, r8d
movsx edx, dx
call fcn.1401b1c60
mov r12, rax
test rax, rax
je 0x14016e5ed
mov qword [rbp + 0x20], rax
lea rax, str.auto_index
xor edi, edi
mov qword [r12], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x58], 0
mov qword [r12 + 0x18], rax
mov rax, qword [rsp + 0xe8]
mov r14, qword [rax + 0x20]
cmp r14, qword [rsp + 0x60]
jae 0x14016e2cf
mov r8, qword [rsp + 0xf8]
mov rdx, r13
mov rcx, r14
call fcn.1402028f0
test eax, eax
je 0x14016e2c6
mov ecx, dword [r14 + 0x20]
mov eax, 1
shl rax, 0x3f
cmp ecx, 0x3f
jg 0x14016e27e
mov eax, 1
shl rax, cl
test qword [rsp + 0x58], rax
jne 0x14016e2c6
or qword [rsp + 0x58], rax
mov rax, qword [r12 + 8]
movsxd r8, edi
mov rdx, qword [r14]
mov qword [rsp + 0x78], r8
mov word [rax + r8*2], cx
mov rcx, rbx
call fcn.1401be800
mov r8, qword [rsp + 0x78]
lea rdx, str.BINARY
test rax, rax
je 0x14016e2bb
mov rdx, qword [rax]
mov rax, qword [r12 + 0x40]
inc edi
mov qword [rax + r8*8], rdx
add r14, 0x38
jmp 0x14016e242
mov r9, qword [r12 + 8]
mov r8, qword [r12 + 0x40]
xor ecx, ecx
lea rdx, str.BINARY
cmp ecx, dword [rsp + 0x70]
jge 0x14016e306
mov rax, qword [rsp + 0x68]
shr rax, cl
test al, 1
je 0x14016e302
movsxd rax, edi
inc edi
mov word [r9 + rax*2], cx
mov qword [r8 + rax*8], rdx
inc ecx
jmp 0x14016e2e2
cmp qword [r13 + 0x50], 0
jns 0x14016e33b
movsxd rax, edi
mov edx, 0x3f
lea r10, str.BINARY
mov rcx, qword [rsp + 0x50]
mov edi, eax
movsx ecx, word [rcx + 0x36]
cmp ecx, edx
jle 0x14016e33b
mov word [r9 + rax*2], dx
inc edx
mov qword [r8 + rax*8], r10
inc rax
jmp 0x14016e31c
movsxd rax, edi
lea rdx, str.BINARY
mov rcx, r15
mov word [r9 + rax*2], 0xffff
lea r9d, [rsi + 1]
mov qword [r8 + rax*8], rdx
mov r8d, dword [rbx + 0x34]
mov edx, 0x74
lea eax, [r8 + 1]
mov dword [rbx + 0x34], eax
mov rax, qword [rsp + 0x100]
mov dword [rax + 8], r8d
call fcn.1401e5700
mov rdx, r12
mov rcx, rbx
call fcn.1401efee0
mov rax, qword [rbx]
test byte [rax + 0x62], 8
jne 0x14016e3b6
mov eax, dword [rbx + 0x38]
mov r8d, 0x2710
mov edx, 0x4d
mov rcx, r15
lea r9d, [rax + 1]
mov rax, qword [rsp + 0x100]
mov dword [rbx + 0x38], r9d
mov dword [rax + 0x34], r9d
call fcn.1401e5700
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax]
mov rax, qword [rax + 8]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x100]
movzx r14d, byte [rax + 0x40]
mov rsi, r14
imul r14, r14, 0x68
add r14, qword [rsp + 0x58]
test byte [r14 + 0x48], 0x20
je 0x14016e435
xor r9d, r9d
xor r8d, r8d
mov edx, 0x47
mov rcx, r15
mov r13d, dword [r14 + 0x3c]
call fcn.1401e5700
xor r9d, r9d
mov edx, 0xb
mov rcx, r15
mov dword [rsp + 0x60], eax
mov eax, dword [r14 + 0x38]
mov r8d, r13d
mov dword [rsp + 0x20], eax
call fcn.1401e5720
mov r8d, r13d
mov edx, 0xc
mov rcx, r15
call fcn.1401e56e0
mov r13d, eax
jmp 0x14016e459
mov rax, qword [rsp + 0x100]
mov edx, 0x24
mov rcx, r15
mov r8d, dword [rax + 4]
call fcn.1401e56e0
mov dword [rsp + 0x60], 0
mov r13d, eax
xor r14d, r14d
cmp qword [rsp + 0x48], 0
je 0x14016e48c
mov eax, dword [rbx + 0x44]
mov rdx, qword [rsp + 0x48]
mov r9d, 0x10
mov rcx, rbx
lea r14d, [rax - 1]
mov dword [rbx + 0x44], r14d
mov r8d, r14d
call fcn.1401bebd0
or dword [rbp + 0x38], 0x20000
mov rcx, rbx
mov rdx, r12
call fcn.1401cb920
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x50], eax
mov r9d, eax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r8d, dword [rax + 4]
call fcn.1401caff0
mov r12d, eax
mov rax, qword [rsp + 0x100]
mov r8d, dword [rax + 0x34]
test r8d, r8d
je 0x14016e502
movzx eax, word [rbp + 0x18]
mov dword [rsp + 0x20], r12d
xor r9d, r9d
mov rcx, r15
mov edx, 0xb4
mov dword [rsp + 0x28], eax
call fcn.1401e5830
mov rax, qword [rsp + 0x100]
mov r9d, dword [rsp + 0x50]
mov edx, 0x8a
mov rcx, r15
mov r8d, dword [rax + 8]
call fcn.1401e5700
mov edx, 0x10
mov rcx, r15
call fcn.1401e5b00
cmp qword [rsp + 0x48], 0
je 0x14016e53d
mov edx, r14d
call fcn.1401efca0
imul rsi, rsi, 0x68
mov rbp, qword [rsp + 0x58]
mov rax, qword [rsp + 0x100]
mov r8d, dword [rax + 4]
add rbp, rsi
test byte [rbp + 0x48], 0x20
lea r14, [rbp + 0x30]
je 0x14016e5ac
mov edx, dword [rsp + 0x60]
mov rcx, r15
mov dword [rsp + 0x58], r8d
add r12d, edi
call fcn.1401ed7c0
mov r8d, dword [rsp + 0x58]
mov edx, r13d
mov rcx, rbx
mov dword [rax + 8], r12d
mov rax, qword [rsp + 0x100]
mov eax, dword [rax + 8]
mov dword [rsp + 0x20], eax
mov r9d, dword [rbp + 0x40]
call fcn.140202da0
mov edx, r13d
mov rcx, r15
call fcn.1401ed7e0
and byte [r14 + 0x18], 0xdf
jmp 0x14016e5ca
mov edx, 0x27
mov rcx, r15
lea r9d, [r13 + 1]
call fcn.1401e5700
mov edx, 3
mov rcx, r15
call fcn.1401e5b00
mov edx, r13d
mov rcx, r15
call fcn.1401ee1f0
mov edx, dword [rsp + 0x50]
mov rcx, rbx
call fcn.1401dbfb0
mov edx, dword [rsp + 0x74]
mov rcx, r15
call fcn.1401ee1f0
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rbx]
call fcn.1401be960
nop
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret