Function at 0x2166bdf70
Capabilities:
Enumerate pe sections
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, 0xb8
movaps xmmword [rsp + 0xa0], xmm6
mov eax, 0x10
mov qword [rsp + 0x108], rdx
mov rdx, qword [0x2167e7aa8]
mov rdi, rcx
mov dword [rsp + 0x94], 0
test rdx, rdx
je 0x2166bdfbc
lea rax, [rdx + 0xf]
neg rdx
and rax, rdx
mov rdx, qword [0x2167e7ab8]
imul rdx, qword [rdx], 0x16
jo 0x2166be395
add rax, rdx
mov rbx, rax
jo 0x2166be395
lea rcx, [0x2167200c0]
call sub.libgcc_s_seh_1.dll___emutls_get_address
lea rdx, [rbx + 0x10]
mov rcx, rax
mov r12, rax
call fcn.2166b2a80
mov qword [rax + 8], 1
mov rbp, rax
lea rax, [rax + 0x10]
mov qword [rsp + 0x50], rax
test rbx, rbx
jle 0x2166be01a
mov rcx, rax
mov r8, rbx
xor edx, edx
call sub.msvcrt.dll_memset
mov rax, qword [rsp + 0x50]
movdqa xmm0, xmmword [0x2167e23a0]
mov r11d, 0xffffc3e3
lea rcx, [0x2167e15a0]
mov edx, 0x42dbc60a
movups xmmword [rbp + 0x10], xmm0
movdqa xmm0, xmmword [0x2167e23b0]
lea rsi, [rax + 0x10]
mov dword [rax + 0x20], 0xff410000
mov word [rax + 0x24], r11w
movups xmmword [rax + 0x10], xmm0
mov qword [rsp + 0x88], rsi
lea rsi, [0x216721071]
call fcn.2166bc0d0
mov qword [rsp + 0x58], rsi
mov rcx, rsi
test rax, rax
je 0x2166be090
lea rdx, [rax + 0x10]
cmp qword [rax], 0
cmove rdx, qword [rsp + 0x58]
mov qword [rsp + 0x58], rdx
mov rcx, rdx
xor r9d, r9d
mov r8d, 1
mov edx, 0x80000000
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], pe_nt_image_headers64
mov dword [rsp + 0x20], 3
call qword [0x2167e7418]
xor edx, edx
mov r13, rax
mov rcx, rax
call qword [0x2167e7410]
mov r10d, dword [0x2167e74a8]
mov ebx, eax
test r10d, r10d
je 0x2166be561
call qword [0x2167e75f0]
movsxd r8, ebx
xor edx, edx
mov rcx, rax
call qword [0x2167e7628]
mov qword [rsp + 0x48], rax
mov rsi, rax
mov r8d, ebx
mov rcx, r13
mov rdx, rsi
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x94]
call qword [0x2167e7400]
movsxd r11, dword [rsi + 0x3c]
lea r14, [rsi + r11]
mov eax, dword [r14 + 0x88]
movzx ebx, word [r14 + 0x14]
mov dword [rsp + 0x68], eax
lea rax, [r14 + 0x18]
mov rcx, rax
add rax, rbx
cmp word [r14 + 6], 0
mov qword [rsp + 0x60], rax
je 0x2166be5a4
mov qword [rsp + 0x100], rdi
mov r13, rax
xor esi, esi
mov r15, rcx
movdqa xmm6, xmmword [0x2167e2260]
mov rdi, r14
jmp 0x2166be177
mov r13, rbx
movzx ebx, word [rdi + 0x14]
lea eax, [rsi + rsi*4]
add rbx, r15
mov edx, 0x29
mov rcx, r12
shl eax, 3
movzx eax, ax
add rbx, rax
call fcn.2166b2a80
lea rcx, [0x2167e1570]
mov qword [rax + 0x20], 0
lea r14, [rax + 0x10]
mov qword [rax + 8], 1
mov byte [rax + 0x28], 0
movups xmmword [rax + 0x10], xmm6
movzx edx, byte [rbx]
mov byte [rax + 0x20], dl
movzx edx, byte [rbx + 1]
mov byte [rax + 0x21], dl
movzx edx, byte [rbx + 2]
mov byte [rax + 0x22], dl
movzx edx, byte [rbx + 3]
mov byte [rax + 0x23], dl
movzx edx, byte [rbx + 4]
mov byte [rax + 0x24], dl
movzx edx, byte [rbx + 5]
mov byte [rax + 0x25], dl
movzx edx, byte [rbx + 6]
mov byte [rax + 0x26], dl
movzx edx, byte [rbx + 7]
mov byte [rax + 0x27], dl
mov edx, 0x49f8c1ae
call fcn.2166bc0d0
xor r9d, r9d
xor r8d, r8d
mov rcx, r14
mov rdx, rax
call fcn.2166b84f0
test rax, rax
cmovs rbx, r13
add esi, 1
cmp word [rdi + 6], si
ja 0x2166be170
mov rdi, qword [rsp + 0x100]
mov r11, qword [rsp + 0x48]
movsxd rcx, dword [rsp + 0x68]
movsxd rdx, dword [rbx + 0xc]
movsxd rax, dword [rbx + 0x14]
add rcx, r11
sub rcx, rdx
lea r15, [rcx + rax]
movsxd rcx, dword [r15 + 0x1c]
movsxd rsi, dword [r15 + 0x20]
mov r9d, dword [r15 + 0x18]
add rcx, r11
add rsi, r11
sub rcx, rdx
sub rsi, rdx
add rcx, rax
add rsi, rax
mov qword [rsp + 0x70], rcx
test r9d, r9d
jle 0x2166be59c
add rcx, 4
xor r13d, r13d
xor r14d, r14d
sub rcx, rsi
mov dword [rsp + 0x68], r13d
mov qword [rsp + 0x78], rcx
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x50], r15
mov r15, qword [rsp + 0x108]
lea r11, [rcx + 0x11]
mov r13, rcx
mov qword [rsp + 0x80], r11
jmp 0x2166be2e4
test rcx, rcx
je 0x2166be2c6
test rdi, rdi
je 0x2166be2c6
mov rdx, rdi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x2166be2fb
mov rax, qword [rsp + 0x50]
add rsi, 4
cmp dword [rax + 0x18], r12d
jle 0x2166be3a0
movsxd rdx, dword [rbx + 0xc]
movsxd rax, dword [rbx + 0x14]
mov r14d, r12d
movsxd rcx, dword [rsi]
add rcx, qword [rsp + 0x48]
lea r12d, [r14 + 1]
sub rcx, rdx
add rcx, rax
cmp rdi, rcx
jne 0x2166be2b0
mov rdx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x78]
mov r8d, dword [0x2167e74a8]
movsxd rcx, dword [rdx + 0xc]
movsxd rax, dword [rax + rsi]
movsxd rdx, dword [rdx + 0x14]
test r8d, r8d
je 0x2166be32c
mov r11, qword [rsp + 0x70]
lea eax, [r14 + 8]
cdqe
movsxd rax, dword [r11 + rax*4]
add rax, qword [rsp + 0x48]
sub rax, rcx
mov rcx, qword [rsp + 0x58]
add rax, rdx
movzx edx, byte [rax + 4]
mov byte [r13 + 0x14], dl
movzx edx, byte [rax + 5]
mov byte [r13 + 0x15], dl
movzx edx, byte [rax + 6]
mov byte [r13 + 0x16], dl
movzx eax, byte [rax + 7]
mov byte [r13 + 0x17], al
call qword [0x2167e73f8]
mov rdx, rdi
mov rcx, rax
call qword [0x2167e73f0]
mov edx, 1
jmp 0x2166be386
add rdx, 1
add rax, 1
cmp rdx, 0x28
je 0x2166be3c4
cmp byte [rax], 0xf
jne 0x2166be378
cmp byte [rax + 1], 5
jne 0x2166be378
mov edx, eax
jmp 0x2166be3c8
call fcn.2166b5c40
nop word [rax + rax]
mov r13d, dword [rsp + 0x68]
movaps xmm6, xmmword [rsp + 0xa0]
mov eax, r13d
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor edx, edx
xor eax, eax
mov rcx, rax
mov r14d, eax
mov r11d, eax
mov r10, rax
shr rcx, 0x38
mov r9, rax
mov r8, rax
shr r14d, 0x10
mov qword [rsp + 0x98], rax
shr r11d, 0x18
movzx eax, ah
shr r10, 0x20
mov qword [rsp + 0x68], rcx
shr r9, 0x28
lea rcx, [r13 + 0x1a]
shr r8, 0x30
mov byte [r13 + 0x1b], al
movzx eax, byte [rsp + 0x68]
mov byte [r13 + 0x1a], dl
mov byte [rcx + 2], r14b
mov byte [rcx + 3], r11b
mov byte [rcx + 4], r10b
mov byte [rcx + 5], r9b
mov byte [rcx + 6], r8b
mov byte [rcx + 7], al
mov rdx, qword [0x216720030]
test rdx, rdx
jle 0x2166be554
mov rcx, r15
sub rcx, qword [rsp + 0x80]
lea rax, [rdx - 1]
mov r8, rdx
cmp rcx, 0xe
jbe 0x2166be582
cmp rax, 6
jbe 0x2166be582
cmp rax, 0xe
jbe 0x2166be5ac
mov rcx, rdx
xor eax, eax
and rcx, 0xfffffffffffffff0
nop dword [rax + rax]
movdqu xmm1, xmmword [rbp + rax + 0x20]
movups xmmword [r15 + rax], xmm1
add rax, 0x10
cmp rax, rcx
jne 0x2166be478
mov rcx, rdx
and rcx, 0xfffffffffffffff0
mov rax, rcx
cmp rdx, rcx
je 0x2166be554
mov r8, rdx
sub r8, rcx
lea r9, [r8 - 1]
cmp r9, 6
jbe 0x2166be4cb
mov r9, qword [r13 + rcx + 0x10]
mov qword [r15 + rcx], r9
mov rcx, r8
and rcx, 0xfffffffffffffff8
add rax, rcx
cmp r8, rcx
je 0x2166be554
mov r10, qword [rsp + 0x88]
movzx ecx, byte [r10 + rax]
mov byte [r15 + rax], cl
lea rcx, [rax + 1]
cmp rdx, rcx
jle 0x2166be554
movzx ecx, byte [r10 + rax + 1]
mov byte [r15 + rax + 1], cl
lea rcx, [rax + 2]
cmp rdx, rcx
jle 0x2166be554
movzx ecx, byte [r10 + rax + 2]
mov byte [r15 + rax + 2], cl
lea rcx, [rax + 3]
cmp rdx, rcx
jle 0x2166be554
movzx ecx, byte [r10 + rax + 3]
mov byte [r15 + rax + 3], cl
lea rcx, [rax + 4]
cmp rdx, rcx
jle 0x2166be554
movzx ecx, byte [r10 + rax + 4]
mov byte [r15 + rax + 4], cl
lea rcx, [rax + 5]
cmp rdx, rcx
jle 0x2166be554
movzx ecx, byte [r10 + rax + 5]
mov byte [r15 + rax + 5], cl
lea rcx, [rax + 6]
cmp rdx, rcx
jle 0x2166be554
movzx edx, byte [r10 + rax + 6]
mov byte [r15 + rax + 6], dl
mov dword [rsp + 0x68], 1
jmp 0x2166be2c6
call qword [0x2167e7490]
movsxd r8, ebx
xor edx, edx
mov rcx, rax
call qword [0x2167e7408]
mov qword [rsp + 0x48], rax
mov rsi, rax
jmp 0x2166be0f9
xor eax, eax
nop dword [rax]
movzx ecx, byte [rbp + rax + 0x20]
mov byte [r15 + rax], cl
add rax, 1
cmp rdx, rax
jne 0x2166be588
jmp 0x2166be554
xor r13d, r13d
jmp 0x2166be3a5
mov rbx, rax
jmp 0x2166be224
xor eax, eax
xor ecx, ecx
jmp 0x2166be4af