Function at 0x2016d3ba0
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, 0xa8
mov qword [rsp + 0xf0], rcx
lea rcx, [0x201704c20]
mov qword [rsp + 0xf8], rdx
mov edx, 0x16
mov dword [rsp + 0x94], 0
call fcn.2016c8af0
mov edx, 0xffffc3e3
movdqu xmm0, xmmword [0x2016faef0]
lea rcx, [0x2016e0880]
mov word [rax + 0x24], dx
lea rdi, [rax + 0x10]
mov edx, 0x468dbd6c
mov dword [rax + 0x20], 0xff410000
movups xmmword [rax + 0x10], xmm0
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x88], rdi
call fcn.2016d1b10
mov edx, 0x4bc89524
mov rcx, rax
call fcn.2016d23b0
mov rcx, rax
call fcn.2016ca740
xor r9d, r9d
mov r8d, 1
mov edx, 0x80000000
mov rcx, rax
mov dword [rsp + 0x28], pe_nt_image_headers64
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x20], 3
call qword [0x201704898]
xor edx, edx
mov rcx, rax
mov r12, rax
call qword [0x201704890]
mov ecx, dword [0x201704b1c]
mov ebx, eax
call fcn.2016c9ed0
test al, al
jne 0x2016d4028
call qword [0x201704950]
movsxd r8, ebx
xor edx, edx
mov rcx, rax
call qword [0x201704888]
mov qword [rsp + 0x48], rax
mov rdi, rax
mov r8d, ebx
mov rdx, rdi
lea r15, [0x2016e0860]
mov rcx, r12
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x94]
call qword [0x201704880]
movsxd rbp, dword [rdi + 0x3c]
add rbp, rdi
xor edi, edi
mov eax, dword [rbp + 0x88]
movzx ebx, word [rbp + 0x14]
mov dword [rsp + 0x58], eax
lea rax, [rbp + 0x18]
mov qword [rsp + 0x50], rax
add rax, rbx
cmp word [rbp + 6], 0
mov qword [rsp + 0x80], rax
mov r13, rax
je 0x2016d3d7c
nop dword [rax]
lea eax, [rdi + rdi*4]
add rbx, qword [rsp + 0x50]
mov ecx, 8
xor r14d, r14d
shl eax, 3
movzx eax, ax
add rbx, rax
call fcn.2016c6c40
mov r12, rax
lea rsi, [rax + 0x10]
nop dword [rax]
mov rdx, r14
mov rcx, rbx
call fcn.2016cd0e0
mov rdx, r14
mov rcx, rsi
add r14, 1
movsx r8d, byte [rax]
call fcn.2016cd0d0
cmp r14, 8
jne 0x2016d3d28
mov edx, 0x70c2c7ac
mov rcx, r15
call fcn.2016d23b0
mov rcx, r12
mov rdx, rax
call fcn.2016ca420
test al, al
cmove rbx, r13
add edi, 1
cmp word [rbp + 6], di
jbe 0x2016d3d80
mov r13, rbx
movzx ebx, word [rbp + 0x14]
jmp 0x2016d3d00
mov rbx, rax
nop
mov rsi, qword [rsp + 0x48]
movsxd rax, dword [rsp + 0x58]
movsxd rcx, dword [rbx + 0xc]
movsxd rdx, dword [rbx + 0x14]
add rax, rsi
sub rax, rcx
lea rdi, [rax + rdx]
movsxd rax, dword [rdi + 0x20]
mov qword [rsp + 0x60], rdi
add rax, rsi
sub rax, rcx
add rax, rdx
mov qword [rsp + 0x58], rax
movsxd rax, dword [rdi + 0x1c]
add rax, rsi
sub rax, rcx
add rax, rdx
mov qword [rsp + 0x50], rax
mov eax, dword [rdi + 0x18]
test eax, eax
jle 0x2016d409b
mov rax, qword [rsp + 0x70]
xor r14d, r14d
xor esi, esi
mov rdi, qword [rsp + 0xf0]
mov dword [rsp + 0x7c], r14d
mov r15, qword [rsp + 0xf8]
lea rbp, [rsp + 0x98]
lea r12, [rax + 0x1a]
jmp 0x2016d3e27
test r13, r13
je 0x2016d3e19
test rdi, rdi
je 0x2016d3e19
mov rdx, rdi
mov rcx, r13
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x2016d3e69
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x18], esi
jle 0x2016d4000
mov rcx, qword [rsp + 0x58]
mov rdx, rsi
call fcn.2016cd0f0
mov qword [rsp + 0x68], rsi
mov rcx, qword [rsp + 0x50]
add rsi, 1
movsxd r8, dword [rax]
movsxd rax, dword [rbx + 0xc]
mov rdx, rsi
add r8, qword [rsp + 0x48]
sub r8, rax
movsxd rax, dword [rbx + 0x14]
lea r13, [r8 + rax]
call fcn.2016cd0f0
mov r14, rax
cmp rdi, r13
jne 0x2016d3e00
mov rax, qword [rsp + 0x80]
movsxd r13, dword [r14]
mov ecx, dword [rax + 0xc]
mov r14d, dword [rax + 0x14]
mov dword [rsp + 0x7c], ecx
mov ecx, dword [0x201704b1c]
call fcn.2016c9ed0
test al, al
jne 0x2016d404f
movsxd rax, dword [rsp + 0x7c]
add r13, qword [rsp + 0x48]
sub r13, rax
movsxd rax, r14d
add r13, rax
xor r14d, r14d
add r13, 4
mov rax, r14
mov r14, r13
mov r13, rax
mov rdx, r13
mov rcx, r14
call fcn.2016cd100
mov rdx, qword [rsp + 0x70]
movzx eax, byte [rax]
mov byte [rdx + r13 + 0x14], al
add r13, 1
cmp r13, 4
jne 0x2016d3eb5
mov edx, 0x2ea053c4
lea rcx, [0x2016e0840]
call fcn.2016d23b0
mov rcx, rax
call fcn.2016c2160
mov rcx, rax
call qword [0x201704930]
mov rcx, rdi
mov r13, rax
call fcn.2016ca760
mov rcx, r13
xor r13d, r13d
mov rdx, rax
call qword [0x201704948]
mov qword [rsp + 0x68], rbx
mov r14, rax
jmp 0x2016d3f2d
mov r13, rbx
cmp rbx, 0x27
je 0x2016d401c
mov rdx, r13
mov rcx, r14
lea rbx, [r13 + 1]
call fcn.2016cd100
cmp byte [rax], 0xf
jne 0x2016d3f20
mov rdx, rbx
mov rcx, r14
call fcn.2016cd100
cmp byte [rax], 5
jne 0x2016d3f20
mov rdx, r13
mov rcx, r14
mov rbx, qword [rsp + 0x68]
call fcn.2016cd100
mov qword [rsp + 0x98], rax
xor r13d, r13d
nop dword [rax]
mov rdx, r13
mov rcx, rbp
call fcn.2016cd0e0
mov rdx, r13
mov rcx, r12
add r13, 1
movsx r8d, byte [rax]
call fcn.2016cd0d0
cmp r13, 8
jne 0x2016d3f70
mov r14, qword [0x2016dd340]
test r14, r14
jle 0x2016d3fe0
xor r13d, r13d
mov qword [rsp + 0x68], rbx
mov rbx, r13
mov r13, qword [rsp + 0x88]
nop dword [rax + rax]
mov rdx, rbx
mov rcx, r13
call fcn.2016cd0e0
mov rdx, rbx
mov rcx, r15
add rbx, 1
movsx r8d, byte [rax]
call fcn.2016cd0d0
cmp r14, rbx
jne 0x2016d3fb8
mov rbx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x60]
mov dword [rsp + 0x7c], 1
cmp dword [rax + 0x18], esi
jg 0x2016d3e27
nop word cs:[rax + rax]
mov r14d, dword [rsp + 0x7c]
mov eax, r14d
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rbx, qword [rsp + 0x68]
xor eax, eax
jmp 0x2016d3f61
mov rax, qword [0x2016fb4b0]
call qword [rax]
movsxd r8, ebx
xor edx, edx
mov rcx, rax
mov rax, qword [0x2016fb4a0]
call qword [rax]
mov qword [rsp + 0x48], rax
mov rdi, rax
jmp 0x2016d3ca1
mov r14, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
lea edx, [r14 + 7]
movsxd rdx, edx
call fcn.2016cd0f0
mov edx, r14d
mov rcx, qword [rsp + 0x50]
add edx, 8
movsxd rdx, edx
call fcn.2016cd0f0
mov rcx, qword [rsp + 0x80]
movsxd r13, dword [rax]
add r13, qword [rsp + 0x48]
movsxd rax, dword [rcx + 0xc]
sub r13, rax
movsxd rax, dword [rcx + 0x14]
add r13, rax
jmp 0x2016d3ea5
xor r14d, r14d
jmp 0x2016d4005