Function at 0x140061500
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x148
movdqa xmmword [rsp + 0x130], xmm15
movdqa xmmword [rsp + 0x120], xmm14
movdqa xmmword [rsp + 0x110], xmm13
movdqa xmmword [rsp + 0x100], xmm12
movdqa xmmword [rsp + 0xf0], xmm11
movdqa xmmword [rsp + 0xe0], xmm10
movdqa xmmword [rsp + 0xd0], xmm9
movdqa xmmword [rsp + 0xc0], xmm8
movdqa xmmword [rsp + 0xb0], xmm7
movdqa xmmword [rsp + 0xa0], xmm6
mov rax, qword [0x1406c4a98]
xor rax, rsp
mov qword [rsp + 0x98], rax
call fcn.14000f7f0
mov r14, rax
call fcn.14000d860
test rax, rax
je 0x1400615cf
nop dword [rax]
call fcn.14000f7f0
cmp dword [0x1406cda84], 0xa
jl 0x1400615c6
mov ecx, dword [0x1406cda80]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x1400615c6
call fcn.14000f7f0
jmp 0x1400615a0
mov r13, qword [rax + 0x90]
jmp 0x1400615d2
xor r13d, r13d
mov eax, dword [0x1406ce350]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x1406ce354], 0xa
setl al
or al, cl
jne 0x140061604
nop word cs:[rax + rax]
nop dword [rax]
test al, al
je 0x140061600
mov rcx, qword [r14 + 0x48]
lea rax, [rsp + 0x84]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x90]
lea r8, [rsp + 0x8c]
lea r9, [rsp + 0x88]
call fcn.140049af0
mov rax, qword [r14 + 0x48]
cmp byte [rax + 0x1a], 0
je 0x140061c6c
movsxd rax, dword [rsp + 0x8c]
movsxd rdx, dword [rsp + 0x88]
imul rdx, rax
movsxd rcx, dword [rsp + 0x84]
imul rcx, rdx
call fcn.1400039c0
mov ecx, dword [0x1406ce350]
mov edx, dword [0x1406ce354]
lea edi, [rcx - 1]
imul edi, ecx
and edi, 1
sete bl
cmp edx, 0xa
setl cl
or cl, bl
nop word cs:[rax + rax]
nop
test cl, cl
je 0x140061690
movsxd rcx, dword [rsp + 0x8c]
movsxd rbp, dword [rsp + 0x88]
imul rbp, rcx
lea r12, [rax + rbp*4]
cmp r12, rax
jbe 0x140062007
lea rbp, [rax + 4]
cmp r12, rbp
mov r8, rbp
cmova r8, r12
mov r10, qword [rsp + 0x90]
mov rcx, rax
not rcx
add r8, rcx
cmp r8, 0xc
jb 0x140061c86
cmp r12, rbp
cmova rbp, r12
lea rdx, [rcx + rbp]
and rdx, 0xfffffffffffffffc
add rbp, rcx
add rbp, 4
and rbp, 0xfffffffffffffffc
add rbp, rax
lea rcx, [rdx + r10]
add rcx, 4
cmp rax, rcx
setb r9b
cmp rbp, r10
seta bl
lea rcx, [0x1406ce354]
cmp rax, rcx
setb dl
lea rcx, [0x1406ce350]
cmp rbp, rcx
seta sil
lea rcx, [0x1406ce358]
cmp rax, rcx
setb cl
lea rdi, [0x1406ce354]
cmp rbp, rdi
seta r11b
test r9b, bl
jne 0x140061c86
and dl, sil
jne 0x140061c86
and cl, r11b
jne 0x140061c86
shr r8, 2
add r8, 1
mov r9, r8
and r9, 0xfffffffffffffffc
lea rcx, [rax + r9*4]
lea rdx, [r10 + r9*4]
xor ebx, ebx
pcmpeqd xmm9, xmm9
movdqa xmm8, xmmword [0x140259540]
movdqa xmm11, xmmword [0x1402595c0]
nop word cs:[rax + rax]
nop dword [rax + rax]
movdqu xmm5, xmmword [r10 + rbx*4]
movdqa xmm7, xmm5
pand xmm7, xmmword [0x1402592e0]
movdqa xmm0, xmm5
pand xmm0, xmmword [0x1402592f0]
movdqa xmm1, xmm5
pand xmm1, xmmword [0x140259300]
por xmm1, xmmword [0x140259310]
pxor xmm1, xmm0
pxor xmm1, xmmword [0x140259330]
movdqa xmm0, xmm5
por xmm0, xmmword [0x140259320]
pand xmm0, xmm1
psrld xmm0, 0x10
movdqa xmm2, xmm5
pxor xmm2, xmm0
pandn xmm2, xmm7
movdqa xmm1, xmm7
movdqa xmm3, xmmword [0x140259340]
pxor xmm1, xmm3
movdqa xmm4, xmm0
pand xmm4, xmm3
por xmm4, xmmword [0x140259350]
pand xmm0, xmmword [0x140259360]
pxor xmm0, xmm4
movdqa xmm4, xmm0
pxor xmm4, xmmword [0x140259370]
pxor xmm7, xmmword [0x140259380]
pand xmm7, xmm4
pxor xmm0, xmmword [0x140259390]
pand xmm0, xmm1
por xmm0, xmm7
movdqa xmm10, xmm2
movdqa xmm1, xmm2
movdqa xmm7, xmm2
movdqa xmm12, xmm0
movdqa xmm6, xmm0
movdqa xmm4, xmm0
movdqa xmm3, xmm0
pxor xmm0, xmm2
pxor xmm2, xmm9
pand xmm10, xmmword [0x1402593a0]
pandn xmm1, xmmword [0x1402593b0]
por xmm1, xmm10
por xmm1, xmmword [0x1402593c0]
pand xmm7, xmmword [0x1402593d0]
pxor xmm7, xmm1
movdqa xmm1, xmm7
pxor xmm1, xmmword [0x1402593e0]
pand xmm12, xmmword [0x1402593f0]
pandn xmm6, xmmword [0x140259400]
por xmm6, xmm12
por xmm6, xmmword [0x140259410]
pand xmm4, xmmword [0x140259420]
pxor xmm4, xmm6
movdqa xmm6, xmm4
pxor xmm6, xmmword [0x140259430]
pxor xmm7, xmmword [0x140259440]
pand xmm7, xmm6
pxor xmm4, xmmword [0x140259450]
pand xmm4, xmm1
pandn xmm3, xmm2
por xmm0, xmm3
pxor xmm0, xmm9
por xmm0, xmm4
por xmm0, xmm7
movdqa xmm1, xmm5
pand xmm1, xmmword [0x140259460]
pand xmm5, xmmword [str.SSSS]
por xmm5, xmmword [0x140259480]
pxor xmm5, xmm1
pslld xmm5, 0x10
movdqa xmm10, xmm5
pxor xmm10, xmmword [0x140259490]
movdqa xmm1, xmm5
pand xmm1, xmmword [0x1402594a0]
movdqa xmm12, xmm10
pand xmm12, xmmword [0x1402594b0]
por xmm12, xmm1
movdqa xmm1, xmm5
pxor xmm1, xmmword [0x1402594c0]
pand xmm1, xmm10
movdqa xmm2, xmm12
por xmm2, xmmword [0x1402594d0]
pxor xmm2, xmm1
pxor xmm2, xmmword [0x1402594e0]
pandn xmm12, xmm1
por xmm12, xmm2
pand xmm2, xmmword [0x1402594f0]
movdqa xmm4, xmmword [0x140259500]
pand xmm12, xmm4
por xmm12, xmm2
movdqa xmm1, xmm12
pxor xmm1, xmmword [0x140259510]
movdqa xmm2, xmm0
pxor xmm2, xmmword [0x140259530]
movdqa xmm15, xmm0
pandn xmm15, xmm2
movdqa xmm7, xmm0
pand xmm7, xmm8
movdqa xmm2, xmm12
pand xmm2, xmmword [0x140259550]
movdqa xmm3, xmm1
movdqa xmm6, xmmword [0x140259520]
pand xmm3, xmm6
por xmm3, xmm2
pxor xmm3, xmmword [0x140259560]
movdqa xmm13, xmm12
pxor xmm13, xmm4
movdqa xmm14, xmm3
pxor xmm14, xmm13
pand xmm14, xmm3
movdqa xmm2, xmm5
pand xmm2, xmmword [0x140259570]
pand xmm10, xmmword [0x140259580]
por xmm10, xmm2
pxor xmm10, xmmword [0x140259590]
pxor xmm5, xmm10
pxor xmm5, xmmword [0x1402595a0]
pand xmm5, xmm10
movdqa xmm2, xmm0
por xmm2, xmm8
movdqa xmm3, xmm2
pand xmm3, xmmword [0x1402595b0]
pand xmm15, xmm6
por xmm15, xmm3
movdqa xmm4, xmm0
pxor xmm4, xmm11
pand xmm4, xmm7
movdqa xmm3, xmm0
pand xmm3, xmm11
por xmm3, xmmword [0x1402595d0]
pxor xmm3, xmm4
pxor xmm3, xmmword [0x1402595e0]
pand xmm4, xmm11
por xmm4, xmm3
por xmm15, xmmword [0x1402595f0]
pxor xmm4, xmm15
movdqa xmm3, xmm0
pand xmm3, xmmword [0x140259600]
pand xmm2, xmmword [0x140259610]
por xmm2, xmm3
pxor xmm2, xmm7
pxor xmm2, xmmword [0x140259620]
movdqa xmm7, xmm0
pxor xmm7, xmm8
por xmm7, xmm2
pxor xmm7, xmm9
por xmm7, xmm4
movdqa xmm2, xmm14
pand xmm2, xmmword [0x140259650]
movdqa xmm3, xmm5
pand xmm3, xmmword [0x140259660]
movdqa xmm4, xmm5
pandn xmm4, xmmword [0x140259670]
por xmm4, xmm3
por xmm4, xmmword [0x140259680]
movdqa xmm3, xmm5
pand xmm3, xmmword [0x140259690]
pxor xmm3, xmm4
pxor xmm3, xmm2
movdqa xmm2, xmm5
pand xmm2, xmmword [0x1402596b0]
movdqa xmm4, xmm14
por xmm4, xmm5
pandn xmm5, xmmword [0x1402596c0]
por xmm5, xmm2
pxor xmm5, xmm14
pand xmm14, xmmword [0x140259630]
por xmm14, xmmword [0x140259640]
pxor xmm3, xmm14
pxor xmm3, xmmword [0x1402596a0]
pxor xmm5, xmmword [0x1402596d0]
pand xmm5, xmm4
por xmm5, xmm3
movdqa xmm2, xmm7
movdqa xmm3, xmm5
movdqa xmm4, xmmword [0x1402596e0]
pxor xmm3, xmm4
movdqa xmm6, xmmword [0x1402596f0]
pxor xmm7, xmm6
pand xmm7, xmm3
pxor xmm2, xmm4
pxor xmm5, xmm6
pand xmm5, xmm2
por xmm5, xmm7
pxor xmm13, xmm9
pxor xmm13, xmm0
pand xmm12, xmmword [0x140259700]
pand xmm1, xmmword [0x140259710]
por xmm1, xmm12
pxor xmm1, xmm0
pandn xmm0, xmm13
pxor xmm1, xmmword [0x140259720]
por xmm1, xmm0
movdqa xmm0, xmm1
movdqa xmm3, xmmword [0x140259740]
pxor xmm0, xmm3
movdqa xmm2, xmm5
pxor xmm2, xmm3
pand xmm2, xmm0
movdqa xmm0, xmm1
movdqa xmm3, xmm5
pxor xmm3, xmm1
pxor xmm1, xmm9
por xmm1, xmm5
movdqa xmm4, xmmword [0x140259730]
pxor xmm5, xmm4
pxor xmm0, xmm4
pand xmm0, xmm5
por xmm0, xmm2
pand xmm1, xmm3
por xmm1, xmm0
movdqu xmmword [rax + rbx*4], xmm1
add rbx, 4
cmp r9, rbx
jne 0x1400617a0
cmp r8, r9
jne 0x140061c8c
mov ecx, dword [0x1406ce350]
lea edi, [rcx - 1]
imul edi, ecx
jmp 0x140061ffe
mov ecx, dword [0x1406ce350]
mov edx, dword [0x1406ce354]
lea edi, [rcx - 1]
imul edi, ecx
and edi, 1
jmp 0x14006200f
mov rcx, rax
mov rdx, r10
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], r14
nop word cs:[rax + rax]
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x68], rcx
mov ecx, dword [rdx]
mov eax, ecx
and eax, 0xff00ff00
mov edx, ecx
and edx, 0x71280000
mov ebx, ecx
and ebx, 0x8ed70000
or ebx, 0x61200000
xor ebx, edx
mov edx, ecx
or edx, 0xff0000
xor ebx, 0x9e200000
and ebx, edx
shr ebx, 0x10
mov ebp, ecx
xor ebp, ebx
not ebp
and ebp, eax
mov edx, eax
xor edx, 0x6688
mov edi, ebx
and edi, 0x6688
or edi, 0xc649070
and ebx, 0x9977
xor ebx, edi
mov edi, ebx
xor edi, 0x7e64f670
xor eax, 0x8d7d9977
and eax, edi
xor ebx, 0x81000900
and ebx, edx
or ebx, eax
mov edx, ebx
mov r8d, ebp
mov eax, ebp
mov r9d, ebx
mov edi, ebx
xor ebx, ebp
not ebp
not edx
and r8d, 0x28008000
mov esi, edx
and edx, ebp
and ebp, 0x10004c09
add ebp, r8d
add ebp, 0xc2020216
and eax, 0xc7003300
xor eax, ebp
mov ebp, eax
xor ebp, 0xea228296
and r9d, 0xc80
and esi, 0x3820c009
add esi, r9d
add esi, 0xc5490072
and edi, 0xc7003376
xor edi, esi
mov esi, edi
xor esi, 0xc5490c72
xor eax, 0x15dd7d69
and eax, esi
xor edi, 0x3a20f309
and edi, ebp
or ebx, edx
not ebx
or ebx, edi
or ebx, eax
mov eax, ecx
and eax, 0xac
and ecx, 0x53
or ecx, 0x128
xor ecx, eax
shl ecx, 0x10
mov r8d, ecx
xor r8d, 0x1280000
mov eax, ecx
and eax, 0x130000
mov edx, r8d
and edx, 0x80000
lea r10d, [rdx + rax]
mov ebp, ecx
xor ebp, 0x330000
and ebp, r8d
add eax, edx
add eax, 0x9ba02867
xor eax, ebp
xor eax, 0xcabbae09
not r10d
and r10d, ebp
or r10d, eax
and eax, 0xaee40000
and r10d, 0x511b866e
or r10d, eax
mov esi, r10d
xor esi, 0xaee47991
mov edx, ebx
mov r9d, ebx
mov eax, r10d
and eax, 0x12008022
mov ebp, esi
and ebp, 0xedff3edc
or ebp, eax
xor ebp, 0x10008022
mov r15d, r10d
xor r15d, ebp
xor r15d, 0x511b866e
and r15d, ebp
mov eax, ecx
and eax, 0x1f20000
and r8d, 0xd0000
or r8d, eax
mov ebp, ebx
mov r14d, ebx
mov r11d, ebx
mov eax, ebx
mov edi, r10d
and r10d, 0x5ac3806e
and esi, 0xa53c7f10
or esi, r10d
mov r10d, ebx
xor esi, ebx
not ebx
xor edx, 0x8cf30ecc
and edx, ebx
xor r8d, 0xecdf3edc
xor ecx, r8d
xor ecx, 0xecd73edc
and ecx, r8d
or ebp, 0x1200c123
mov r8d, ebp
and r8d, 0x630c3010
and edx, 0xedff3edc
or edx, r8d
and r9d, 0x1200c123
xor r14d, 0x2000022
and r14d, r9d
and r11d, 0x2000022
or r11d, 0xcf248c8
xor r11d, r14d
xor r11d, 0x6ffe78fa
and r14d, 0x2000022
or r14d, r11d
or edx, 0x22
xor edx, r14d
and eax, 0x8fb125c
and ebp, 0xf7042d81
or ebp, eax
xor ebp, r9d
xor ebp, 0xffff3fdd
xor r10d, 0x1200c123
or r10d, ebp
not r10d
or r10d, edx
mov eax, ecx
not eax
mov r8d, r15d
mov r9d, ecx
mov edx, eax
mov ebp, ecx
mov r11d, r15d
or r11d, ecx
and ecx, 0x69220000
and eax, 0x94dd724b
or eax, ecx
xor eax, r15d
and r15d, 0x7f501c38
or r15d, 0x80afa300
and r8d, 0x80afa2c6
and r9d, 0x400000
and edx, 0x7f101c38
lea ecx, [rdx + r9]
add ecx, 0x32244
and ebp, 0x80af0000
xor ebp, ecx
xor ebp, r8d
xor ebp, r15d
xor ebp, 0xffbc9d7c
xor eax, 0x6b228db4
and eax, r11d
or eax, ebp
mov ecx, r10d
xor ecx, 0x638cfdf7
mov edx, eax
xor edx, 0x638cfdf7
xor r10d, 0x9c730208
and r10d, edx
xor eax, 0x9c730208
and eax, ecx
or eax, r10d
xor edi, ebx
xor edi, 0x511b866e
and edi, ebx
xor esi, 0xf53fff7e
or esi, edi
mov ecx, esi
mov edx, eax
mov ebp, esi
mov ebx, eax
xor ebx, esi
not esi
or esi, eax
xor eax, 0x89fb79db
xor ecx, 0x76048624
xor edx, 0x76048624
and edx, ecx
mov rcx, qword [rsp + 0x68]
xor ebp, 0x89fb79db
and ebp, eax
or ebp, edx
mov rdx, qword [rsp + 0x60]
and esi, ebx
or esi, ebp
mov dword [rcx], esi
add rdx, 4
add rcx, 4
cmp rcx, r12
jb 0x140061ca0
mov ecx, dword [0x1406ce350]
lea edi, [rcx - 1]
imul edi, ecx
mov r14, qword [rsp + 0x58]
mov rax, qword [rsp + 0x50]
and edi, 1
mov edx, dword [0x1406ce354]
mov qword [rsp + 0x90], rax
test edi, edi
sete cl
setne r8b
cmp edx, 0xa
setl bl
test bl, cl
jne 0x140062027
xor bl, r8b
jne 0x140062040
lea rsi, [r13 + 0x18]
mov qword [r13 + 0x18], 0
mov rcx, qword [r13]
cmp edx, 0xa
jl 0x14006204a
test edi, edi
je 0x14006204a
mov qword [r13 + 0x18], 0
jmp 0x140062027
mov r8d, dword [rsp + 0x88]
mov edx, dword [rsp + 0x8c]
mov rax, qword [rcx]
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], reloc.WS2_32.dll_setsockopt
mov dword [rsp + 0x20], 0x200
mov r9d, 1
call qword [rax + 0xb8]
test eax, eax
js 0x140062201
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov dword [rsp + 0x20], 0
lea r8, [rsp + 0x70]
xor edx, edx
xor r9d, r9d
call qword [rax + 0x98]
test eax, eax
sete dil
jne 0x140062203
cmp dword [rsp + 0x88], 0
jle 0x14006218e
xor ebx, ebx
jmp 0x1400620f0
add rbx, 1
movsxd rax, dword [rsp + 0x88]
cmp rbx, rax
jge 0x14006218e
nop word [rax + rax]
movsxd rcx, dword [rsp + 0x70]
imul rcx, rbx
add rcx, qword [rsp + 0x78]
movsxd rax, dword [rsp + 0x8c]
movsxd r8, dword [rsp + 0x84]
imul r8, rax
mov rdx, r8
imul rdx, rbx
add rdx, qword [rsp + 0x90]
call sub.VCRUNTIME140.dll_memcpy
cmp dword [0x1406ce354], 0xa
jl 0x1400620d2
mov eax, dword [0x1406ce350]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x1400620d2
movsxd rcx, dword [rsp + 0x70]
imul rcx, rbx
add rcx, qword [rsp + 0x78]
movsxd rax, dword [rsp + 0x8c]
movsxd r8, dword [rsp + 0x84]
imul r8, rax
mov rdx, r8
imul rdx, rbx
add rdx, qword [rsp + 0x90]
call sub.VCRUNTIME140.dll_memcpy
jmp 0x1400620f0
mov rcx, qword [rsi]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0xa0]
mov rcx, qword [rsi]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0xa0]
cmp dword [0x1406ce354], 0xa
jl 0x1400621b6
mov eax, dword [0x1406ce350]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x140062180
mov rax, qword [r14 + 0x48]
mov rcx, qword [rsi]
mov edx, dword [0x1406ce358]
lea ebp, [rdx - 1]
imul ebp, edx
test bpl, 1
sete bl
cmp dword [0x1406ce35c], 0xa
setl dl
or dl, bl
nop dword [rax]
test dl, dl
je 0x1400621e0
mov qword [rax + 8], rcx
mov rax, qword [r14 + 0x48]
cmp byte [rax + 0x1a], 0
je 0x140062203
mov rcx, qword [rsp + 0x90]
call fcn.140003b00
jmp 0x140062203
xor edi, edi
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.1401f88b0
mov eax, edi
movaps xmm6, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
movaps xmm8, xmmword [rsp + 0xc0]
movaps xmm9, xmmword [rsp + 0xd0]
movaps xmm10, xmmword [rsp + 0xe0]
movaps xmm11, xmmword [rsp + 0xf0]
movaps xmm12, xmmword [rsp + 0x100]
movaps xmm13, xmmword [rsp + 0x110]
movaps xmm14, xmmword [rsp + 0x120]
movaps xmm15, xmmword [rsp + 0x130]
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret