Function at 0x478b62
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa58
movdqa xmmword [rsp + 0xa40], xmm15
movdqa xmmword [rsp + 0xa30], xmm14
movdqa xmmword [rsp + 0xa20], xmm13
movdqa xmmword [rsp + 0xa10], xmm12
movdqa xmmword [rsp + 0xa00], xmm11
movdqa xmmword [rsp + 0x9f0], xmm10
movdqa xmmword [rsp + 0x9e0], xmm9
movdqa xmmword [rsp + 0x9d0], xmm8
movdqa xmmword [rsp + 0x9c0], xmm7
movdqa xmmword [rsp + 0x9b0], xmm6
mov rbx, rdx
mov r15, rcx
mov al, byte [0x005b7070]
cmp al, 0xff
je 0x4790f8
cmp al, 1
jne 0x479105
movdqu xmm6, xmmword [rbx]
movdqu xmm7, xmmword [rbx + 0x10]
lea rdx, [rsp + 0x90]
movdqa xmmword [rdx], xmm7
lea rdi, [rsp + 0x500]
mov rcx, rdi
call fcn.004173a7
pshufd xmm0, xmmword [rdi], 0xff
movdqa xmmword [rsp + 0x30], xmm6
movdqa xmm1, xmm6
pslldq xmm1, 4
movdqa xmm2, xmm6
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm0, xmm6
pslldq xmm0, 0xc
pxor xmm0, xmm1
pxor xmm0, xmm2
pxor xmm0, xmm6
lea rdx, [rsp + 0xa0]
movdqa xmmword [rdx], xmm0
movdqa xmm6, xmm0
lea rdi, [rsp + 0x500]
mov rcx, rdi
call fcn.004173b2
pshufd xmm0, xmmword [rdi], 0xaa
movdqa xmmword [rsp + 0x70], xmm7
movdqa xmm1, xmm7
pslldq xmm1, 4
movdqa xmm2, xmm7
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm0, xmm7
pslldq xmm0, 0xc
pxor xmm0, xmm1
pxor xmm0, xmm2
pxor xmm0, xmm7
lea rdx, [rsp + 0xb0]
movdqa xmmword [rdx], xmm0
movdqa xmm7, xmm0
lea rdi, [rsp + 0x500]
mov rcx, rdi
call fcn.004173bd
pshufd xmm0, xmmword [rdi], 0xff
movdqa xmm3, xmm6
movdqa xmmword [rsp + 0x60], xmm6
movdqa xmm1, xmm6
pslldq xmm1, 4
movdqa xmm2, xmm6
pslldq xmm2, 8
pxor xmm2, xmm0
pslldq xmm6, 0xc
pxor xmm6, xmm1
pxor xmm6, xmm2
pxor xmm6, xmm3
lea rdx, [rsp + 0xc0]
movdqa xmmword [rdx], xmm6
lea rdi, [rsp + 0x500]
mov rcx, rdi
call fcn.004173b2
pshufd xmm0, xmmword [rdi], 0xaa
movdqa xmm3, xmm7
movdqa xmmword [rsp + 0x50], xmm7
movdqa xmm1, xmm7
pslldq xmm1, 4
movdqa xmm2, xmm7
pslldq xmm2, 8
pxor xmm2, xmm0
pslldq xmm7, 0xc
pxor xmm7, xmm1
pxor xmm7, xmm2
pxor xmm7, xmm3
lea rdx, [rsp + 0xd0]
movdqa xmmword [rdx], xmm7
lea rdi, [rsp + 0x500]
mov rcx, rdi
call fcn.004173c8
pshufd xmm0, xmmword [rdi], 0xff
movdqa xmm1, xmm6
pslldq xmm1, 4
movdqa xmm2, xmm6
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm8, xmm6
pslldq xmm8, 0xc
pxor xmm8, xmm1
pxor xmm8, xmm2
pxor xmm8, xmm6
lea rdx, [rsp + 0xe0]
movdqa xmmword [rdx], xmm8
lea rdi, [rsp + 0x500]
mov rcx, rdi
call fcn.004173b2
pshufd xmm0, xmmword [rdi], 0xaa
movdqa xmm1, xmm7
pslldq xmm1, 4
movdqa xmm2, xmm7
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm9, xmm7
pslldq xmm9, 0xc
pxor xmm9, xmm1
pxor xmm9, xmm2
pxor xmm9, xmm7
lea rdx, [rsp + 0xf0]
movdqa xmmword [rdx], xmm9
lea rdi, [rsp + 0x500]
mov rcx, rdi
call fcn.004173d3
pshufd xmm0, xmmword [rdi], 0xff
movdqa xmm1, xmm8
pslldq xmm1, 4
movdqa xmm2, xmm8
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm10, xmm8
pslldq xmm10, 0xc
pxor xmm10, xmm1
pxor xmm10, xmm2
pxor xmm10, xmm8
lea rdx, [rsp + 0x100]
movdqa xmmword [rdx], xmm10
lea rdi, [rsp + 0x500]
mov rcx, rdi
call fcn.004173b2
pshufd xmm0, xmmword [rdi], 0xaa
movdqa xmm1, xmm9
pslldq xmm1, 4
movdqa xmm2, xmm9
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm11, xmm9
pslldq xmm11, 0xc
pxor xmm11, xmm1
pxor xmm11, xmm2
pxor xmm11, xmm9
lea rdx, [rsp + 0x110]
movdqa xmmword [rdx], xmm11
lea rdi, [rsp + 0x500]
mov rcx, rdi
call fcn.004173de
pshufd xmm0, xmmword [rdi], 0xff
movdqa xmm1, xmm10
pslldq xmm1, 4
movdqa xmm2, xmm10
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm12, xmm10
pslldq xmm12, 0xc
pxor xmm12, xmm1
pxor xmm12, xmm2
pxor xmm12, xmm10
lea rdx, [rsp + 0x120]
movdqa xmmword [rdx], xmm12
lea rdi, [rsp + 0x500]
mov rcx, rdi
call fcn.004173b2
pshufd xmm0, xmmword [rdi], 0xaa
movdqa xmm1, xmm11
pslldq xmm1, 4
movdqa xmm2, xmm11
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm13, xmm11
pslldq xmm13, 0xc
pxor xmm13, xmm1
pxor xmm13, xmm2
pxor xmm13, xmm11
lea rdx, [rsp + 0x130]
movdqa xmmword [rdx], xmm13
lea rdi, [rsp + 0x500]
mov rcx, rdi
call fcn.004173e9
pshufd xmm0, xmmword [rdi], 0xff
movdqa xmm1, xmm12
pslldq xmm1, 4
movdqa xmm2, xmm12
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm14, xmm12
pslldq xmm14, 0xc
pxor xmm14, xmm1
pxor xmm14, xmm2
pxor xmm14, xmm12
lea rdx, [rsp + 0x40]
movdqa xmmword [rdx], xmm14
lea rdi, [rsp + 0x500]
mov rcx, rdi
call fcn.004173b2
pshufd xmm0, xmmword [rdi], 0xaa
movdqa xmm1, xmm13
pslldq xmm1, 4
movdqa xmm2, xmm13
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm15, xmm13
pslldq xmm15, 0xc
pxor xmm15, xmm1
pxor xmm15, xmm2
pxor xmm15, xmm13
movdqa xmmword [rdi], xmm15
lea rdi, [rsp + 0x8c0]
lea rdx, [rsp + 0x500]
mov rcx, rdi
call fcn.004173f4
pshufd xmm0, xmmword [rdi], 0xff
movdqa xmm1, xmm14
pslldq xmm1, 8
pxor xmm1, xmm0
movdqa xmm0, xmm14
pslldq xmm0, 4
movdqa xmm2, xmm14
pslldq xmm2, 0xc
pxor xmm2, xmm0
pxor xmm2, xmm1
movaps xmm0, xmmword [rsp + 0x30]
movaps xmmword [rdi], xmm0
movaps xmm0, xmmword [rsp + 0x70]
movaps xmmword [rdi + 0x10], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movaps xmmword [rdi + 0x20], xmm0
movaps xmm0, xmmword [rsp + 0x50]
movaps xmmword [rdi + 0x30], xmm0
movdqa xmmword [rdi + 0x40], xmm6
movdqa xmmword [rdi + 0x50], xmm7
movdqa xmmword [rdi + 0x60], xmm8
movdqa xmmword [rdi + 0x70], xmm9
movdqa xmmword [rdi + 0x80], xmm10
movdqa xmmword [rdi + 0x90], xmm11
movdqa xmmword [rdi + 0xa0], xmm12
movdqa xmmword [rdi + 0xb0], xmm13
pxor xmm2, xmm14
movdqa xmmword [rdi + 0xc0], xmm14
movdqa xmmword [rdi + 0xd0], xmm15
movdqa xmmword [rdi + 0xe0], xmm2
lea rcx, [rsp + 0x5f0]
lea rdi, [rsp + 0x8c0]
mov rdx, rdi
call fcn.00479831
lea rbx, [rsp + 0x500]
mov r8d, 0xf0
mov rcx, rbx
mov rdx, rdi
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + 0x140]
mov r8d, 0x1e0
mov rdx, rbx
call sub.msvcrt.dll_memcpy
jmp 0x4795b4
call fcn.004172fa
test al, al
jne 0x478bf3
mov qword [rsp + 0x80], r15
xor r13d, r13d
lea r15, [rsp + 0x140]
mov r8d, 0x3c0
mov rcx, r15
xor edx, edx
call sub.msvcrt.dll_memset
mov qword [rsp + 0x20], rbx
mov rcx, r15
mov rdx, rbx
mov r8, rbx
mov r9, rbx
call fcn.00415ab4
lea rcx, [rsp + 0x180]
add rbx, 0x10
mov qword [rsp + 0x20], rbx
mov rdx, rbx
mov r8, rbx
mov r9, rbx
call fcn.00415ab4
mov eax, 0x10
mov qword [rsp + 0x70], rax
mov r12, 0xffffffffffffffe7
mov eax, 0xc0
mov qword [rsp + 0x50], rax
mov eax, 0x30
mov qword [rsp + 0x60], rax
mov ebx, pe_nt_image_headers64
xor eax, eax
mov qword [rsp + 0x30], rax
lea rdx, [r13 + 8]
mov rdi, r15
mov rcx, r15
call fcn.00415ca1
lea r14, [r13 + 0x10]
lea rbp, [r13 + 0x18]
mov r15, rbp
xor r15, r14
mov rsi, r12
add r12, 8
and r12, rbp
add r12, r12
mov qword [rsp + 0x88], rbx
lea rcx, [rsp + rbx]
add rcx, 0x140
mov rdx, r12
sub rdx, r15
call fcn.00415d10
sub r12, r15
je 0x4797a5
not qword [rsp + r13*8 + 0x1c0]
mov rax, qword [rsp + r13*8 + 0x1c8]
lea rcx, [rax + rax]
not rcx
add rcx, rax
mov qword [rsp + r13*8 + 0x1c8], rcx
not qword [rsp + r13*8 + 0x1e8]
not qword [rsp + r13*8 + 0x1f0]
cmp qword [rsp + 0x30], r12
jae 0x4797b2
mov rax, qword [rsp + 0x70]
xor byte [rsp + rax*8 + 0x143], 0xf0
mov r15, rdi
mov rcx, rdi
mov rdx, r14
mov r8d, 0x1c
call fcn.004161fe
cmp r13, 0x60
je 0x47932c
mov rcx, r15
mov rdx, r14
call fcn.00415ca1
mov rax, qword [rsp + 0x60]
and eax, 0x10
mov r12, rbp
xor r12, 8
add r12, rax
cmp rbp, r12
ja 0x4797c0
mov r15, r12
xor r15, rbp
and r12, rsi
add r12, r12
mov rax, qword [rsp + 0x50]
lea rcx, [rsp + rax]
add rcx, 0x140
mov rdx, r12
sub rdx, r15
call fcn.00415d10
sub r12, r15
je 0x4797a5
not qword [rsp + r13*8 + 0x200]
mov rax, qword [rsp + r13*8 + 0x208]
lea rcx, [rax + rax]
not rcx
add rcx, rax
mov qword [rsp + r13*8 + 0x208], rcx
cmp r12, 5
jbe 0x4797cf
not qword [rsp + r13*8 + 0x228]
cmp r12, 6
je 0x4797e0
not qword [rsp + r13*8 + 0x230]
mov r15, rdi
mov rcx, rdi
mov rdx, rbp
mov r8d, 0xc
call fcn.004161fe
add qword [rsp + 0x70], 0x11
mov r12, rsi
add r12, 0xfffffffffffffff0
mov eax, pe_nt_image_headers64
add qword [rsp + 0x50], rax
add qword [rsp + 0x60], 0x20
mov rbx, qword [rsp + 0x88]
add rbx, rax
inc qword [rsp + 0x30]
mov r13, r14
jmp 0x47918e
movabs rdx, 0xf0f00000f0f0000
mov r9d, 8
movabs r8, 0xf00ff00f00000
xor eax, eax
movabs r10, 0xf000ff000f0000
movabs r11, 0xff000000ff0000
mov r15, qword [rsp + 0x80]
test al, 1
je 0x479372
add r9, 0x1f
jb 0x479504
cmp r9, 0x68
jae 0x479504
lea rcx, [r9 + 8]
mov rdi, rcx
xor rdi, r9
mov rax, r9
not rax
and rax, rcx
lea rsi, [rax + rax]
cmp rsi, rdi
je 0x4793ef
lea rsi, [rsp + r9*8]
add rsi, 0x140
shl rax, 4
shl rdi, 3
sub rax, rdi
xor edi, edi
mov rbx, qword [rsi + rdi]
mov r14, rbx
shr r14, 8
xor r14, rbx
and r14, r8
xor rbx, r14
shl r14, 8
xor r14, rbx
mov rbx, r14
shr rbx, 4
xor rbx, r14
and rbx, rdx
xor r14, rbx
shl rbx, 4
xor rbx, r14
mov qword [rsi + rdi], rbx
add rdi, 8
cmp rax, rdi
jne 0x4793b0
lea rax, [r9 + 0x10]
cmp rcx, rax
ja 0x4797f8
cmp rax, 0x78
ja 0x479801
mov rsi, 0xfffffffffffffff7
sub rsi, r9
and rsi, rax
xor rax, rcx
lea rdi, [rsi + rsi]
cmp rdi, rax
je 0x47945f
lea rcx, [rsp + rcx*8]
add rcx, 0x140
shl rsi, 4
shl rax, 3
sub rsi, rax
xor eax, eax
mov rdi, qword [rcx + rax]
mov rbx, rdi
shr rbx, 8
xor rbx, rdi
and rbx, r11
xor rdi, rbx
shl rbx, 8
xor rbx, rdi
mov qword [rcx + rax], rbx
add rax, 8
cmp rsi, rax
jne 0x479437
mov eax, r9d
and eax, 0x10
mov rcx, r9
xor rcx, 0x10
lea rcx, [rcx + rax*2]
lea rax, [r9 + 0x18]
cmp rcx, rax
ja 0x47980a
cmp rax, 0x78
ja 0x47981b
inc r9
mov rdi, rcx
xor rdi, rax
mov rsi, rcx
not rsi
and rsi, rax
lea rbx, [rsi + rsi]
mov al, 1
cmp rbx, rdi
je 0x479364
lea rcx, [rsp + rcx*8]
add rcx, 0x140
shl rsi, 4
shl rdi, 3
sub rsi, rdi
xor edi, edi
mov rbx, qword [rcx + rdi]
mov r14, rbx
shr r14, 8
xor r14, rbx
and r14, r10
xor rbx, r14
shl r14, 8
xor r14, rbx
mov rbx, r14
shr rbx, 4
xor rbx, r14
and rbx, rdx
xor r14, rbx
shl rbx, 4
xor rbx, r14
mov qword [rcx + rdi], rbx
add rdi, 8
cmp rsi, rdi
jne 0x4794c0
jmp 0x479364
xor eax, eax
mov rcx, qword [rsp + rax*8 + 0x480]
mov r9, rcx
shr r9, 8
xor r9, rcx
and r9, r8
xor rcx, r9
shl r9, 8
xor r9, rcx
mov rcx, r9
shr rcx, 4
xor rcx, r9
and rcx, rdx
xor r9, rcx
shl rcx, 4
xor rcx, r9
mov qword [rsp + rax*8 + 0x480], rcx
inc rax
cmp rax, 8
jne 0x479506
mov eax, 0x10
mov rcx, 0xfffffffffffffff7
lea rdx, [rax - 8]
xor rdx, rax
mov r8, rax
and r8, rcx
add r8, r8
cmp r8, rdx
je 0x4797a5
not qword [rsp + rax*8 + 0x100]
mov rdx, qword [rsp + rax*8 + 0x108]
lea r8, [rdx + rdx]
not r8
add r8, rdx
mov qword [rsp + rax*8 + 0x108], r8
not qword [rsp + rax*8 + 0x128]
not qword [rsp + rax*8 + 0x130]
add rax, 8
add rcx, 0xfffffffffffffff8
cmp rax, 0x80
jne 0x479559
lea rcx, [rsp + 0x500]
lea rdx, [rsp + 0x140]
mov r8d, 0x3c0
call sub.msvcrt.dll_memcpy
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
mov al, byte [0x005b7070]
cmp al, 1
jne 0x4795f8
lea rcx, [rsp + 0x500]
lea rdx, [rsp + 0x40]
mov r8, rdx
call fcn.004786e2
jmp 0x479646
lea rdi, [rsp + 0x8c0]
movaps xmmword [rdi + 0x30], xmm0
movaps xmmword [rdi + 0x20], xmm0
movaps xmmword [rdi + 0x10], xmm0
movaps xmmword [rdi], xmm0
lea rdx, [rsp + 0x50]
lea rbx, [rsp + 0x40]
mov rcx, rdi
mov r8, rbx
call fcn.0044e7d9
lea r14, [rsp + 0x140]
lea rdx, [rsp + 0x500]
mov rcx, r14
mov r8, rdi
call fcn.00416336
movups xmm0, xmmword [r14]
movaps xmmword [rbx], xmm0
movaps xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x140], xmm0
xor eax, eax
movabs rcx, 0x7ffffffffffffff8
mov rdx, rax
xor rdx, 7
mov r8, rax
and r8, rcx
sub rdx, r8
mov r8b, byte [rsp + rax + 0x140]
mov r9b, byte [rsp + rdx + 0x148]
mov byte [rsp + rax + 0x140], r9b
mov byte [rsp + rdx + 0x148], r8b
inc rax
cmp rax, 8
jne 0x47965f
mov rsi, qword [rsp + 0x140]
mov rdi, qword [rsp + 0x148]
mov al, byte [0x005b70c8]
cmp al, 0xff
je 0x47979b
mov rax, rdi
sar rax, 6
movabs rcx, 0xfe00000000000000
and rcx, rax
mov rax, rdi
shr rax, 1
movabs rdx, 0x4000000000000000
and rdx, rax
movabs rax, 0x8000000000000000
and rax, rdi
or rax, rdx
mov rdx, rdi
shld rdx, rsi, 1
sub rax, rcx
xor rdx, rax
shld rsi, rdi, 1
mov qword [r15 + 0x3c0], rsi
mov qword [r15 + 0x3c8], rdx
xorps xmm0, xmm0
movaps xmmword [r15 + 0x3d0], xmm0
lea rdx, [rsp + 0x500]
mov r8d, 0x3c0
mov rcx, r15
call sub.msvcrt.dll_memcpy
movaps xmm6, xmmword [rsp + 0x9b0]
movaps xmm7, xmmword [rsp + 0x9c0]
movaps xmm8, xmmword [rsp + 0x9d0]
movaps xmm9, xmmword [rsp + 0x9e0]
movaps xmm10, xmmword [rsp + 0x9f0]
movaps xmm11, xmmword [rsp + 0xa00]
movaps xmm12, xmmword [rsp + 0xa10]
movaps xmm13, xmmword [rsp + 0xa20]
movaps xmm14, xmmword [rsp + 0xa30]
movaps xmm15, xmmword [rsp + 0xa40]
add rsp, 0xa58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.004cb329
jmp 0x4796b6
lea r8, [0x005bb888]
xor ecx, ecx
xor edx, edx
jmp 0x4797f1
lea r8, [0x005bb930]
mov rcx, qword [rsp + 0x30]
jmp 0x4797db
lea r8, [0x005bb780]
mov rcx, rbp
mov rdx, r12
jmp 0x479814
lea r8, [0x005bb8a0]
mov ecx, 5
mov rdx, r12
jmp 0x4797f1
lea r8, [0x005bb8b8]
mov ecx, 6
mov edx, 6
call fcn.004262b0
ud2
lea r8, [0x005bb798]
jmp 0x479811
lea r8, [0x005bb798]
jmp 0x479822
lea r8, [0x005bb7b0]
mov rdx, rax
call fcn.00429a20
ud2
lea r8, [0x005bb7b0]
mov edx, 0x78
mov rcx, rax
call fcn.004292f0
ud2