Function at 0x140221000
Capabilities:
Access peb ldr_data
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x260
mov rax, qword gs:[0x60]
mov qword [0x1402241c8], rax
mov rax, qword [rax + 0x10]
mov qword [0x1402241c0], rax
movabs rax, 0x7ed61496d073b360
mov qword [rsp + 0x2a8], rax
mov rax, qword [rsp + 0x2a8]
mov qword [rsp + 0x70], rax
movabs rax, 0x4022eed022d607c5
mov qword [rsp + 0x2a8], rax
mov rax, qword [rsp + 0x2a8]
mov qword [rsp + 0x78], rax
movabs rax, 0x56a084497cc9ca4b
mov qword [rsp + 0x2a8], rax
mov rax, qword [rsp + 0x2a8]
mov qword [rsp + 0x80], rax
movabs rax, 0x953a51cccfae09c0
mov qword [rsp + 0x2a8], rax
mov rax, qword [rsp + 0x2a8]
mov qword [rsp + 0x88], rax
mov rax, qword [0x1402241c8]
mov rax, qword [rax + 0x18]
add rax, 0x20
mov qword [rsp + 0x2a8], rax
mov r15, qword [rax]
cmp r15, rax
je 0x14022114a
nop
mov rsi, qword [r15 + 0x20]
movsxd rax, dword [rsi + 0x3c]
mov ecx, dword [rax + rsi + 0x88]
test ecx, ecx
je 0x14022113d
mov r12d, dword [rsi + rcx + 0x1c]
lea rax, [rsi + rcx]
mov ebx, dword [rax + 0x20]
add r12, rsi
mov r13d, dword [rax + 0x24]
add rbx, rsi
mov r14d, dword [rax + 0x18]
add r13, rsi
xor edi, edi
test r14d, r14d
je 0x14022113d
nop word [rax + rax]
mov ecx, dword [rbx]
add rcx, rsi
call fcn.140222640
cmp eax, 0x266089c2
je 0x14022112e
inc edi
add rbx, 4
cmp edi, r14d
jb 0x140221110
jmp 0x14022113d
movzx ecx, word [r13 + rdi*2]
mov edx, dword [r12 + rcx*4]
add rdx, rsi
jne 0x14022114c
mov r15, qword [r15]
cmp r15, qword [rsp + 0x2a8]
jne 0x1402210d0
xor edx, edx
movabs rsi, 0x7ea414f3d000b315
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x2a8], rsi
movabs rdi, 0x4046eefe22e407f6
mov rax, qword [rsp + 0x2a8]
movabs rbx, 0x56a084497ca5ca27
mov qword [rsp + 0x30], rax
movabs r14, 0x953a51cccfae09c0
mov qword [rsp + 0x2a8], rdi
mov rax, qword [rsp + 0x2a8]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x2a8], rbx
mov rax, qword [rsp + 0x2a8]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x2a8], r14
mov rax, qword [rsp + 0x2a8]
mov qword [rsp + 0x48], rax
vmovdqu ymm0, ymmword [rsp + 0x30]
vpxor ymm1, ymm0, ymmword [rsp + 0x70]
vmovdqu ymmword [rsp + 0x70], ymm1
vzeroupper
call rdx
mov qword [rsp + 0x2a8], rsi
lea rcx, [0x140224000]
mov rax, qword [rsp + 0x2a8]
mov edx, 3
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x2a8], rdi
mov rax, qword [rsp + 0x2a8]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x2a8], rbx
mov rax, qword [rsp + 0x2a8]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x2a8], r14
mov rax, qword [rsp + 0x2a8]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x90]
vmovdqu ymm0, ymmword [rsp + 0x30]
vpxor ymm1, ymm0, ymmword [rsp + 0x70]
vmovdqu ymmword [rsp + 0x70], ymm1
vzeroupper
lea rax, [rax + 0x80]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rax - 0x70], xmm1
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rax - 0x60], xmm0
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rax - 0x50], xmm1
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rax - 0x40], xmm0
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rax - 0x30], xmm1
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x10], xmm1
sub rdx, 1
jne 0x140221261
movups xmm0, xmmword [rcx]
mov edx, 0x64
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax], xmm0
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rax + 0x10], xmm1
movups xmm1, xmmword [rcx + 0x30]
mov rcx, qword [0x1402241c0]
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm1
xor eax, eax
crc32 eax, byte [rcx]
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1402212e0
lea rcx, [rsp + 0x90]
mov edx, 0x1c0
nop dword [rax]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140221300
movzx r11d, byte [rsp + 0xa5]
test r11b, 2
je 0x140221339
mov rax, qword [0x1402241c8]
cmp byte [rax + 2], dl
je 0x140221339
lea rcx, [rsp + 0x2a0]
call fcn.140221a90
jmp 0x140221a75
test r11b, 1
je 0x140221646
mov rax, qword [0x1402241c8]
mov rax, qword [rax + 0x18]
add rax, 0x20
mov qword [rsp + 0x2a0], rax
mov r15, qword [rax]
cmp r15, rax
je 0x1402213ea
nop word [rax + rax]
mov rsi, qword [r15 + 0x20]
movsxd rax, dword [rsi + 0x3c]
mov ecx, dword [rax + rsi + 0x88]
test ecx, ecx
je 0x1402213dd
mov r12d, dword [rsi + rcx + 0x1c]
lea rax, [rsi + rcx]
mov ebx, dword [rax + 0x20]
add r12, rsi
mov r13d, dword [rax + 0x24]
add rbx, rsi
mov r14d, dword [rax + 0x18]
add r13, rsi
xor edi, edi
test r14d, r14d
je 0x1402213dd
nop word [rax + rax]
mov ecx, dword [rbx]
add rcx, rsi
call fcn.140222640
cmp eax, 0xede7343e
je 0x1402213ce
inc edi
add rbx, 4
cmp edi, r14d
jb 0x1402213b0
jmp 0x1402213dd
movzx ecx, word [r13 + rdi*2]
mov eax, dword [r12 + rcx*4]
add rax, rsi
jne 0x1402213ec
mov r15, qword [r15]
cmp r15, qword [rsp + 0x2a0]
jne 0x140221370
xor eax, eax
call rax
mov rcx, qword [0x1402241c8]
mov qword [rsp + 0x2b0], rax
mov rax, qword [rcx + 0x18]
add rax, 0x20
mov qword [rsp + 0x2a0], rax
mov r15, qword [rax]
cmp r15, rax
je 0x14022148f
nop word [rax + rax]
mov rsi, qword [r15 + 0x20]
movsxd rcx, dword [rsi + 0x3c]
mov eax, dword [rcx + rsi + 0x88]
test eax, eax
je 0x140221482
add rax, rsi
xor edi, edi
mov r12d, dword [rax + 0x1c]
mov ebx, dword [rax + 0x20]
add r12, rsi
mov r13d, dword [rax + 0x24]
add rbx, rsi
mov r14d, dword [rax + 0x18]
add r13, rsi
test r14d, r14d
je 0x140221482
mov ecx, dword [rbx]
add rcx, rsi
call fcn.140222640
cmp eax, 0x88f1ee12
je 0x140221473
inc edi
add rbx, 4
cmp edi, r14d
jb 0x140221455
jmp 0x140221482
movzx ecx, word [r13 + rdi*2]
mov eax, dword [r12 + rcx*4]
add rax, rsi
jne 0x140221491
mov r15, qword [r15]
cmp r15, qword [rsp + 0x2a0]
jne 0x140221420
xor eax, eax
mov rcx, qword [rsp + 0x2b0]
call rax
mov rcx, qword [0x1402241c8]
mov dword [rsp + 0x2a0], eax
mov rcx, qword [rcx + 0x18]
add rcx, 0x20
mov qword [rsp + 0x2a8], rcx
mov r15, qword [rcx]
cmp r15, rcx
je 0x14022154d
mov rax, rcx
nop dword [rax + rax]
mov rsi, qword [r15 + 0x20]
movsxd rcx, dword [rsi + 0x3c]
mov edx, dword [rcx + rsi + 0x88]
test edx, edx
je 0x140221545
mov r12d, dword [rsi + rdx + 0x1c]
lea rax, [rsi + rdx]
mov ebx, dword [rax + 0x20]
add r12, rsi
mov r13d, dword [rax + 0x24]
add rbx, rsi
mov r14d, dword [rax + 0x18]
add r13, rsi
xor edi, edi
test r14d, r14d
je 0x14022153d
nop word [rax + rax]
mov ecx, dword [rbx]
add rcx, rsi
call fcn.140222640
cmp eax, 0x42b2c9b6
je 0x14022152e
inc edi
add rbx, 4
cmp edi, r14d
jb 0x140221510
jmp 0x14022153d
movzx ecx, word [r13 + rdi*2]
mov eax, dword [r12 + rcx*4]
add rax, rsi
jne 0x14022154f
mov rax, qword [rsp + 0x2a8]
mov r15, qword [r15]
cmp r15, rax
jne 0x1402214d0
xor eax, eax
mov rcx, qword [rsp + 0x2b0]
mov edx, reloc.WS2_32.dll_ntohs
call rax
mov r8d, 0xc350
nop dword [rax]
nop dword [rax + rax]
xor eax, eax
xor ecx, ecx
cpuid
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x3c], edx
sub r8, 1
jne 0x140221570
mov rax, qword [0x1402241c8]
mov rax, qword [rax + 0x18]
add rax, 0x20
mov qword [rsp + 0x2a8], rax
mov r15, qword [rax]
cmp r15, rax
je 0x14022162a
nop dword [rax + rax]
mov rsi, qword [r15 + 0x20]
movsxd rax, dword [rsi + 0x3c]
mov ecx, dword [rax + rsi + 0x88]
test ecx, ecx
je 0x14022161d
mov r12d, dword [rsi + rcx + 0x1c]
lea rax, [rsi + rcx]
mov ebx, dword [rax + 0x20]
add r12, rsi
mov r13d, dword [rax + 0x24]
add rbx, rsi
mov r14d, dword [rax + 0x18]
add r13, rsi
xor edi, edi
test r14d, r14d
je 0x14022161d
nop word [rax + rax]
mov ecx, dword [rbx]
add rcx, rsi
call fcn.140222640
cmp eax, 0x42b2c9b6
je 0x14022160e
inc edi
add rbx, 4
cmp edi, r14d
jb 0x1402215f0
jmp 0x14022161d
movzx ecx, word [r13 + rdi*2]
mov eax, dword [r12 + rcx*4]
add rax, rsi
jne 0x14022162c
mov r15, qword [r15]
cmp r15, qword [rsp + 0x2a8]
jne 0x1402215b0
xor eax, eax
mov edx, dword [rsp + 0x2a0]
mov rcx, qword [rsp + 0x2b0]
call rax
movzx r11d, byte [rsp + 0xa5]
movzx r14d, byte [rsp + 0xa4]
xor sil, sil
mov rdi, qword [rsp + 0x90]
movaps xmmword [rsp + 0x250], xmm6
mov byte [rsp + 0x2a0], 0
mov byte [rsp + 0x2a8], sil
test r14b, r14b
je 0x140221a58
movaps xmm6, xmmword [rsp + 0x90]
movzx edx, r11b
shr dl, 4
movzx eax, r11b
and dl, 1
shr al, 2
and al, 1
mov byte [rsp + 0x2b8], dl
mov byte [rsp + 0x2b0], al
mov r15d, 0x40
nop word [rax + rax]
movzx eax, sil
lea r10, [rsp + 0xa6]
imul rcx, rax, 0xd
add r10, rcx
mov qword [rsp + 0x58], r10
mov r12d, dword [r10 + 5]
add r12, qword [0x1402241c0]
mov qword [rsp + 0x50], r12
test dl, dl
je 0x1402218ff
movzx eax, byte [r10]
test al, 4
jne 0x1402218ff
test al, 1
je 0x1402218ff
mov rax, qword [0x1402241c8]
mov dword [rsp + 0x24], 0
mov rax, qword [rax + 0x18]
add rax, 0x20
mov qword [rsp + 0x60], rax
mov r15, qword [rax]
cmp r15, rax
je 0x1402217a0
nop dword [rax]
mov rsi, qword [r15 + 0x20]
movsxd rax, dword [rsi + 0x3c]
mov ecx, dword [rax + rsi + 0x88]
test ecx, ecx
je 0x140221791
mov r12d, dword [rsi + rcx + 0x1c]
lea rax, [rsi + rcx]
mov ebx, dword [rax + 0x20]
add r12, rsi
mov r13d, dword [rax + 0x24]
add rbx, rsi
mov r14d, dword [rax + 0x18]
add r13, rsi
xor edi, edi
test r14d, r14d
je 0x140221791
nop word [rax + rax]
mov ecx, dword [rbx]
add rcx, rsi
call fcn.140222640
cmp eax, 0xa2b3228a
je 0x14022177e
inc edi
add rbx, 4
cmp edi, r14d
jb 0x140221760
jmp 0x140221791
movzx ecx, word [r13 + rdi*2]
mov eax, dword [r12 + rcx*4]
add rax, rsi
jne 0x14022188e
mov r15, qword [r15]
cmp r15, qword [rsp + 0x60]
jne 0x140221720
mov r12, qword [rsp + 0x50]
xor eax, eax
mov rcx, qword [rsp + 0x58]
lea r9, [rsp + 0x24]
mov r8d, 4
mov edi, dword [rcx + 9]
mov rcx, r12
mov edx, edi
call rax
lea r8, [rdi + r12]
mov rbx, r12
cmp r12, r8
jae 0x140221810
mov r9, qword [rsp + 0x90]
mov r10d, 0x40
mov r12, qword [rsp + 0x98]
nop
movzx edx, byte [rbx]
xor eax, eax
mov qword [rsp + 0x38], rax
mov ecx, r10d
and ecx, 0x3f
movdqa xmmword [rsp + 0x30], xmm6
mov rax, r12
shr rax, cl
sub dl, al
xor dl, r9b
mov byte [rbx], dl
inc rbx
cmp rbx, r8
jb 0x1402217e0
mov r12, qword [rsp + 0x50]
mov rax, qword [0x1402241c8]
mov rax, qword [rax + 0x18]
add rax, 0x20
mov qword [rsp + 0x30], rax
mov r15, qword [rax]
cmp r15, rax
je 0x1402218b9
mov rsi, qword [r15 + 0x20]
movsxd rax, dword [rsi + 0x3c]
mov ecx, dword [rax + rsi + 0x88]
test ecx, ecx
je 0x1402218ab
mov r13d, dword [rsi + rcx + 0x1c]
lea rax, [rsi + rcx]
mov ebx, dword [rax + 0x20]
add r13, rsi
mov ecx, dword [rax + 0x24]
add rbx, rsi
mov r14d, dword [rax + 0x18]
add rcx, rsi
xor edi, edi
mov qword [rsp + 0x60], rcx
test r14d, r14d
je 0x1402218ab
nop dword [rax + rax]
mov ecx, dword [rbx]
add rcx, rsi
call fcn.140222640
cmp eax, 0xa2b3228a
je 0x140221898
inc edi
add rbx, 4
cmp edi, r14d
jb 0x140221870
jmp 0x1402218ab
mov r12, qword [rsp + 0x50]
jmp 0x1402217a2
mov rcx, qword [rsp + 0x60]
movzx ecx, word [rcx + rdi*2]
mov eax, dword [r13 + rcx*4]
add rax, rsi
jne 0x1402218bb
mov r15, qword [r15]
cmp r15, qword [rsp + 0x30]
jne 0x140221830
xor eax, eax
mov rcx, qword [rsp + 0x58]
lea r9, [rsp + 0x24]
mov r8d, dword [rsp + 0x24]
mov edx, dword [rcx + 9]
mov rcx, r12
call rax
mov r10, qword [rsp + 0x58]
mov r15d, 0x40
movzx r11d, byte [rsp + 0xa5]
mov rdi, qword [rsp + 0x90]
movzx esi, byte [rsp + 0x2a8]
movzx r14d, byte [rsp + 0xa4]
cmp byte [rsp + 0x2b0], 0
je 0x1402219b3
movzx ecx, byte [r10]
test cl, 2
je 0x1402219b3
mov r9d, dword [r10 + 9]
xor edx, edx
add r9, r12
mov rax, r12
cmp r12, r9
jae 0x1402219ad
test cl, 4
je 0x1402219a0
mov r12, qword [rsp + 0x98]
nop dword [rax]
movzx r8d, byte [rax]
xor ecx, ecx
mov qword [rsp + 0x38], rcx
movdqa xmmword [rsp + 0x30], xmm6
test r15b, r15b
je 0x140221978
cmp r15b, 0x40
jb 0x14022196b
movzx ecx, r15b
mov rbx, r12
and ecx, 0x3f
shr rbx, cl
jmp 0x14022197d
mov rbx, rdi
movzx ecx, r15b
shrd rbx, r12, cl
jmp 0x14022197d
mov rbx, qword [rsp + 0x30]
sub r8b, bl
inc rax
xor r8b, dil
crc32 edx, r8b
cmp rax, r9
jb 0x140221940
mov r12, qword [rsp + 0x50]
jmp 0x1402219ad
crc32 edx, byte [rax]
inc rax
cmp rax, r9
jb 0x1402219a0
cmp dword [r10 + 1], edx
jne 0x140221a2d
test r11b, 8
je 0x140221a08
test byte [r10], 4
je 0x140221a08
mov ebx, dword [r10 + 9]
add rbx, 0xfff
add rbx, r12
and rbx, 0xfffffffffffff000
cmp r12, rbx
jae 0x1402219fd
nop dword [rax]
mov rcx, r12
call fcn.140222810
add r12, 0x1000
cmp r12, rbx
jb 0x1402219e0
movzx r11d, byte [rsp + 0xa5]
mov dl, 1
mov byte [rsp + 0x2a0], dl
jmp 0x140221a10
movzx edx, byte [rsp + 0x2a0]
inc sil
mov byte [rsp + 0x2a8], sil
cmp sil, r14b
jae 0x140221a39
movzx edx, byte [rsp + 0x2b8]
jmp 0x1402216b0
lea rcx, [rsp + 0x20]
call fcn.140221fa0
jmp 0x140221a6d
test dl, dl
je 0x140221a58
lea rcx, [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm6
call fcn.1402228e0
test al, al
jne 0x140221a58
call fcn.140222360
jmp 0x140221a6d
mov eax, dword [rsp + 0xa0]
mov ecx, edi
xor rcx, rax
add rcx, qword [0x1402241c0]
call rcx
movaps xmm6, xmmword [rsp + 0x250]
add rsp, 0x260
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret