Function at 0x216521470
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, 0x98
mov qword [rsp + 0xe8], rdx
mov rbp, rcx
mov edx, 0x16
lea rcx, [0x21769dd40]
mov dword [rsp + 0x84], 0
call fcn.216517600
mov r9d, 0xffffc3e3
movdqu xmm0, xmmword [0x2176933a0]
mov edx, 0x2e9bbec6
mov rdi, rax
lea rcx, [0x2165c41c0]
lea rax, [rax + 0x10]
mov word [rdi + 0x24], r9w
mov dword [rdi + 0x20], 0xff410000
movups xmmword [rdi + 0x10], xmm0
mov qword [rsp + 0x48], rax
call fcn.21651f890
mov rcx, rax
call fcn.216519a50
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 [0x21769d900]
xor edx, edx
mov rcx, rax
mov r13, rax
call qword [0x21769d8f8]
mov ecx, dword [0x21769db7c]
mov ebx, eax
call fcn.216519240
test al, al
jne 0x2165219c9
call qword [0x21769d9b8]
movsxd r8, ebx
xor edx, edx
mov rcx, rax
call qword [0x21769d8f0]
mov r12, rax
mov rcx, r13
mov r8d, ebx
mov rdx, r12
xor r15d, r15d
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x84]
call qword [0x21769d8e8]
movsxd r10, dword [r12 + 0x3c]
lea r13, [r12 + r10]
mov eax, dword [r13 + 0x88]
movzx ebx, word [r13 + 0x14]
mov dword [rsp + 0x40], eax
lea rax, [r13 + 0x18]
mov rcx, rax
add rax, rbx
cmp word [r13 + 6], 0
mov qword [rsp + 0x58], rax
mov rsi, rax
je 0x216521a0f
mov qword [rsp + 0x50], rdi
mov rdi, r13
mov r13, rcx
jmp 0x2165215c7
mov rsi, rbx
movzx ebx, word [rdi + 0x14]
lea eax, [r15 + r15*4]
add rbx, r13
mov ecx, 8
shl eax, 3
movzx eax, ax
add rbx, rax
call fcn.2165169e0
movzx edx, byte [rbx]
lea rcx, [0x2165c41a0]
mov r14, rax
mov byte [rax + 0x10], dl
movzx edx, byte [rbx + 1]
mov byte [rax + 0x11], dl
movzx edx, byte [rbx + 2]
mov byte [rax + 0x12], dl
movzx edx, byte [rbx + 3]
mov byte [rax + 0x13], dl
movzx edx, byte [rbx + 4]
mov byte [rax + 0x14], dl
movzx edx, byte [rbx + 5]
mov byte [rax + 0x15], dl
movzx edx, byte [rbx + 6]
mov byte [rax + 0x16], dl
movzx edx, byte [rbx + 7]
mov byte [rax + 0x17], dl
mov edx, 0x252d51a2
call fcn.21651f890
mov rcx, r14
mov rdx, rax
call fcn.216519730
test al, al
cmove rbx, rsi
add r15d, 1
cmp word [rdi + 6], r15w
ja 0x2165215c0
mov rdi, qword [rsp + 0x50]
movsxd rcx, dword [rsp + 0x40]
movsxd rdx, dword [rbx + 0xc]
movsxd rax, dword [rbx + 0x14]
add rcx, r12
sub rcx, rdx
lea r13, [rcx + rax]
movsxd rcx, dword [r13 + 0x20]
mov r8d, dword [r13 + 0x18]
add rcx, r12
sub rcx, rdx
lea rsi, [rcx + rax]
movsxd rcx, dword [r13 + 0x1c]
add rcx, r12
sub rcx, rdx
add rcx, rax
mov qword [rsp + 0x60], rcx
test r8d, r8d
jle 0x2165217e7
add rcx, 4
mov r15, rdi
mov qword [rsp + 0x40], r13
xor r14d, r14d
sub rcx, rsi
mov dword [rsp + 0x50], 0
mov rdi, qword [rsp + 0xe8]
mov qword [rsp + 0x68], rcx
mov rcx, qword [rsp + 0x48]
add rcx, 1
mov qword [rsp + 0x70], rcx
jmp 0x216521704
test rcx, rcx
je 0x2165216e6
test rbp, rbp
je 0x2165216e6
mov rdx, rbp
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x216521719
mov rax, qword [rsp + 0x40]
add rsi, 4
cmp dword [rax + 0x18], r13d
jle 0x2165217ef
movsxd rdx, dword [rbx + 0xc]
movsxd rax, dword [rbx + 0x14]
mov r14d, r13d
movsxd rcx, dword [rsi]
lea r13d, [r14 + 1]
add rcx, r12
sub rcx, rdx
add rcx, rax
cmp rbp, rcx
jne 0x2165216d0
mov rax, qword [rsp + 0x68]
mov eax, dword [rax + rsi]
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x58]
mov ecx, dword [rax + 0xc]
mov edx, dword [rax + 0x14]
mov dword [rsp + 0x78], ecx
mov ecx, dword [0x21769db7c]
mov dword [rsp + 0x7c], edx
call fcn.216519240
test al, al
jne 0x21652199f
movsxd rax, dword [rsp + 0x50]
movsxd r14, dword [rsp + 0x78]
movsxd rdx, dword [rsp + 0x7c]
add rax, r12
sub rax, r14
add rax, rdx
movzx edx, byte [rax + 4]
lea rcx, [0x2165c4180]
mov byte [r15 + 0x14], dl
movzx edx, byte [rax + 5]
mov byte [r15 + 0x15], dl
movzx edx, byte [rax + 6]
mov byte [r15 + 0x16], dl
movzx eax, byte [rax + 7]
mov edx, 0x28578206
mov byte [r15 + 0x17], al
call fcn.21651f890
mov rcx, rax
call fcn.216511f00
mov rcx, rax
call qword [0x21769d998]
mov rcx, rbp
mov r14, rax
call fcn.216519a70
mov rcx, r14
mov rdx, rax
call qword [0x21769d9b0]
mov edx, 1
jmp 0x2165217d6
add rdx, 1
add rax, 1
cmp rdx, 0x28
je 0x216521807
cmp byte [rax], 0xf
jne 0x2165217c8
cmp byte [rax + 1], 5
jne 0x2165217c8
mov byte [rsp + 0x78], al
jmp 0x21652180e
mov dword [rsp + 0x50], 0
mov eax, dword [rsp + 0x50]
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov byte [rsp + 0x78], 0
xor eax, eax
movzx ecx, ah
mov rdx, rax
mov r8d, eax
mov r11d, eax
mov r14, rcx
mov rcx, rax
shr rdx, 0x38
mov r10, rax
shr rcx, 0x30
mov qword [rsp + 0x50], rdx
mov r9, rax
shr r8d, 0x10
mov byte [r15 + 0x20], cl
movzx edx, byte [rsp + 0x78]
shr r11d, 0x18
shr r10, 0x20
movzx ecx, byte [rsp + 0x50]
shr r9, 0x28
mov byte [r15 + 0x1b], r14b
mov byte [r15 + 0x1a], dl
mov byte [r15 + 0x1c], r8b
mov byte [r15 + 0x1d], r11b
mov byte [r15 + 0x1e], r10b
mov byte [r15 + 0x1f], r9b
mov byte [r15 + 0x21], cl
mov rdx, qword [0x21658a090]
mov qword [rsp + 0x88], rax
test rdx, rdx
jle 0x216521992
mov rcx, rdi
sub rcx, qword [rsp + 0x70]
lea rax, [rdx - 1]
mov r9, rdx
cmp rcx, 0xe
jbe 0x2165219eb
cmp rax, 6
jbe 0x2165219eb
cmp rax, 0xe
jbe 0x216521a17
mov rcx, rdx
xor eax, eax
and rcx, 0xfffffffffffffff0
nop dword [rax + rax]
movdqu xmm1, xmmword [r15 + rax + 0x10]
movups xmmword [rdi + rax], xmm1
add rax, 0x10
cmp rcx, rax
jne 0x2165218c0
mov rcx, rdx
and rcx, 0xfffffffffffffff0
mov rax, rcx
cmp rcx, rdx
je 0x216521992
mov r9, rdx
sub r9, rcx
lea r10, [r9 - 1]
cmp r10, 6
jbe 0x216521913
mov r8, qword [rsp + 0x48]
mov r10, qword [r8 + rcx]
mov qword [rdi + rcx], r10
mov rcx, r9
and rcx, 0xfffffffffffffff8
add rax, rcx
cmp r9, rcx
je 0x216521992
mov r11, qword [rsp + 0x48]
movzx ecx, byte [r11 + rax]
mov byte [rdi + rax], cl
lea rcx, [rax + 1]
cmp rdx, rcx
jle 0x216521992
movzx ecx, byte [r11 + rax + 1]
mov byte [rdi + rax + 1], cl
lea rcx, [rax + 2]
cmp rdx, rcx
jle 0x216521992
movzx ecx, byte [r11 + rax + 2]
mov byte [rdi + rax + 2], cl
lea rcx, [rax + 3]
cmp rdx, rcx
jle 0x216521992
movzx ecx, byte [r11 + rax + 3]
mov byte [rdi + rax + 3], cl
lea rcx, [rax + 4]
cmp rdx, rcx
jle 0x216521992
movzx ecx, byte [r11 + rax + 4]
mov byte [rdi + rax + 4], cl
lea rcx, [rax + 5]
cmp rdx, rcx
jle 0x216521992
movzx ecx, byte [r11 + rax + 5]
mov byte [rdi + rax + 5], cl
lea rcx, [rax + 6]
cmp rdx, rcx
jle 0x216521992
movzx edx, byte [r11 + rax + 6]
mov byte [rdi + rax + 6], dl
mov dword [rsp + 0x50], 1
jmp 0x2165216e6
mov rcx, qword [rsp + 0x60]
lea eax, [r14 + 8]
cdqe
movsxd rax, dword [rcx + rax*4]
mov rcx, qword [rsp + 0x58]
movsxd rdx, dword [rcx + 0xc]
add rax, r12
sub rax, rdx
movsxd rdx, dword [rcx + 0x14]
add rax, rdx
jmp 0x216521763
mov rax, qword [0x2176939f0]
call qword [rax]
movsxd r8, ebx
xor edx, edx
mov rcx, rax
mov rax, qword [0x2176939e0]
call qword [rax]
mov r12, rax
jmp 0x216521557
xor eax, eax
nop dword [rax]
movzx ecx, byte [r15 + rax + 0x10]
mov byte [rdi + rax], cl
add rax, 1
cmp rdx, rax
jne 0x2165219f0
mov dword [rsp + 0x50], 1
jmp 0x2165216e6
mov rbx, rax
jmp 0x216521651
xor eax, eax
xor ecx, ecx
jmp 0x2165218f7