Function at 0x140059e20
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x30]
sub rsp, 0x130
mov rax, qword [0x14017f8e0]
xor rax, rsp
mov qword [rbp], rax
mov rdx, qword [rcx + 0xa0]
mov rsi, rcx
mov r8d, dword [rcx + 4]
mov qword [rsp + 0x40], rcx
rol rdx, 0x20
mov rdi, rdx
mov qword [rsp + 0x30], r9
shr rdi, 0x10
mov rax, rdx
shl rax, 0x10
xor rdi, rax
shl rdx, 0x10
movabs rax, 0xffff0000ffff
and rdi, rax
xor rdi, rdx
mov rcx, rdi
mov rax, rdi
shr rcx, 8
shl rax, 8
xor rcx, rax
shl rdi, 8
movabs rax, 0xff00ff00ff00ff
and rcx, rax
xor rcx, rdi
mov qword [rbp - 0xc], rcx
test r8d, r8d
jne 0x14005a769
mov r8d, 4
mov qword [rsp + 0x158], rbx
lea rdx, [rbp - 0x10]
mov eax, r8d
mov rcx, rsi
mov qword [rsp + 0x128], r12
mov r8d, reloc.WS2_32.dll_recv
mov qword [rsp + 0x120], r13
sub r8, rax
mov qword [rsp + 0x118], r14
add rdx, rax
mov qword [rsp + 0x110], r15
call fcn.140055b50
mov eax, dword [rsi + 8]
lea rcx, [rsp + 0x70]
mov rdx, rsi
lea ebx, [rax + rax*2]
add ebx, ebx
lea rdi, [rbx*4]
sub rdx, rdi
mov r8, rdi
add rdx, 0x84
call sub.VCRUNTIME140.dll_memcpy
mov r8d, reloc.WLDAP32.dll_Ordinal_30
lea rdx, [rsi + 0xc]
sub r8d, ebx
mov qword [rsp + 0x38], rdx
lea rcx, [rsp + 0x70]
shl r8, 2
add rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x20], 0xa
movsd xmm0, qword [rbp - 0x24]
lea rdx, [rsp + 0x70]
mov ebx, dword [rbp - 0x1c]
lea rcx, [rsp + 0x7c]
mov r8d, WSAGetLastError
movsd qword [rsp + 0x28], xmm0
movsd qword [rbp - 0x10], xmm0
lea r12, [0x140000000]
call qword [sym.imp.VCRUNTIME140.dll_memmove]
mov eax, dword [rbp - 0x78]
xor ebx, eax
xor dword [rbp - 0x4c], eax
mov ecx, dword [rbp - 0x7c]
xor dword [rbp - 0x50], ecx
mov edx, dword [rbp - 0x10]
xor edx, dword [rbp - 0x80]
movsd xmm0, qword [rsp + 0x28]
mov eax, edx
mov r13d, dword [rbp - 0x54]
xor r13d, dword [rbp - 0x80]
shr eax, 0x10
movsd qword [rsp + 0x70], xmm0
mov edi, dword [rsp + 0x74]
xor edi, ecx
mov dword [rbp - 0x54], r13d
movzx ecx, al
mov eax, edx
shr rax, 0x18
mov r14d, dword [r12 + rcx*4 + 0x130ed0]
mov ecx, edx
mov esi, dword [r12 + rax*4 + 0x130ab0]
shr edx, 8
xor esi, r14d
movzx eax, dl
mov edx, edi
mov r15d, dword [r12 + rax*4 + 0x131760]
xor esi, r15d
movzx eax, cl
mov r9d, dword [r12 + rax*4 + 0x131320]
xor esi, r9d
mov eax, edi
shr rax, 0x18
mov r11d, dword [r12 + rax*4 + 0x130ab0]
mov eax, edi
shr eax, 0x10
movzx ecx, al
shr edi, 8
movzx eax, dil
mov edi, ebx
mov r10d, dword [r12 + rcx*4 + 0x130ed0]
xor r10d, r11d
mov eax, dword [r12 + rax*4 + 0x131760]
xor r10d, eax
xor r15d, eax
movzx eax, dl
mov eax, dword [r12 + rax*4 + 0x131320]
xor r9d, eax
xor r10d, eax
mov eax, ebx
shr rax, 0x18
mov r8d, dword [r12 + rax*4 + 0x130ab0]
mov eax, ebx
shr eax, 0x10
xor r11d, r8d
movzx ecx, al
shr ebx, 8
movzx eax, bl
mov edx, dword [r12 + rcx*4 + 0x130ed0]
xor r14d, edx
mov eax, dword [r12 + rax*4 + 0x131760]
xor eax, edx
mov edx, dword [rsp + 0x7c]
xor r8d, eax
movzx eax, dil
mov eax, dword [r12 + rax*4 + 0x131320]
xor r8d, eax
xor r9d, eax
mov eax, edx
shr rax, 0x18
mov edi, dword [r12 + rax*4 + 0x130ab0]
xor r11d, edi
movzx eax, byte [rsp + 0x7e]
mov eax, dword [r12 + rax*4 + 0x130ed0]
xor r14d, eax
xor edi, eax
movzx eax, byte [rsp + 0x7d]
mov ecx, dword [r12 + rax*4 + 0x131760]
xor r15d, ecx
movzx eax, dl
mov eax, dword [r12 + rax*4 + 0x131320]
xor eax, ecx
mov ecx, r14d
xor edi, eax
shl ecx, 8
xor ecx, r8d
mov eax, r9d
xor eax, edi
and ecx, 0xff0000
movzx r12d, al
mov eax, r14d
xor eax, r10d
and eax, 0xff0000
or r12d, eax
mov eax, r15d
xor eax, r8d
and eax, 0xff00
or r12d, eax
mov eax, r11d
xor eax, esi
and eax, 0xff000000
or r12d, eax
mov eax, r9d
shr eax, 0x18
xor eax, esi
mov dword [rsp + 0x70], r12d
movzx eax, al
or ecx, eax
mov eax, r15d
shl eax, 8
xor eax, edi
and eax, 0xff00
or ecx, eax
mov eax, r11d
shl eax, 8
xor eax, r10d
and eax, 0xff000000
or ecx, eax
mov eax, r9d
shr eax, 0x10
xor eax, r10d
mov dword [rsp + 0x74], ecx
movzx eax, al
mov ecx, r14d
shl ecx, 0x10
xor ecx, edi
shr r14d, 8
and ecx, 0xff0000
shr r9d, 8
or ecx, eax
xor r9d, r8d
mov eax, r11d
xor r14d, esi
shl eax, 0x10
and r14d, 0xff0000
xor eax, r8d
shl r11d, 0x18
and eax, 0xff000000
xor r11d, edi
or ecx, eax
and r11d, 0xff000000
mov eax, r15d
shr r15d, 8
shr eax, 0x10
xor r15d, r10d
xor eax, esi
and eax, 0xff00
or ecx, eax
movzx eax, r9b
or eax, r14d
mov dword [rsp + 0x78], ecx
or eax, r11d
and r15d, 0xff00
or eax, r15d
sub qword [rsp + 0x20], 1
mov dword [rsp + 0x7c], eax
jne 0x140059f50
mov qword [rsp + 0x20], reloc.WS2_32.dll_listen
nop word [rax + rax]
xor dword [rbp - 0x80], r12d
lea rdx, [rsp + 0x70]
mov edi, dword [rbp - 0x1c]
lea rcx, [rbp - 0x54]
xor r13d, r12d
mov r8d, reloc.WLDAP32.dll_Ordinal_60
mov dword [rbp - 0x54], r13d
movups xmm0, xmmword [rbp - 0x54]
movups xmmword [rbp - 0x10], xmm0
movups xmm0, xmmword [rbp - 0x44]
movups xmmword [rsp + 0x48], xmm0
movups xmm0, xmmword [rbp - 0x34]
movups xmmword [rsp + 0x58], xmm0
movsd xmm0, qword [rbp - 0x24]
movsd qword [rsp + 0x28], xmm0
call qword [sym.imp.VCRUNTIME140.dll_memmove]
movups xmm2, xmmword [rbp - 0x10]
lea r12, [0x140000000]
mov dword [rbp - 0x58], edi
movups xmm0, xmmword [rsp + 0x58]
movups xmm3, xmmword [rsp + 0x48]
movsd xmm1, qword [rsp + 0x28]
movq rdi, xmm2
mov rax, rdi
movaps xmmword [rbp - 0x80], xmm3
shr rax, 0x10
movzx ecx, al
movd eax, xmm2
movups xmmword [rbp - 0x70], xmm0
movdqa xmm0, xmm2
movsd qword [rbp - 0x60], xmm1
mov r15d, dword [r12 + rcx*4 + 0x130ed0]
mov edx, eax
shr rax, 0x18
psrldq xmm0, 8
movups xmmword [rsp + 0x70], xmm2
mov esi, dword [r12 + rax*4 + 0x130ab0]
mov rax, rdi
shr rax, 8
xor esi, r15d
movzx ecx, al
movzx eax, dl
psrldq xmm2, 8
movq r8, xmm2
mov r14d, dword [r12 + rcx*4 + 0x131760]
xor esi, r14d
mov r11d, dword [r12 + rax*4 + 0x131320]
mov rax, rdi
shr rax, 0x20
xor esi, r11d
mov rdx, rax
shr rax, 0x18
mov ebx, dword [r12 + rax*4 + 0x130ab0]
mov rax, rdi
shr rax, 0x30
movzx ecx, al
shr rdi, 0x28
movzx eax, dil
mov r10d, dword [r12 + rcx*4 + 0x130ed0]
xor r10d, ebx
mov eax, dword [r12 + rax*4 + 0x131760]
xor r10d, eax
xor r14d, eax
movzx eax, dl
mov eax, dword [r12 + rax*4 + 0x131320]
xor r10d, eax
xor r11d, eax
movd eax, xmm0
mov edi, eax
shr rax, 0x18
mov r9d, dword [r12 + rax*4 + 0x130ab0]
mov rax, r8
shr rax, 0x10
xor ebx, r9d
movzx ecx, al
mov rax, r8
mov edx, dword [r12 + rcx*4 + 0x130ed0]
xor r15d, edx
shr rax, 8
movzx ecx, al
mov eax, dword [r12 + rcx*4 + 0x131760]
xor eax, edx
xor r9d, eax
movzx eax, dil
mov eax, dword [r12 + rax*4 + 0x131320]
xor r9d, eax
xor r11d, eax
mov rax, r8
shr rax, 0x20
mov rdx, rax
shr rax, 0x18
mov edi, dword [r12 + rax*4 + 0x130ab0]
xor ebx, edi
mov rax, r8
shr r8, 0x28
shr rax, 0x30
movzx ecx, al
mov eax, dword [r12 + rcx*4 + 0x130ed0]
xor r15d, eax
xor edi, eax
movzx eax, r8b
mov ecx, dword [r12 + rax*4 + 0x131760]
xor r14d, ecx
movzx eax, dl
mov eax, dword [r12 + rax*4 + 0x131320]
xor eax, ecx
mov ecx, r15d
xor edi, eax
shl ecx, 8
xor ecx, r9d
mov eax, r11d
xor eax, edi
and ecx, 0xff0000
movzx edx, al
mov eax, r15d
xor eax, r10d
and eax, 0xff0000
or edx, eax
mov eax, r14d
xor eax, r9d
and eax, 0xff00
or edx, eax
mov eax, ebx
xor eax, esi
and eax, 0xff000000
or edx, eax
mov eax, r11d
shr eax, 0x18
xor eax, esi
mov dword [rsp + 0x70], edx
movzx eax, al
or ecx, eax
mov eax, r14d
shl eax, 8
xor eax, edi
and eax, 0xff00
or ecx, eax
mov eax, ebx
shl eax, 8
xor eax, r10d
and eax, 0xff000000
or ecx, eax
mov eax, r11d
shr eax, 0x10
xor eax, r10d
mov dword [rsp + 0x74], ecx
movzx eax, al
mov ecx, r15d
shl ecx, 0x10
xor ecx, edi
and ecx, 0xff0000
or ecx, eax
mov eax, r14d
shr eax, 0x10
xor eax, esi
and eax, 0xff00
or ecx, eax
mov eax, ebx
shl eax, 0x10
xor eax, r9d
and eax, 0xff000000
or ecx, eax
xor dword [rbp - 0x50], edx
mov r8d, 0x40
movups xmm0, xmmword [rbp - 0x50]
shr r11d, 8
shr r15d, 8
xor r11d, r9d
movups xmmword [rsp + 0x58], xmm0
shr r14d, 8
xor r15d, esi
movups xmm0, xmmword [rbp - 0x40]
movzx eax, r11b
xor r14d, r10d
shl ebx, 0x18
and r15d, 0xff0000
or eax, r15d
mov dword [rsp + 0x78], ecx
movups xmmword [rsp + 0x48], xmm0
and r14d, 0xff00
xor ebx, edi
movups xmm0, xmmword [rbp - 0x30]
or eax, r14d
lea rcx, [rbp - 0x58]
and ebx, 0xff000000
or eax, ebx
mov dword [rsp + 0x7c], eax
movd eax, xmm3
movups xmmword [rbp - 0x10], xmm0
movsd xmm0, qword [rbp - 0x20]
xor eax, edx
lea rdx, [rsp + 0x70]
mov dword [rbp - 0x80], eax
movsd qword [rsp + 0x28], xmm0
call qword [sym.imp.VCRUNTIME140.dll_memmove]
movups xmm2, xmmword [rsp + 0x58]
movups xmm0, xmmword [rsp + 0x48]
movups xmm1, xmmword [rbp - 0x10]
movq rdi, xmm2
mov rax, rdi
shr rax, 0x10
movzx ecx, al
movd eax, xmm2
movups xmmword [rbp - 0x80], xmm0
mov r15d, dword [r12 + rcx*4 + 0x130ed0]
movsd xmm0, qword [rsp + 0x28]
mov edx, eax
shr rax, 0x18
movsd qword [rbp - 0x60], xmm0
movdqa xmm0, xmm2
psrldq xmm0, 8
movups xmmword [rsp + 0x70], xmm2
mov esi, dword [r12 + rax*4 + 0x130ab0]
mov rax, rdi
shr rax, 8
xor esi, r15d
movzx ecx, al
movzx eax, dl
movups xmmword [rbp - 0x70], xmm1
mov r14d, dword [r12 + rcx*4 + 0x131760]
xor esi, r14d
mov r10d, dword [r12 + rax*4 + 0x131320]
mov rax, rdi
shr rax, 0x20
xor esi, r10d
mov rdx, rax
shr rax, 0x18
mov ebx, dword [r12 + rax*4 + 0x130ab0]
mov rax, rdi
shr rax, 0x30
movzx ecx, al
shr rdi, 0x28
movzx eax, dil
mov r11d, dword [r12 + rcx*4 + 0x130ed0]
xor r11d, ebx
mov eax, dword [r12 + rax*4 + 0x131760]
xor r11d, eax
xor r14d, eax
movzx eax, dl
mov eax, dword [r12 + rax*4 + 0x131320]
xor r11d, eax
xor r10d, eax
movd eax, xmm0
mov edi, eax
shr rax, 0x18
psrldq xmm2, 8
movq r8, xmm2
mov r9d, dword [r12 + rax*4 + 0x130ab0]
mov rax, r8
shr rax, 0x10
xor ebx, r9d
movzx ecx, al
mov rax, r8
shr rax, 8
mov edx, dword [r12 + rcx*4 + 0x130ed0]
xor r15d, edx
movzx ecx, al
mov eax, dword [r12 + rcx*4 + 0x131760]
xor eax, edx
xor r9d, eax
movzx eax, dil
mov eax, dword [r12 + rax*4 + 0x131320]
xor r9d, eax
xor r10d, eax
mov rax, r8
shr rax, 0x20
mov rdx, rax
shr rax, 0x18
mov edi, dword [r12 + rax*4 + 0x130ab0]
mov rax, r8
shr rax, 0x30
xor ebx, edi
movzx ecx, al
shr r8, 0x28
mov eax, dword [r12 + rcx*4 + 0x130ed0]
xor r15d, eax
xor edi, eax
movzx eax, r8b
mov r8d, r15d
shl r8d, 0x10
mov ecx, dword [r12 + rax*4 + 0x131760]
xor r14d, ecx
movzx eax, dl
mov edx, r15d
shl edx, 8
xor edx, r9d
and edx, 0xff0000
mov eax, dword [r12 + rax*4 + 0x131320]
xor eax, ecx
xor edi, eax
mov eax, r10d
xor eax, edi
xor r8d, edi
movzx r12d, al
mov eax, r15d
xor eax, r11d
and eax, 0xff0000
or r12d, eax
mov eax, r14d
xor eax, r9d
and eax, 0xff00
or r12d, eax
mov eax, ebx
xor eax, esi
and eax, 0xff000000
or r12d, eax
mov eax, r10d
shr eax, 0x18
xor eax, esi
mov dword [rsp + 0x70], r12d
movzx eax, al
or edx, eax
mov eax, r14d
shl eax, 8
xor eax, edi
and eax, 0xff00
or edx, eax
mov eax, ebx
shl eax, 8
xor eax, r11d
and eax, 0xff000000
or edx, eax
mov dword [rsp + 0x74], edx
and r8d, 0xff0000
mov eax, r10d
shr r15d, 8
shr eax, 0x10
xor r15d, esi
xor eax, r11d
shr r10d, 8
movzx eax, al
xor r10d, r9d
or r8d, eax
and r15d, 0xff0000
mov eax, ebx
shl ebx, 0x18
shl eax, 0x10
xor ebx, edi
xor eax, r9d
and ebx, 0xff000000
and eax, 0xff000000
movzx r9d, r10b
or r8d, eax
or r9d, r15d
mov eax, r14d
or r9d, ebx
shr eax, 0x10
shr r14d, 8
xor eax, esi
xor r14d, r11d
and eax, 0xff00
and r14d, 0xff00
or r8d, eax
or r9d, r14d
mov dword [rsp + 0x78], r8d
sub qword [rsp + 0x20], 1
mov dword [rsp + 0x7c], r9d
je 0x14005a7ae
mov r13d, dword [rbp - 0x54]
jmp 0x14005a1e0
cmp r8d, 4
jae 0x140059eb7
lea ecx, [r8 + 1]
mov byte [rbp + r8 - 0x10], 0
cmp ecx, 4
jae 0x140059eb7
mov eax, ecx
nop dword [rax + rax]
cmp rax, 0x10
jae 0x14005a930
mov byte [rbp + rax - 0x10], 0
inc ecx
inc rax
cmp ecx, 4
jb 0x14005a790
jmp 0x140059eb7
mov rdi, qword [rsp + 0x30]
rol edx, 0x10
mov ecx, edx
rol r8d, 0x10
shr ecx, 8
mov eax, edx
shl edx, 8
shl eax, 8
xor ecx, eax
rol r9d, 0x10
and ecx, 0xff00ff
mov eax, r8d
xor ecx, edx
shl eax, 8
mov edx, dword [rbp - 0x80]
mov dword [rdi], ecx
xor edx, r12d
rol edx, 0x10
mov ecx, r8d
shr ecx, 8
xor ecx, eax
shl r8d, 8
and ecx, 0xff00ff
mov eax, r9d
xor ecx, r8d
shl eax, 8
mov dword [rdi + 4], ecx
mov ecx, r9d
shr ecx, 8
xor ecx, eax
shl r9d, 8
and ecx, 0xff00ff
mov eax, edx
xor ecx, r9d
shl eax, 8
mov dword [rdi + 8], ecx
mov ecx, edx
shr ecx, 8
xor ecx, eax
shl edx, 8
and ecx, 0xff00ff
xor ecx, edx
mov edx, dword [rbp - 0x54]
mov dword [rdi + 0xc], ecx
xor edx, r12d
rol edx, 0x10
mov ecx, edx
mov eax, edx
shr ecx, 8
shl edx, 8
shl eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, edx
mov edx, dword [rbp - 0x50]
mov dword [rdi + 0x10], ecx
rol edx, 0x10
mov ecx, edx
mov eax, edx
shr ecx, 8
shl edx, 8
shl eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, edx
mov edx, dword [rbp - 0x4c]
mov dword [rdi + 0x14], ecx
rol edx, 0x10
mov ecx, edx
mov eax, edx
shr ecx, 8
shl edx, 8
shl eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, edx
mov edx, dword [rbp - 0x48]
rol edx, 0x10
mov dword [rdi + 0x18], ecx
mov ecx, edx
shr ecx, 8
mov r15, qword [rsp + 0x110]
mov eax, edx
mov r14, qword [rsp + 0x118]
mov r13, qword [rsp + 0x120]
mov r12, qword [rsp + 0x128]
mov rbx, qword [rsp + 0x158]
shl eax, 8
xor ecx, eax
shl edx, 8
and ecx, 0xff00ff
xor eax, eax
xor ecx, edx
mov dword [rdi + 0x1c], ecx
mov ecx, reloc.WLDAP32.dll_Ordinal_22
mov rdi, qword [rsp + 0x38]
rep stosd dword [rdi], eax
mov rax, qword [rsp + 0x40]
xor ecx, ecx
movups xmm0, xmmword [0x140131300]
movups xmmword [rax + 0x64], xmm0
movups xmm1, xmmword [0x140131310]
movups xmmword [rax + 0x74], xmm1
mov qword [rax], rcx
mov dword [rax + 8], ecx
mov qword [rax + 0xa0], rcx
mov rcx, qword [rbp]
xor rcx, rsp
call fcn.140111120
add rsp, 0x130
pop rdi
pop rsi
pop rbp
ret
call fcn.140110efc
int3