Function at 0x140015030
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push rbx
push rsi
push rdi
push r12
push r14
push r15
push rbp
sub rsp, 0x140
mov r8, rcx
mov qword [rsp + 0xd0], r13
lea r13, [rsp + 0x3f]
movzx r11d, byte [rdx]
and r13, 0xffffffffffffffe0
movzx eax, byte [rdx + 1]
shl r11d, 0x18
shl eax, 0x10
movzx r9d, byte [rdx + 2]
or r11d, eax
shl r9d, 8
or r11d, r9d
movzx ebp, byte [rdx + 4]
movzx eax, byte [rdx + 5]
shl ebp, 0x18
shl eax, 0x10
movzx r10d, byte [rdx + 3]
or r11d, r10d
movzx r10d, byte [rdx + 8]
or ebp, eax
movzx esi, byte [rdx + 9]
movzx ecx, byte [rdx + 6]
shl r10d, 0x18
shl esi, 0x10
shl ecx, 8
or r10d, esi
movzx edi, byte [rdx + 0xa]
or ebp, ecx
shl edi, 8
movzx ebx, byte [rdx + 7]
or r10d, edi
or ebp, ebx
mov dword [rsp + 0x94], ebp
movzx ebp, byte [rdx + 0x10]
movzx eax, byte [rdx + 0x11]
movzx r9d, byte [rdx + 0xb]
or r10d, r9d
movzx r15d, byte [rdx + 0xc]
movzx r12d, byte [rdx + 0xd]
shl ebp, 0x18
shl eax, 0x10
shl r15d, 0x18
or ebp, eax
shl r12d, 0x10
mov dword [rsp + 0x98], r10d
or r15d, r12d
movzx r10d, byte [rdx + 0x14]
movzx esi, byte [rdx + 0x15]
movzx ecx, byte [rdx + 0x12]
shl r10d, 0x18
shl esi, 0x10
movzx r14d, byte [rdx + 0xe]
or r10d, esi
shl ecx, 8
shl r14d, 8
or ebp, ecx
movzx edi, byte [rdx + 0x16]
or r15d, r14d
shl edi, 8
movzx ebx, byte [rdx + 0x13]
or r10d, edi
mov dword [rsp + 0x90], r11d
or ebp, ebx
movzx r11d, byte [rdx + 0xf]
or r15d, r11d
movzx eax, byte [rdx + 0x18]
movzx r11d, byte [rdx + 0x19]
mov dword [rsp + 0xa0], ebp
shl eax, 0x18
shl r11d, 0x10
movzx ebp, byte [rdx + 0x1c]
or eax, r11d
movzx ecx, byte [rdx + 0x1d]
movzx r9d, byte [rdx + 0x17]
or r10d, r9d
shl ebp, 0x18
shl ecx, 0x10
movzx r9d, byte [rdx + 0x20]
or ebp, ecx
movzx esi, byte [rdx + 0x21]
shl r9d, 0x18
shl esi, 0x10
movzx r12d, byte [rdx + 0x1a]
or r9d, esi
movzx ebx, byte [rdx + 0x1e]
shl r12d, 8
shl ebx, 8
or eax, r12d
movzx edi, byte [rdx + 0x22]
or ebp, ebx
shl edi, 8
or r9d, edi
movzx r14d, byte [rdx + 0x1b]
or eax, r14d
mov dword [rsp + 0x9c], r15d
movzx r15d, byte [rdx + 0x1f]
or ebp, r15d
mov dword [rsp + 0xa8], eax
mov dword [rsp + 0xa4], r10d
mov dword [rsp + 0xac], ebp
movzx eax, byte [rdx + 0x23]
or r9d, eax
movzx r12d, byte [rdx + 0x24]
movzx r10d, byte [rdx + 0x25]
movzx ebp, byte [rdx + 0x28]
movzx eax, byte [rdx + 0x29]
shl r12d, 0x18
shl r10d, 0x10
shl ebp, 0x18
or r12d, r10d
shl eax, 0x10
movzx r11d, byte [rdx + 0x26]
or ebp, eax
movzx eax, byte [rdx + 0x30]
movzx r10d, byte [rdx + 0x31]
shl r11d, 8
shl eax, 0x18
or r12d, r11d
shl r10d, 0x10
mov dword [rsp + 0xb0], r9d
or eax, r10d
movzx r9d, byte [rdx + 0x2c]
movzx esi, byte [rdx + 0x2d]
movzx r11d, byte [rdx + 0x32]
shl r9d, 0x18
shl esi, 0x10
shl r11d, 8
or r9d, esi
vmovdqu xmm0, xmmword [r8]
vmovdqu xmm1, xmmword [r8 + 0x10]
movzx edi, byte [rdx + 0x2e]
or eax, r11d
movzx ecx, byte [rdx + 0x27]
or r12d, ecx
shl edi, 8
movzx ecx, byte [rdx + 0x2a]
or r9d, edi
shl ecx, 8
movzx r15d, byte [rdx + 0x33]
or eax, r15d
mov dword [rsp + 0xb4], r12d
or ebp, ecx
mov dword [rsp + 0xc0], eax
vmovdqu xmmword [r13], xmm0
movzx esi, byte [rdx + 0x34]
movzx ecx, byte [rdx + 0x35]
movzx r11d, byte [rdx + 0x38]
movzx edi, byte [rdx + 0x39]
movzx eax, byte [rdx + 0x3c]
movzx r12d, byte [rdx + 0x3d]
vmovdqu xmm0, xmmword [r8 + 0x20]
shl esi, 0x18
shl ecx, 0x10
shl r11d, 0x18
or esi, ecx
shl edi, 0x10
shl eax, 0x18
or r11d, edi
shl r12d, 0x10
movzx r14d, byte [rdx + 0x2f]
or r9d, r14d
movzx ebx, byte [rdx + 0x2b]
or ebp, ebx
mov dword [rsp + 0xbc], r9d
or eax, r12d
movzx ebx, byte [rdx + 0x36]
mov r12d, 0xec4e6c89
movzx r9d, byte [rdx + 0x3a]
movzx r14d, byte [rdx + 0x3e]
shl ebx, 8
shl r9d, 8
or esi, ebx
shl r14d, 8
or r11d, r9d
or eax, r14d
mov r9d, 0x299f31d0
mov dword [rsp + 0xb8], ebp
vpxor xmm2, xmm0, xmmword [0x1401550d0]
movzx ebp, byte [rdx + 0x37]
or esi, ebp
movzx r10d, byte [rdx + 0x3b]
or r11d, r10d
movzx edx, byte [rdx + 0x3f]
or eax, edx
mov dword [rsp + 0xc4], esi
mov r10d, 0xa4093822
mov dword [rsp + 0xc8], r11d
mov r11d, 0x82efa98
mov dword [rsp + 0xcc], eax
vmovdqu xmmword [r13 + 0x10], xmm1
vmovdqu xmmword [r13 + 0x20], xmm2
cmp dword [r8 + 0x3c], 0
jne 0x140015382
mov r9d, dword [r8 + 0x30]
mov r10d, r9d
mov r12d, dword [r8 + 0x34]
mov r11d, r12d
xor r10d, 0xa4093822
xor r9d, 0x299f31d0
xor r11d, 0x82efa98
xor r12d, 0xec4e6c89
mov edx, dword [r13 + 0x20]
mov eax, dword [r13 + 0x28]
mov ebx, dword [r13 + 0xc]
mov dword [rsp + 0xd8], edx
mov dword [rsp + 0xe0], eax
mov dword [rsp + 0xe8], ebx
mov r14d, dword [r13]
mov edi, dword [r13 + 0x10]
mov r15d, dword [r13 + 4]
mov edx, dword [r13 + 0x14]
mov ecx, dword [r13 + 0x24]
mov ebp, dword [r13 + 8]
mov esi, dword [r13 + 0x18]
mov ebx, dword [r13 + 0x1c]
mov eax, dword [r13 + 0x2c]
mov qword [rsp + 0x108], 0
mov dword [rsp + 0x80], 0
mov qword [rsp + 0x88], r8
mov dword [rsp + 0xf8], r12d
lea r8, [0x140000000]
mov r12, qword [rsp + 0x108]
add r14d, edi
shl r12, 4
add r15d, edx
mov dword [rsp + 0xf0], r11d
add ebp, esi
mov dword [rsp + 0x110], ebx
mov dword [rsp + 0x118], eax
movzx r11d, byte [r8 + r12 + 0x152e00]
movzx ebx, byte [r8 + r12 + 0x152e01]
mov eax, dword [rsp + r11*4 + 0x90]
xor eax, dword [r8 + rbx*4 + 0x152ee0]
add r14d, eax
xor r10d, r14d
shld r10d, r10d, 0x10
mov eax, dword [rsp + 0xd8]
add eax, r10d
xor edi, eax
shld edi, edi, 0x14
mov ebx, dword [rsp + rbx*4 + 0x90]
add r14d, edi
xor ebx, dword [r8 + r11*4 + 0x152ee0]
add r14d, ebx
xor r10d, r14d
shld r10d, r10d, 0x18
mov dword [rsp + 0x100], r10d
add eax, r10d
movzx r10d, byte [r8 + r12 + 0x152e02]
xor edi, eax
mov dword [rsp + 0x120], r14d
movzx r14d, byte [r8 + r12 + 0x152e03]
mov r11d, dword [rsp + r10*4 + 0x90]
movzx ebx, byte [r8 + r12 + 0x152e04]
xor r11d, dword [r8 + r14*4 + 0x152ee0]
add r15d, r11d
xor r9d, r15d
shld r9d, r9d, 0x10
shld edi, edi, 0x19
add ecx, r9d
xor edx, ecx
shld edx, edx, 0x14
mov r11d, dword [rsp + r14*4 + 0x90]
add r15d, edx
xor r11d, dword [r8 + r10*4 + 0x152ee0]
add r15d, r11d
xor r9d, r15d
shld r9d, r9d, 0x18
add ecx, r9d
xor edx, ecx
shld edx, edx, 0x19
mov dword [rsp + 0x130], edx
movzx edx, byte [r8 + r12 + 0x152e05]
mov dword [rsp + 0x128], r15d
mov r15d, dword [rsp + rbx*4 + 0x90]
nop dword [rax]
xor r15d, dword [r8 + rdx*4 + 0x152ee0]
add ebp, r15d
mov r11d, dword [rsp + 0xf0]
xor r11d, ebp
shld r11d, r11d, 0x10
mov r15d, dword [rsp + 0xe0]
add r15d, r11d
xor esi, r15d
shld esi, esi, 0x14
mov r14d, dword [rsp + rdx*4 + 0x90]
add ebp, esi
xor r14d, dword [r8 + rbx*4 + 0x152ee0]
add ebp, r14d
xor r11d, ebp
shld r11d, r11d, 0x18
add r15d, r11d
mov dword [rsp + 0xe0], r15d
xor esi, r15d
movzx r15d, byte [r8 + r12 + 0x152e06]
movzx edx, byte [r8 + r12 + 0x152e07]
shld esi, esi, 0x19
mov dword [rsp + 0x138], esi
mov esi, dword [rsp + r15*4 + 0x90]
mov ebx, dword [rsp + 0x110]
mov r14d, dword [rsp + 0xe8]
xor esi, dword [r8 + rdx*4 + 0x152ee0]
add r14d, ebx
add r14d, esi
mov esi, dword [rsp + 0xf8]
xor esi, r14d
shld esi, esi, 0x10
mov r10d, dword [rsp + 0x118]
add r10d, esi
xor ebx, r10d
shld ebx, ebx, 0x14
mov edx, dword [rsp + rdx*4 + 0x90]
add r14d, ebx
xor edx, dword [r8 + r15*4 + 0x152ee0]
add r14d, edx
xor esi, r14d
add r14d, edi
shld esi, esi, 0x18
movzx r15d, byte [r8 + r12 + 0x152e0e]
add r10d, esi
movzx edx, byte [r8 + r12 + 0x152e0f]
xor ebx, r10d
mov dword [rsp + 0x118], r10d
mov r10d, dword [rsp + r15*4 + 0x90]
xor r10d, dword [r8 + rdx*4 + 0x152ee0]
add r14d, r10d
xor r11d, r14d
shld r11d, r11d, 0x10
shld ebx, ebx, 0x19
add ecx, r11d
add ebp, ebx
xor edi, ecx
shld edi, edi, 0x14
mov r10d, dword [rsp + rdx*4 + 0x90]
add r14d, edi
xor r10d, dword [r8 + r15*4 + 0x152ee0]
add r14d, r10d
movzx r10d, byte [r8 + r12 + 0x152e0c]
xor r11d, r14d
movzx r15d, byte [r8 + r12 + 0x152e0d]
mov dword [rsp + 0xe8], r14d
mov r14d, dword [rsp + r10*4 + 0x90]
nop
xor r14d, dword [r8 + r15*4 + 0x152ee0]
add ebp, r14d
xor r9d, ebp
shld r9d, r9d, 0x10
shld r11d, r11d, 0x18
add eax, r9d
add ecx, r11d
xor ebx, eax
xor edi, ecx
shld ebx, ebx, 0x14
shld edi, edi, 0x19
mov r14d, dword [rsp + r15*4 + 0x90]
add ebp, ebx
xor r14d, dword [r8 + r10*4 + 0x152ee0]
add ebp, r14d
xor r9d, ebp
movzx r10d, byte [r8 + r12 + 0x152e08]
shld r9d, r9d, 0x18
movzx edx, byte [r8 + r12 + 0x152e09]
add eax, r9d
mov r15d, dword [rsp + r10*4 + 0x90]
xor ebx, eax
mov dword [rsp + 0xd8], eax
mov eax, dword [rsp + 0x130]
mov r14d, dword [rsp + 0x120]
xor r15d, dword [r8 + rdx*4 + 0x152ee0]
add r14d, eax
add r14d, r15d
xor esi, r14d
shld esi, esi, 0x10
shld ebx, ebx, 0x19
nop
mov r15d, dword [rsp + 0xe0]
add r15d, esi
xor eax, r15d
shld eax, eax, 0x14
mov edx, dword [rsp + rdx*4 + 0x90]
add r14d, eax
xor edx, dword [r8 + r10*4 + 0x152ee0]
add r14d, edx
xor esi, r14d
shld esi, esi, 0x18
add r15d, esi
movzx edx, byte [r8 + r12 + 0x152e0b]
xor eax, r15d
movzx r12d, byte [r8 + r12 + 0x152e0a]
shld eax, eax, 0x19
mov dword [rsp + 0x130], eax
mov eax, dword [rsp + r12*4 + 0x90]
mov dword [rsp + 0xf8], esi
nop dword [rax]
mov dword [rsp + 0xe0], r15d
mov r15d, dword [rsp + 0x128]
mov esi, dword [rsp + 0x138]
add r15d, esi
nop
xor eax, dword [r8 + rdx*4 + 0x152ee0]
add r15d, eax
mov r10d, dword [rsp + 0x100]
xor r10d, r15d
shld r10d, r10d, 0x10
mov eax, dword [rsp + 0x118]
add eax, r10d
xor esi, eax
shld esi, esi, 0x14
mov edx, dword [rsp + rdx*4 + 0x90]
add r15d, esi
xor edx, dword [r8 + r12*4 + 0x152ee0]
add r15d, edx
xor r10d, r15d
shld r10d, r10d, 0x18
mov r8d, dword [rsp + 0x80]
add eax, r10d
inc r8d
xor esi, eax
mov dword [rsp + 0x80], r8d
shld esi, esi, 0x19
mov qword [rsp + 0x108], r8
mov edx, dword [rsp + 0x130]
mov r12d, dword [rsp + 0xf8]
cmp r8d, 0xe
jb 0x1400153e6
mov r8, qword [rsp + 0x88]
mov dword [rsp + 0x80], r9d
mov r9d, dword [rsp + 0xe8]
mov dword [rsp + 0xf8], r12d
mov dword [r13], r14d
mov r12d, dword [r8]
mov dword [r13 + 4], r15d
xor r12d, r14d
mov r14d, dword [r8 + 4]
mov dword [r13 + 8], ebp
xor r14d, r15d
mov r15d, dword [r8 + 8]
xor r14d, ecx
mov dword [r13 + 0xc], r9d
xor r15d, ebp
mov ebp, dword [r8 + 0xc]
mov dword [rsp + 0x100], r10d
xor ebp, r9d
mov dword [r13 + 0x10], edi
xor ebp, eax
mov r9d, dword [r8 + 0x10]
mov dword [r13 + 0x14], edx
xor r9d, edi
mov edi, dword [r8 + 0x14]
mov dword [r13 + 0x18], esi
xor edi, edx
mov edx, dword [r8 + 0x18]
mov dword [rsp + 0xf0], r11d
xor edx, esi
mov esi, dword [r8 + 0x1c]
mov dword [r13 + 0x2c], eax
xor esi, ebx
mov eax, r10d
xor eax, r9d
mov r10d, dword [rsp + 0xe0]
xor r15d, r10d
mov r11d, dword [rsp + 0xd8]
xor r12d, r11d
mov dword [r13 + 0x1c], ebx
mov dword [r13 + 0x24], ecx
mov dword [r8 + 0x10], eax
mov ecx, dword [rsp + 0x80]
mov ebx, dword [rsp + 0xf0]
xor ecx, edi
mov eax, dword [rsp + 0xf8]
xor ebx, edx
mov dword [r8], r12d
xor eax, esi
mov dword [r8 + 4], r14d
mov dword [r8 + 8], r15d
mov dword [r8 + 0xc], ebp
mov dword [r8 + 0x14], ecx
mov dword [r8 + 0x18], ebx
mov dword [r8 + 0x1c], eax
vpxor xmm1, xmm0, xmmword [r8]
vpxor xmm0, xmm0, xmmword [r8 + 0x10]
vmovdqu xmmword [r8], xmm1
vmovdqu xmmword [r8 + 0x10], xmm0
mov dword [r13 + 0x28], r10d
mov dword [r13 + 0x20], r11d
mov r13, qword [rsp + 0xd0]
add rsp, 0x140
pop rbp
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret