Function at 0x1400ab410
Capabilities:
Access peb ldr_data
Encode data using xor
Get process filename
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, 0x618
xor r8d, r8d
movabs rdx, 0x7882c5fb07a585af
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov r14, qword [rax + 0x18]
movabs rax, 0x63ef6bbe42ad28de
mov qword [rsp + 0x40], rax
lea r13, [rsp + 0x1d0]
mov r12, rcx
movabs rax, 0xdc549f7899129637
mov qword [rsp + 0x48], rdx
mov ecx, 0x20
mov rdi, r13
mov rbp, r14
mov qword [rsp + 0x60], rax
lea rsi, [rsp + 0x3f0]
movabs rdx, 0x126c3a25d5f3ddfe
movabs rax, 0x8d023a77126c3a
mov qword [rsp + 0x68], rdx
lea r15, [rsp + 0x500]
movabs rdx, 0x12323a72d5b1ddf7
lea rbx, [rsp + 0xc0]
mov qword [rsp + 0x6d], rax
movabs rax, 0xdc569f6e99039632
mov qword [rsp + 0xa0], rax
movabs rax, 0x663a3512323a72d5
mov qword [rsp + 0xa8], rdx
movabs rdx, 0xe22be3f7ebcc8d
mov qword [rsp + 0xab], rax
movabs rax, 0x9d5bf06ec912f31e
mov qword [rsp + 0x30], rax
movabs rax, 0xae68eb79de14f215
mov qword [rsp + 0x80], rax
movabs rax, 0x9b98d3e8705e7f
mov qword [rsp + 0x90], rax
xor eax, eax
rep stosq qword [rdi], rax
mov ecx, 0x20
mov byte [rsp + 0x50], 0
mov qword [rsp + 0xb3], rdx
movabs rdx, 0x4932b0afb9f6
mov qword [rsp + 0x38], rdx
movabs rdx, 0x53654834b1b8befd
mov qword [rsp + 0x88], rdx
mov rdx, rbx
mov dword [rdi], 0
lea rdi, [rsp + 0x2e0]
mov qword [rsp + 0x20], rdi
rep stosq qword [rdi], rax
mov ecx, 0x20
mov dword [rdi], 0
mov rdi, rsi
rep stosq qword [rdi], rax
mov ecx, 0x20
mov dword [rdi], 0
mov rdi, r15
rep stosq qword [rdi], rax
mov dword [rdi], 0
lea rdi, [rsp + 0x40]
mov rcx, rdi
call fcn.1400aaa10
mov qword [rsp + 0x28], rsi
lea rcx, [rsp + 0x60]
movzx eax, byte [rsp + 0x1c0]
movzx r9d, byte [rsp + 0x1c1]
lea r11, [rsp + 0x75]
lea r10d, [rax + 1]
sub r10d, ecx
lea edx, [r10 + rcx]
movzx edx, dl
add rdx, rbx
movzx eax, byte [rdx]
add r9d, eax
movzx r8d, r9b
add r8, rbx
movzx esi, byte [r8]
mov byte [rdx], sil
mov byte [r8], al
add al, byte [rdx]
movzx edx, al
add al, byte [rsp + rdx + 0xc0]
xor byte [rcx], al
add rcx, 1
cmp r11, rcx
jne 0x1400ab5d0
mov rsi, qword [rsp + 0x28]
mov rcx, rdi
xor r8d, r8d
mov rdx, rbx
call fcn.1400aaa10
movzx eax, byte [rsp + 0x1c0]
lea rcx, [rsp + 0xa0]
movzx r9d, byte [rsp + 0x1c1]
mov qword [rsp + 0x28], rsi
lea r11, [rsp + 0xbb]
lea r10d, [rax + 1]
sub r10d, ecx
nop dword [rax + rax]
lea edx, [r10 + rcx]
movzx edx, dl
add rdx, rbx
movzx eax, byte [rdx]
add r9d, eax
movzx r8d, r9b
add r8, rbx
movzx esi, byte [r8]
mov byte [rdx], sil
mov byte [r8], al
add al, byte [rdx]
movzx edx, al
add al, byte [rsp + rdx + 0xc0]
xor byte [rcx], al
add rcx, 1
cmp r11, rcx
jne 0x1400ab650
mov rcx, rdi
xor r8d, r8d
mov rdx, rbx
mov rsi, qword [rsp + 0x28]
call fcn.1400aaa10
lea rcx, [rsp + 0x30]
lea rdi, [rsp + 0x40]
movzx eax, byte [rsp + 0x1c0]
movzx r9d, byte [rsp + 0x1c1]
lea r10d, [rax + 1]
sub r10d, ecx
nop dword [rax]
lea edx, [r10 + rcx]
movzx edx, dl
add rdx, rbx
movzx eax, byte [rdx]
add r9d, eax
movzx r8d, r9b
add r8, rbx
movzx r11d, byte [r8]
mov byte [rdx], r11b
mov byte [r8], al
add al, byte [rdx]
movzx edx, al
add al, byte [rsp + rdx + 0xc0]
xor byte [rcx], al
add rcx, 1
cmp rdi, rcx
jne 0x1400ab6c0
mov rcx, rdi
xor r8d, r8d
mov rdx, rbx
call fcn.1400aaa10
movzx eax, byte [rsp + 0x1c0]
lea rcx, [rsp + 0x80]
movzx r9d, byte [rsp + 0x1c1]
lea r11, [rsp + 0x98]
lea r10d, [rax + 1]
sub r10d, ecx
nop
lea edx, [r10 + rcx]
movzx edx, dl
add rdx, rbx
movzx eax, byte [rdx]
add r9d, eax
movzx r8d, r9b
add r8, rbx
movzx edi, byte [r8]
mov byte [rdx], dil
mov byte [r8], al
add al, byte [rdx]
movzx edx, al
add al, byte [rsp + rdx + 0xc0]
xor byte [rcx], al
add rcx, 1
cmp r11, rcx
jne 0x1400ab730
mov rax, qword [rsp + 0x6d]
movdqa xmm0, xmmword [rsp + 0x60]
mov r8, rsi
mov r9d, 2
movdqa xmm1, xmmword [rsp + 0xa0]
movdqa xmm3, xmmword [rsp + 0x30]
movdqu xmm2, xmmword [rsp + 0xab]
movaps xmmword [rsp + 0x1d0], xmm0
movdqa xmm4, xmmword [rsp + 0x80]
mov qword [rsp + 0x1dd], rax
mov rax, qword [rsp + 0x90]
movaps xmmword [rsp + 0x2e0], xmm1
mov qword [rsp + 0x510], rax
movups xmmword [rsp + 0x2eb], xmm2
movaps xmmword [rsp + 0x3f0], xmm3
movaps xmmword [rsp + 0x500], xmm4
jmp 0x1400ab7e9
cmp rbp, r14
je 0x1400ab940
mov rbp, qword [rbp]
mov r10, qword [rbp + 0x30]
test r10, r10
je 0x1400ab7e0
mov rsi, qword [rbp + 0x60]
cmp word [rsi], 0
je 0x1400abab8
mov rax, rsi
nop word [rax + rax]
add rax, 2
cmp word [rax], 0
jne 0x1400ab810
sub rax, rsi
cmp rax, 0x80
ja 0x1400ab7e0
mov rdx, rax
sar rdx, 1
test rax, rax
je 0x1400abab8
test rdx, rdx
mov rdi, rbx
cmove rax, r9
cmp eax, 8
jb 0x1400ab84b
mov ecx, eax
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
xor ecx, ecx
test al, 4
je 0x1400ab85a
mov ecx, dword [rsi]
mov dword [rdi], ecx
mov ecx, 4
test al, 2
je 0x1400ab86c
movzx r11d, word [rsi + rcx]
mov word [rdi + rcx], r11w
add rcx, 2
test al, 1
je 0x1400ab877
movzx eax, byte [rsi + rcx]
mov byte [rdi + rcx], al
xor eax, eax
mov word [rsp + rdx*2 + 0xc0], ax
movzx eax, word [rsp + 0xc0]
test ax, ax
je 0x1400abac6
mov rdx, rbx
nop dword [rax]
lea r11d, [rax - 0x41]
mov ecx, eax
or ecx, 0x60
cmp r11w, 0x1a
cmovb eax, ecx
add rdx, 2
mov word [rdx - 2], ax
movzx eax, word [rdx]
test ax, ax
jne 0x1400ab898
movzx r11d, word [rsp + 0xc0]
test r11w, r11w
je 0x1400abac6
mov eax, r11d
mov rdx, r13
mov rcx, rbx
jmp 0x1400ab8f8
movzx eax, word [rcx + 2]
add rcx, 2
lea rsi, [rdx + 2]
test ax, ax
je 0x1400abaa0
mov rdx, rsi
cmp word [rdx], ax
je 0x1400ab8e0
mov rax, qword [rsp + 0x20]
mov rdx, rbx
jmp 0x1400ab913
mov rax, rcx
cmp word [rax], r11w
jne 0x1400ab7e0
movzx r11d, word [rdx + 2]
add rdx, 2
lea rcx, [rax + 2]
test r11w, r11w
jne 0x1400ab910
movzx eax, word [rax + 2]
test ax, ax
jne 0x1400ab7e0
nop dword [rax]
movsxd rax, dword [r10 + 0x3c]
mov qword [r12 + 0x20], r10
mov rsi, r8
mov r9d, 1
movzx edi, byte [rsp + 0x3f0]
sub r9, r8
mov edx, dword [r10 + rax + 0x88]
add rdx, r10
mov r11d, dword [rdx + 0x20]
mov ebx, dword [rdx + 0x24]
add r11, r10
add rbx, r10
nop dword [rax]
mov ebp, dword [r11]
mov rax, rsi
add rbp, r10
movzx ecx, byte [rbp]
test cl, cl
jne 0x1400ab9a4
jmp 0x1400ababf
lea rcx, [rax + rbp]
lea r8, [rax + 1]
movzx ecx, byte [rcx + r9]
test cl, cl
je 0x1400ab9b8
mov rax, r8
cmp byte [rax], cl
je 0x1400ab990
add r11, 4
add rbx, 2
jmp 0x1400ab978
movzx eax, byte [rax + 1]
test al, al
jne 0x1400ab9a8
movzx eax, word [rbx]
mov edx, dword [rdx + 0x1c]
mov r9d, 1
mov rbx, qword [r12 + 0x28]
movzx esi, byte [rsp + 0x500]
sub r9, r15
shl eax, 2
add rdx, r10
cdqe
mov eax, dword [rdx + rax]
add r10, rax
movsxd rax, dword [rbx + 0x3c]
mov qword [r12], r10
mov edx, dword [rax + rbx + 0x88]
mov rax, r15
add rdx, rbx
mov r10d, dword [rdx + 0x20]
mov r11d, dword [rdx + 0x24]
add r10, rbx
add r11, rbx
mov edi, dword [r10]
add rdi, rbx
movzx ecx, byte [rdi]
test cl, cl
jne 0x1400aba34
jmp 0x1400aba50
lea rcx, [rax + rdi]
lea r8, [rax + 1]
movzx ecx, byte [rcx + r9]
test cl, cl
je 0x1400aba88
mov rax, r8
cmp byte [rax], cl
je 0x1400aba20
add r10, 4
add r11, 2
mov edi, dword [r10]
mov rax, r15
add rdi, rbx
movzx ecx, byte [rdi]
test cl, cl
jne 0x1400aba34
mov eax, esi
test al, al
jne 0x1400aba38
movzx eax, word [r11]
mov edx, dword [rdx + 0x1c]
shl eax, 2
add rdx, rbx
cdqe
mov eax, dword [rdx + rax]
add rax, rbx
mov qword [r12 + 8], rax
add rsp, 0x618
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, byte [rax + 1]
test al, al
je 0x1400aba56
add r10, 4
add r11, 2
jmp 0x1400aba40
cmp word [rdx + 2], 0
jne 0x1400ab8fd
mov qword [r12 + 0x28], r10
jmp 0x1400ab7e0
xor edx, edx
jmp 0x1400ab877
mov eax, edi
jmp 0x1400ab9bc
cmp word [rsp + 0x1d0], 0
je 0x1400abaab
movzx eax, word [rsp + 0x2e0]
jmp 0x1400ab934