Function at 0x6a566880
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, 0xa8
movaps xmmword [rsp + 0x90], xmm6
mov r8d, 0x10
mov qword [rsp + 0xf8], rdx
mov rdi, rcx
mov rdx, qword [str.__Zj]
mov dword [rsp + 0x84], 0
mov rax, qword [rdx + 8]
test rax, rax
je 0x6a5668d1
lea r8, [rax + 0xf]
neg rax
and r8, rax
mov rax, qword [rdx + 0x18]
imul rbx, qword [rax], 0x16
jo 0x6a566ee4
add rbx, r8
jo 0x6a566ee4
mov rcx, qword [0x6a59e7c0]
lea rdx, [rbx + 0x10]
call fcn.6a55f100
mov qword [rax + 8], 1
mov qword [rsp + 0x58], rax
add rax, 0x10
test rbx, rbx
mov qword [rsp + 0x50], rax
jle 0x6a566920
mov rcx, rax
mov r8, rbx
xor edx, edx
call sub.msvcrt.dll_memset
mov rsi, qword [rsp + 0x58]
mov r10d, 0xffffc3e3
mov edx, 0x18f5df68
mov rax, qword [rsp + 0x50]
lea rcx, [0x6a59cb20]
movdqa xmm0, xmmword [0x6a59dee0]
movups xmmword [rsi + 0x10], xmm0
movdqa xmm0, xmmword [0x6a59def0]
mov dword [rax + 0x20], 0xff410000
lea r13, [rax + 0x10]
movups xmmword [rax + 0x10], xmm0
mov word [rax + 0x24], r10w
call fcn.6a55fbd0
lea rcx, [0x6a59c24a]
test rax, rax
je 0x6a566981
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmovne rcx, rdx
xor r9d, r9d
mov r8d, 1
mov qword [rsp + 0x30], 0
mov edx, 0x80000000
mov dword [rsp + 0x28], pe_nt_image_headers64
mov dword [rsp + 0x20], 3
call qword [0x6a5a2290]
xor edx, edx
mov rbx, rax
mov rcx, rax
call qword [0x6a5a2298]
mov esi, eax
mov rax, qword [0x6a59e570]
call qword [rax]
movsxd r8, esi
xor edx, edx
mov rcx, rax
call qword [0x6a5a2620]
mov r8d, esi
mov rcx, rbx
mov qword [rsp + 0x20], 0
mov rsi, rax
mov qword [rsp + 0x48], rax
mov rdx, rax
lea r9, [rsp + 0x84]
call qword [0x6a5a2618]
movsxd r11, dword [rsi + 0x3c]
lea r15, [rsi + r11]
mov eax, dword [r15 + 0x88]
lea r12, [r15 + 0x18]
movzx ebx, word [r15 + 0x14]
cmp word [r15 + 6], 0
mov dword [rsp + 0x60], eax
lea rax, [r12 + rbx]
mov qword [rsp + 0x70], rax
je 0x6a566f3a
lea rbp, [r12 + rbx]
xor esi, esi
movdqa xmm6, xmmword [0x6a59dda0]
mov qword [rsp + 0xf0], rdi
mov r14, qword [0x6a59e7c0]
jmp 0x6a566a58
mov rbp, rbx
movzx ebx, word [r15 + 0x14]
lea eax, [rsi + rsi*4]
add rbx, r12
mov edx, 0x29
shl eax, 3
mov rcx, r14
movzx eax, ax
add rbx, rax
call fcn.6a55f100
lea rcx, [0x6a59cb00]
mov qword [rax + 0x20], 0
lea rdi, [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, 0x330eb0a8
call fcn.6a55fbd0
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
mov rdx, rax
call fcn.6a55c500
test rax, rax
cmovs rbx, rbp
add esi, 1
cmp word [r15 + 6], si
ja 0x6a566a50
mov rdi, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0x48]
movsxd rsi, dword [rsp + 0x60]
movsxd rdx, dword [rbx + 0xc]
movsxd rax, dword [rbx + 0x14]
add rsi, rcx
sub rsi, rdx
add rsi, rax
movsxd r14, dword [rsi + 0x20]
movsxd r15, dword [rsi + 0x1c]
mov r9d, dword [rsi + 0x18]
add r14, rcx
add r15, rcx
sub r14, rdx
sub r15, rdx
add r14, rax
test r9d, r9d
lea rcx, [r15 + rax]
mov qword [rsp + 0x68], rcx
jle 0x6a566f35
mov rcx, qword [rsp + 0xf8]
xor r12d, r12d
mov r15, r13
mov r13, rsi
mov dword [rsp + 0x60], r12d
mov rsi, qword [rsp + 0xf8]
add rcx, 0x10
mov qword [rsp + 0x78], rcx
jmp 0x6a566bb0
lea ebp, [r12 + 1]
test rcx, rcx
je 0x6a566b9b
test rdi, rdi
je 0x6a566b9b
mov rdx, rdi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x6a566bc7
cmp dword [r13 + 0x18], ebp
mov r12d, ebp
jle 0x6a566ec0
movsxd rdx, dword [rbx + 0xc]
movsxd rax, dword [rbx + 0x14]
movsxd rcx, r12d
movsxd rcx, dword [r14 + rcx*4]
add rcx, qword [rsp + 0x48]
sub rcx, rdx
add rcx, rax
cmp rdi, rcx
jne 0x6a566b80
mov r9, qword [0x6a59e800]
lea ebp, [r12 + 1]
mov rcx, qword [rsp + 0x68]
movsxd rax, ebp
mov rdx, qword [rsp + 0x70]
mov r8d, dword [r9]
movsxd rax, dword [rcx + rax*4]
movsxd rcx, dword [rdx + 0xc]
movsxd rdx, dword [rdx + 0x14]
test r8d, r8d
je 0x6a566c05
mov rax, qword [rsp + 0x68]
lea r8d, [r12 + 8]
movsxd r8, r8d
movsxd rax, dword [rax + r8*4]
add rax, qword [rsp + 0x48]
sub rax, rcx
mov rcx, qword [rsp + 0x50]
add rax, rdx
movzx edx, byte [rax + 4]
mov byte [rcx + 0x14], dl
movzx edx, byte [rax + 5]
mov byte [rcx + 0x15], dl
movzx edx, byte [rax + 6]
mov byte [rcx + 0x16], dl
movzx eax, byte [rax + 7]
mov edx, 0x8201868
mov byte [rcx + 0x17], al
lea rcx, [0x6a59cae0]
call fcn.6a55fbd0
test rax, rax
je 0x6a566f00
mov rdx, qword [rax]
lea rcx, [0x6a59c24a]
add rax, 0x10
test rdx, rdx
cmovne rcx, rax
call fcn.6a562dc0
mov rcx, rax
call qword [0x6a5a27b0]
mov rdx, rdi
mov rcx, rax
call qword [0x6a5a2870]
lea rdx, [rax + 0x27]
jmp 0x6a566c8d
add rax, 1
cmp rdx, rax
je 0x6a566ef0
cmp byte [rax], 0xf
jne 0x6a566c80
cmp byte [rax + 1], 5
jne 0x6a566c80
mov r12d, eax
mov rcx, rax
mov r11d, eax
mov r10d, eax
mov qword [rsp + 0x88], rax
shr rcx, 0x30
mov r9, rax
mov r8, rax
mov qword [rsp + 0x60], rcx
mov rcx, qword [rsp + 0x50]
shr r11d, 0x10
shr r10d, 0x18
shr r9, 0x20
shr r8, 0x28
lea rdx, [rcx + 0x1a]
mov byte [rcx + 0x1a], r12b
movzx ecx, ah
shr rax, 0x38
mov byte [rdx + 1], cl
movzx ecx, byte [rsp + 0x60]
mov byte [rdx + 2], r11b
mov byte [rdx + 3], r10b
mov byte [rdx + 4], r9b
mov byte [rdx + 5], r8b
mov byte [rdx + 6], cl
mov byte [rdx + 7], al
mov rdx, qword [0x6a570070]
test rdx, rdx
jle 0x6a566ea0
cmp r15, qword [rsp + 0x78]
lea rax, [r15 + 0x10]
mov r11, qword [rsp + 0x58]
setae cl
cmp rsi, rax
setae al
or cl, al
je 0x6a566f10
lea rax, [rdx - 1]
cmp rax, 0xe
jbe 0x6a566f10
lea rax, [r11 + 0x20]
mov rcx, rdx
and rcx, 0xfffffffffffffff0
lea r8, [r11 + rcx + 0x20]
mov rcx, rsi
sub rcx, r11
movdqu xmm1, xmmword [rax]
movups xmmword [rcx + rax - 0x20], xmm1
add rax, 0x10
cmp rax, r8
jne 0x6a566d50
mov rax, rdx
and rax, 0xfffffffffffffff0
cmp rdx, rax
je 0x6a566ea0
movzx ecx, byte [r15 + rax]
mov byte [rsi + rax], cl
lea rcx, [rax + 1]
cmp rdx, rcx
jle 0x6a566ea0
movzx ecx, byte [r15 + rax + 1]
mov byte [rsi + rax + 1], cl
lea rcx, [rax + 2]
cmp rdx, rcx
jle 0x6a566ea0
movzx ecx, byte [r15 + rax + 2]
mov byte [rsi + rax + 2], cl
lea rcx, [rax + 3]
cmp rdx, rcx
jle 0x6a566ea0
movzx ecx, byte [r15 + rax + 3]
mov byte [rsi + rax + 3], cl
lea rcx, [rax + 4]
cmp rdx, rcx
jle 0x6a566ea0
movzx ecx, byte [r15 + rax + 4]
mov byte [rsi + rax + 4], cl
lea rcx, [rax + 5]
cmp rdx, rcx
jle 0x6a566ea0
movzx ecx, byte [r15 + rax + 5]
mov byte [rsi + rax + 5], cl
lea rcx, [rax + 6]
cmp rdx, rcx
jle 0x6a566ea0
movzx ecx, byte [r15 + rax + 6]
mov byte [rsi + rax + 6], cl
lea rcx, [rax + 7]
cmp rdx, rcx
jle 0x6a566ea0
movzx ecx, byte [r15 + rax + 7]
mov byte [rsi + rax + 7], cl
lea rcx, [rax + 8]
cmp rdx, rcx
jle 0x6a566ea0
movzx ecx, byte [r15 + rax + 8]
mov byte [rsi + rax + 8], cl
lea rcx, [rax + 9]
cmp rdx, rcx
jle 0x6a566ea0
movzx ecx, byte [r15 + rax + 9]
mov byte [rsi + rax + 9], cl
lea rcx, [rax + 0xa]
cmp rdx, rcx
jle 0x6a566ea0
movzx ecx, byte [r15 + rax + 0xa]
mov byte [rsi + rax + 0xa], cl
lea rcx, [rax + 0xb]
cmp rdx, rcx
jle 0x6a566ea0
movzx ecx, byte [r15 + rax + 0xb]
mov byte [rsi + rax + 0xb], cl
lea rcx, [rax + 0xc]
cmp rdx, rcx
jle 0x6a566ea0
movzx ecx, byte [r15 + rax + 0xc]
mov byte [rsi + rax + 0xc], cl
lea rcx, [rax + 0xd]
cmp rdx, rcx
jle 0x6a566ea0
movzx ecx, byte [r15 + rax + 0xd]
mov byte [rsi + rax + 0xd], cl
lea rcx, [rax + 0xe]
cmp rdx, rcx
jle 0x6a566ea0
movzx edx, byte [r15 + rax + 0xe]
mov byte [rsi + rax + 0xe], dl
cmp dword [r13 + 0x18], ebp
mov dword [rsp + 0x60], 1
mov r12d, ebp
jg 0x6a566ba8
nop
nop word cs:[rax + rax]
mov r12d, dword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x90]
mov eax, r12d
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
call fcn.6a565830
nop dword [rax]
xor r12d, r12d
xor eax, eax
jmp 0x6a566c9b
lea rcx, [0x6a59c24a]
xor edx, edx
jmp 0x6a566c60
lea rax, [r11 + 0x20]
mov rcx, rsi
lea r8, [r11 + rdx + 0x20]
sub rcx, r11
nop
movzx edx, byte [rax]
mov byte [rcx + rax - 0x20], dl
add rax, 1
cmp r8, rax
jne 0x6a566f20
jmp 0x6a566ea0
xor r12d, r12d
jmp 0x6a566ec5
mov rbx, rax
jmp 0x6a566b06