Function at 0x140181140
Capabilities:
Encode data using xor
Encrypt data using aes via x86 extensions

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
push rbp
push rbx
push rsi
push rdi
lea rbp, [rax - 0x298]
sub rsp, 0x378
mov qword [rax + 8], r12
mov rsi, rdx
mov qword [rax - 0x28], r13
xor r12d, r12d
mov qword [rax - 0x30], r14
mov qword [rax - 0x38], r15
mov r15, rcx
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
mov eax, dword [0x1403503e0]
mov qword [rsp + 0x50], r12
cmp eax, 0xffffffff
jne 0x140181208
lea rcx, str.MONERO_USE_SOFTWARE_AES
call fcn.14021a0fc
test rax, rax
jne 0x1401811d1
mov dword [0x1403503e0], r12d
mov eax, r12d
jmp 0x140181208
cmp byte [rax], 0x30
jne 0x1401811dc
cmp byte [rax + 1], r12b
je 0x1401811ed
cmp byte [rax], 0x6e
jne 0x1401811f9
cmp byte [rax + 1], 0x6f
jne 0x1401811f9
cmp byte [rax + 2], r12b
jne 0x1401811f9
mov dword [0x1403503e0], r12d
mov eax, r12d
jmp 0x140181208
mov dword [0x1403503e0], 1
mov eax, 1
test eax, eax
jne 0x140181241
mov ecx, dword [0x1403503e4]
test ecx, ecx
jns 0x140181239
xor ecx, ecx
mov eax, 1
cpuid
and ecx, 0x2000000
mov dword [rsp + 0x40], eax
mov dword [0x1403503e4], ecx
test ecx, ecx
mov dword [rsp + 0x44], ebx
mov dword [rsp + 0x4c], edx
mov r14d, 1
jne 0x140181244
mov r14d, r12d
mov rax, qword gs:[0x58]
mov ecx, dword [0x140364140]
mov ebx, 8
mov r13d, reloc.WS2_32.dll_recv
mov rdi, qword [rax + rcx*8]
mov qword [rbp + 0x2b8], rdi
mov rax, qword [rbx + rdi]
mov qword [rbp - 0x10], rax
test rax, rax
jne 0x140181399
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea r8, [rsp + 0x30]
mov edx, 0x20
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
mov edi, 0x200000
test eax, eax
je 0x1401812f2
lea r8, [rsp + 0x44]
mov dword [rsp + 0x40], 1
lea rdx, str.SeLockMemoryPrivilege
mov dword [rsp + 0x4c], 2
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueA]
mov rcx, qword [rsp + 0x30]
test eax, eax
je 0x1401812ec
mov qword [rsp + 0x28], r12
lea r8, [rsp + 0x40]
xor r9d, r9d
mov qword [rsp + 0x20], r12
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
test eax, eax
jne 0x140181356
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r12, qword [rbp + 0x2b8]
mov ebx, r13d
mov r13d, 8
add rbx, r12
cmp qword [r12 + r13], 0
jne 0x14018132c
xor ecx, ecx
mov edx, 0x40000
mov r8d, 0x3000
lea r9d, [rcx + 4]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [r12 + r13], rax
mov edi, 0x40000
mov dword [rbx], edi
xor r12d, r12d
mov rdi, qword [rbp + 0x2b8]
cmp qword [rdi + r13], r12
jne 0x140181394
mov ecx, 0x40000
mov dword [rbx], r12d
call fcn.140218fdc
mov ebx, 8
mov qword [rbx + rdi], rax
jmp 0x140181399
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x30]
test eax, eax
jne 0x1401812ec
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r12, qword [rbp + 0x2b8]
mov r9d, 4
mov r8d, 0x20003000
mov rdx, rdi
mov rcx, qword [rbx + r12]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rbx + r12], rax
jmp 0x1401812f9
mov ebx, 8
movaps xmmword [rsp + 0x2d0], xmm14
lea rcx, [rbp]
mov r8, rsi
movaps xmmword [rsp + 0x2c0], xmm15
mov rdx, r15
call fcn.140180350
movups xmm6, xmmword [rbp + 0x40]
movups xmm7, xmmword [rbp + 0x50]
movups xmm8, xmmword [rbp + 0x60]
movups xmm9, xmmword [rbp + 0x70]
movups xmm10, xmmword [rbp + 0x80]
movups xmm11, xmmword [rbp + 0x90]
movups xmm12, xmmword [rbp + 0xa0]
movups xmm13, xmmword [rbp + 0xb0]
movdqu xmmword [rsp + 0x70], xmm6
movdqu xmmword [rbp - 0x80], xmm7
movdqu xmmword [rbp - 0x70], xmm8
movdqu xmmword [rbp - 0x60], xmm9
movdqu xmmword [rbp - 0x50], xmm10
movdqu xmmword [rbp - 0x40], xmm11
movdqu xmmword [rbp - 0x30], xmm12
movdqu xmmword [rbp - 0x20], xmm13
test r14d, r14d
je 0x1401816d7
lea rdx, [rbp + 0xd0]
lea rcx, [rbp]
call fcn.140180500
movdqa xmm0, xmmword [rbp + 0x160]
mov rcx, r12
movdqa xmm1, xmmword [rbp + 0x150]
movdqa xmm2, xmmword [rbp + 0x140]
movdqa xmm3, xmmword [rbp + 0x130]
movdqa xmm4, xmmword [rbp + 0x120]
movdqa xmm5, xmmword [rbp + 0x110]
movdqa xmm14, xmmword [rbp + 0x100]
movdqa xmm15, xmmword [rbp + 0xf0]
nop dword [rax]
aesenc xmm6, xmmword [rbp + 0xd0]
aesenc xmm7, xmmword [rbp + 0xd0]
aesenc xmm8, xmmword [rbp + 0xd0]
aesenc xmm9, xmmword [rbp + 0xd0]
aesenc xmm10, xmmword [rbp + 0xd0]
aesenc xmm11, xmmword [rbp + 0xd0]
aesenc xmm12, xmmword [rbp + 0xd0]
aesenc xmm13, xmmword [rbp + 0xd0]
aesenc xmm6, xmmword [rbp + 0xe0]
aesenc xmm7, xmmword [rbp + 0xe0]
aesenc xmm8, xmmword [rbp + 0xe0]
aesenc xmm9, xmmword [rbp + 0xe0]
aesenc xmm10, xmmword [rbp + 0xe0]
aesenc xmm11, xmmword [rbp + 0xe0]
aesenc xmm12, xmmword [rbp + 0xe0]
aesenc xmm13, xmmword [rbp + 0xe0]
mov rax, qword [rbx + rdi]
aesenc xmm6, xmm15
aesenc xmm7, xmm15
aesenc xmm8, xmm15
aesenc xmm9, xmm15
aesenc xmm10, xmm15
aesenc xmm11, xmm15
aesenc xmm12, xmm15
aesenc xmm13, xmm15
aesenc xmm6, xmm14
aesenc xmm7, xmm14
aesenc xmm8, xmm14
aesenc xmm9, xmm14
aesenc xmm10, xmm14
aesenc xmm11, xmm14
aesenc xmm12, xmm14
aesenc xmm13, xmm14
aesenc xmm6, xmm5
aesenc xmm7, xmm5
aesenc xmm8, xmm5
aesenc xmm9, xmm5
aesenc xmm10, xmm5
aesenc xmm11, xmm5
aesenc xmm12, xmm5
aesenc xmm13, xmm5
aesenc xmm6, xmm4
aesenc xmm7, xmm4
aesenc xmm8, xmm4
aesenc xmm9, xmm4
aesenc xmm10, xmm4
aesenc xmm11, xmm4
aesenc xmm12, xmm4
aesenc xmm13, xmm4
aesenc xmm6, xmm3
aesenc xmm7, xmm3
aesenc xmm8, xmm3
aesenc xmm9, xmm3
aesenc xmm10, xmm3
aesenc xmm11, xmm3
aesenc xmm12, xmm3
aesenc xmm13, xmm3
aesenc xmm6, xmm2
aesenc xmm7, xmm2
aesenc xmm8, xmm2
aesenc xmm9, xmm2
aesenc xmm10, xmm2
aesenc xmm11, xmm2
aesenc xmm12, xmm2
aesenc xmm13, xmm2
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
aesenc xmm10, xmm1
aesenc xmm11, xmm1
aesenc xmm12, xmm1
aesenc xmm13, xmm1
aesenc xmm6, xmm0
aesenc xmm7, xmm0
aesenc xmm8, xmm0
aesenc xmm9, xmm0
aesenc xmm10, xmm0
aesenc xmm11, xmm0
aesenc xmm12, xmm0
aesenc xmm13, xmm0
movups xmmword [rax + rcx], xmm6
movups xmmword [rax + rcx + 0x10], xmm7
movups xmmword [rax + rcx + 0x20], xmm8
movups xmmword [rax + rcx + 0x30], xmm9
movups xmmword [rax + rcx + 0x40], xmm10
movups xmmword [rax + rcx + 0x50], xmm11
movups xmmword [rax + rcx + 0x60], xmm12
movups xmmword [rax + rcx + 0x70], xmm13
sub rcx, 0xffffffffffffff80
cmp rcx, 0x40000
jb 0x140181480
jmp 0x1401817a0
call fcn.140182840
mov r8d, 0x20
mov qword [rsp + 0x50], rax
lea rdx, [rbp]
mov rcx, rax
call fcn.1401829e0
mov rsi, r12
nop word [rax + rax]
lea rbx, [rsp + 0x70]
mov edi, 8
nop word [rax + rax]
mov rax, qword [rsp + 0x50]
mov rdx, rbx
mov rcx, rbx
mov r8, qword [rax]
mov r8, qword [r8 + 0x18]
call fcn.140180730
add rbx, 0x10
sub rdi, 1
jne 0x140181710
movups xmm0, xmmword [rsp + 0x70]
movups xmm1, xmmword [rbp - 0x80]
mov rdi, qword [rbp + 0x2b8]
mov ebx, 8
mov rax, qword [rbx + rdi]
movups xmmword [rax + rsi], xmm0
movups xmm0, xmmword [rbp - 0x70]
movups xmmword [rax + rsi + 0x10], xmm1
movups xmm1, xmmword [rbp - 0x60]
movups xmmword [rax + rsi + 0x20], xmm0
movups xmm0, xmmword [rbp - 0x50]
movups xmmword [rax + rsi + 0x30], xmm1
movups xmm1, xmmword [rbp - 0x40]
movups xmmword [rax + rsi + 0x40], xmm0
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [rax + rsi + 0x50], xmm1
movups xmm1, xmmword [rbp - 0x20]
movups xmmword [rax + rsi + 0x60], xmm0
movups xmmword [rax + rsi + 0x70], xmm1
sub rsi, 0xffffffffffffff80
cmp rsi, 0x40000
jb 0x140181700
nop word [rax + rax]
mov rax, qword [rbp + 0x30]
mov r13d, 0x10000
xor rax, qword [rbp + 0x10]
mov r15, qword [rbp]
xor r15, qword [rbp + 0x20]
mov r12, qword [rbp + 0x28]
xor r12, qword [rbp + 8]
mov qword [rsp + 0x60], rax
mov rax, qword [rbp + 0x18]
xor rax, qword [rbp + 0x38]
mov qword [rsp + 0x68], rax
movdqa xmm3, xmmword [rsp + 0x60]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], r12
test r14d, r14d
je 0x140181ba3
movdqa xmm0, xmmword [rsp + 0x30]
nop
mov rax, qword [rbx + rdi]
mov rcx, r15
and ecx, 0x3fff0
movdqu xmm1, xmmword [rax + rcx]
aesenc xmm1, xmm0
movq rdx, xmm1
movdqa xmm0, xmm1
pxor xmm0, xmm3
movdqa xmm3, xmm1
movdqu xmmword [rax + rcx], xmm0
mov rbx, qword [rbx + rdi]
mov rcx, rdx
and ecx, 0x3fff0
add rbx, rcx
mov rax, qword [rbx]
mov rcx, qword [rbx + 8]
mov qword [rsp + 0x60], rax
mul rdx
mov qword [rsp + 0x68], rcx
add r15, rdx
add r12, rax
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], r12
movdqa xmm0, xmmword [rsp + 0x30]
pxor xmm0, xmmword [rsp + 0x60]
mov qword [rbx], r15
movdqa xmmword [rsp + 0x30], xmm0
mov qword [rbx + 8], r12
sub r13, 1
je 0x140181884
mov r12, qword [rsp + 0x38]
mov r15, qword [rsp + 0x30]
mov ebx, 8
jmp 0x1401817f0
movups xmm6, xmmword [rbp + 0x40]
lea rdx, [rbp + 0xd0]
movups xmm7, xmmword [rbp + 0x50]
lea rcx, [rbp + 0x20]
movups xmm8, xmmword [rbp + 0x60]
movups xmm9, xmmword [rbp + 0x70]
movups xmm10, xmmword [rbp + 0x80]
movups xmm11, xmmword [rbp + 0x90]
movups xmm12, xmmword [rbp + 0xa0]
movups xmm13, xmmword [rbp + 0xb0]
call fcn.140180500
movdqa xmm1, xmmword [rbp + 0x160]
mov r14d, 0x800
movdqa xmm2, xmmword [rbp + 0x150]
movdqa xmm3, xmmword [rbp + 0x140]
movdqa xmm4, xmmword [rbp + 0x130]
movdqa xmm5, xmmword [rbp + 0x120]
movdqa xmm14, xmmword [rbp + 0x110]
movdqa xmm15, xmmword [rbp + 0x100]
mov esi, 8
mov rax, qword [rsi + rdi]
nop
movdqu xmm0, xmmword [rax]
pxor xmm6, xmm0
aesenc xmm6, xmmword [rbp + 0xd0]
aesenc xmm6, xmmword [rbp + 0xe0]
aesenc xmm6, xmmword [rbp + 0xf0]
movdqu xmm0, xmmword [rax + 0x10]
aesenc xmm6, xmm15
pxor xmm7, xmm0
aesenc xmm7, xmmword [rbp + 0xd0]
aesenc xmm7, xmmword [rbp + 0xe0]
aesenc xmm7, xmmword [rbp + 0xf0]
movdqu xmm0, xmmword [rax + 0x20]
aesenc xmm7, xmm15
pxor xmm8, xmm0
aesenc xmm8, xmmword [rbp + 0xd0]
aesenc xmm8, xmmword [rbp + 0xe0]
aesenc xmm8, xmmword [rbp + 0xf0]
movdqu xmm0, xmmword [rax + 0x30]
aesenc xmm8, xmm15
pxor xmm9, xmm0
aesenc xmm9, xmmword [rbp + 0xd0]
aesenc xmm9, xmmword [rbp + 0xe0]
aesenc xmm9, xmmword [rbp + 0xf0]
movdqu xmm0, xmmword [rax + 0x40]
aesenc xmm9, xmm15
pxor xmm10, xmm0
aesenc xmm10, xmmword [rbp + 0xd0]
aesenc xmm10, xmmword [rbp + 0xe0]
aesenc xmm10, xmmword [rbp + 0xf0]
movdqu xmm0, xmmword [rax + 0x50]
aesenc xmm10, xmm15
pxor xmm11, xmm0
aesenc xmm11, xmmword [rbp + 0xd0]
aesenc xmm11, xmmword [rbp + 0xe0]
aesenc xmm11, xmmword [rbp + 0xf0]
movdqu xmm0, xmmword [rax + 0x60]
aesenc xmm11, xmm15
pxor xmm12, xmm0
aesenc xmm12, xmmword [rbp + 0xd0]
aesenc xmm12, xmmword [rbp + 0xe0]
aesenc xmm12, xmmword [rbp + 0xf0]
aesenc xmm11, xmm14
aesenc xmm6, xmm14
aesenc xmm7, xmm14
aesenc xmm8, xmm14
aesenc xmm9, xmm14
aesenc xmm10, xmm14
aesenc xmm11, xmm5
aesenc xmm6, xmm5
aesenc xmm7, xmm5
aesenc xmm8, xmm5
aesenc xmm9, xmm5
aesenc xmm10, xmm5
aesenc xmm11, xmm4
aesenc xmm6, xmm4
aesenc xmm7, xmm4
aesenc xmm8, xmm4
aesenc xmm9, xmm4
aesenc xmm10, xmm4
aesenc xmm12, xmm15
aesenc xmm11, xmm3
aesenc xmm6, xmm3
aesenc xmm7, xmm3
aesenc xmm8, xmm3
aesenc xmm9, xmm3
aesenc xmm10, xmm3
aesenc xmm12, xmm14
aesenc xmm11, xmm2
aesenc xmm6, xmm2
aesenc xmm7, xmm2
aesenc xmm8, xmm2
aesenc xmm9, xmm2
aesenc xmm10, xmm2
aesenc xmm12, xmm5
aesenc xmm11, xmm1
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
aesenc xmm10, xmm1
aesenc xmm12, xmm4
movdqu xmm0, xmmword [rax + 0x70]
lea rax, [rax + 0x80]
aesenc xmm12, xmm3
pxor xmm13, xmm0
aesenc xmm13, xmmword [rbp + 0xd0]
aesenc xmm13, xmmword [rbp + 0xe0]
aesenc xmm13, xmmword [rbp + 0xf0]
aesenc xmm13, xmm15
aesenc xmm13, xmm14
aesenc xmm13, xmm5
aesenc xmm13, xmm4
aesenc xmm13, xmm3
aesenc xmm13, xmm2
aesenc xmm12, xmm2
aesenc xmm13, xmm1
aesenc xmm12, xmm1
sub r14, 1
jne 0x140181910
jmp 0x140181eb6
movdqa xmm2, xmmword [rsp + 0x30]
nop dword [rax]
mov r14, qword [rbx + rdi]
mov rcx, r15
and ecx, 0x3fff0
lea rbx, [0x140000000]
add r14, rcx
movdqu xmm0, xmmword [r14]
pextrd edi, xmm0, 3
pextrd r11d, xmm0, 1
pextrd r10d, xmm0, 2
movq rax, xmm0
movd r8d, xmm0
movzx ecx, al
movdqa xmmword [rsp + 0x40], xmm0
movzx edx, r11b
mov eax, edi
mov esi, dword [rbx + rcx*4 + 0x2ca780]
shr rax, 0x18
mov r9d, dword [rbx + rdx*4 + 0x2ca780]
xor esi, dword [rbx + rax*4 + 0x2cb380]
mov eax, r10d
shr eax, 0x10
movzx ecx, al
mov eax, r11d
shr eax, 8
xor esi, dword [rbx + rcx*4 + 0x2caf80]
movzx ecx, al
movd eax, xmm2
xor esi, dword [rbx + rcx*4 + 0x2cab80]
xor esi, eax
mov eax, edi
shr eax, 0x10
movzx ecx, al
mov eax, r10d
shr eax, 8
mov dword [rsp + 0x40], esi
xor r9d, dword [rbx + rcx*4 + 0x2caf80]
movzx ecx, al
mov eax, r8d
shr rax, 0x18
xor r9d, dword [rbx + rcx*4 + 0x2cab80]
xor r9d, dword [rbx + rax*4 + 0x2cb380]
pextrd eax, xmm2, 1
xor r9d, eax
pextrq rax, xmm0, 1
movzx edx, al
mov eax, edi
shr eax, 8
movzx ecx, al
mov eax, r11d
mov ebx, dword [rbx + rdx*4 + 0x2ca780]
lea rdx, [0x140000000]
shr rax, 0x18
xor ebx, dword [rdx + rcx*4 + 0x2cab80]
shr r11d, 0x10
mov dword [rsp + 0x44], r9d
xor ebx, dword [rdx + rax*4 + 0x2cb380]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
pextrd eax, xmm2, 2
shr r8d, 8
xor ebx, dword [rdx + rcx*4 + 0x2caf80]
xor ebx, eax
movzx ecx, dil
mov eax, r10d
shr rax, 0x18
mov dword [rsp + 0x48], ebx
mov edx, dword [rdx + rcx*4 + 0x2ca780]
lea rcx, [0x140000000]
xor edx, dword [rcx + rax*4 + 0x2cb380]
movzx eax, r11b
xor edx, dword [rcx + rax*4 + 0x2caf80]
movzx eax, r8b
xor edx, dword [rcx + rax*4 + 0x2cab80]
pextrd eax, xmm2, 3
xor edx, eax
mov dword [rsp + 0x4c], edx
movdqa xmm1, xmmword [rsp + 0x40]
movdqa xmm0, xmm1
pxor xmm0, xmm3
movdqu xmmword [r14], xmm0
mov rdi, qword [rbp + 0x2b8]
movq rdx, xmm1
mov rcx, rdx
mov eax, 8
and ecx, 0x3fff0
movdqa xmm3, xmm1
mov rbx, qword [rax + rdi]
add rbx, rcx
mov rax, qword [rbx]
mov rcx, qword [rbx + 8]
mov qword [rsp + 0x60], rax
mul rdx
mov qword [rsp + 0x68], rcx
add r15, rdx
add r12, rax
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], r12
movdqa xmm2, xmmword [rsp + 0x30]
pxor xmm2, xmmword [rsp + 0x60]
mov qword [rbx], r15
movdqa xmmword [rsp + 0x30], xmm2
mov qword [rbx + 8], r12
sub r13, 1
je 0x140181da5
mov r12, qword [rsp + 0x38]
mov r15, qword [rsp + 0x30]
mov ebx, 8
jmp 0x140181bb0
movups xmm0, xmmword [rbp + 0x40]
lea rdx, [rbp + 0x20]
movups xmm1, xmmword [rbp + 0x50]
mov r8d, 0x20
mov rcx, qword [rsp + 0x50]
movups xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [rbp + 0x60]
movups xmmword [rbp - 0x80], xmm1
movups xmm1, xmmword [rbp + 0x70]
movups xmmword [rbp - 0x70], xmm0
movups xmm0, xmmword [rbp + 0x80]
movups xmmword [rbp - 0x60], xmm1
movups xmm1, xmmword [rbp + 0x90]
movups xmmword [rbp - 0x50], xmm0
movups xmm0, xmmword [rbp + 0xa0]
movups xmmword [rbp - 0x40], xmm1
movups xmm1, xmmword [rbp + 0xb0]
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm1
call fcn.1401829e0
lea rsi, [rsp + 0x78]
mov r14d, 0x800
neg rsi
mov qword [rsp + 0x30], r14
mov r12, rdi
nop dword [rax]
lea rbx, [rsp + 0x70]
mov r14d, 8
mov edi, 8
mov rcx, qword [r14 + r12]
mov rdx, rbx
add rcx, rsi
mov rax, qword [rcx + rbx + 8]
xor qword [rbx], rax
mov rax, qword [rcx + rbx + 0x10]
mov rcx, rbx
xor qword [rbx + 8], rax
mov rax, qword [rsp + 0x50]
mov r8, qword [rax]
mov r8, qword [r8 + 0x18]
call fcn.140180730
add rbx, 0x10
sub rdi, 1
jne 0x140181e30
sub rsi, 0xffffffffffffff80
sub qword [rsp + 0x30], 1
jne 0x140181e20
lea rcx, [rsp + 0x50]
call fcn.140182910
movdqu xmm13, xmmword [rbp - 0x20]
mov rdi, r12
movdqu xmm12, xmmword [rbp - 0x30]
movdqu xmm11, xmmword [rbp - 0x40]
movdqu xmm10, xmmword [rbp - 0x50]
movdqu xmm9, xmmword [rbp - 0x60]
movdqu xmm8, xmmword [rbp - 0x70]
movdqu xmm7, xmmword [rbp - 0x80]
movdqu xmm6, xmmword [rsp + 0x70]
mov esi, 8
lea rcx, [rbp]
movups xmmword [rbp + 0x40], xmm6
movups xmmword [rbp + 0x50], xmm7
movups xmmword [rbp + 0x60], xmm8
movups xmmword [rbp + 0x70], xmm9
movups xmmword [rbp + 0x80], xmm10
movups xmmword [rbp + 0x90], xmm11
movups xmmword [rbp + 0xa0], xmm12
movups xmmword [rbp + 0xb0], xmm13
call fcn.140180340
movzx eax, byte [rbp]
lea rcx, [rbp]
mov r8, qword [rbp + 0x2b0]
lea rbx, [0x140000000]
and eax, 3
mov edx, 0xc8
call qword [rbx + rax*8 + 0x2cb780]
cmp qword [rbp - 0x10], 0
movaps xmm15, xmmword [rsp + 0x2c0]
movaps xmm14, xmmword [rsp + 0x2d0]
movaps xmm13, xmmword [rsp + 0x2e0]
movaps xmm12, xmmword [rsp + 0x2f0]
movaps xmm11, xmmword [rsp + 0x300]
movaps xmm10, xmmword [rsp + 0x310]
movaps xmm9, xmmword [rsp + 0x320]
movaps xmm8, xmmword [rsp + 0x330]
movaps xmm7, xmmword [rsp + 0x340]
movaps xmm6, xmmword [rsp + 0x350]
mov r15, qword [rsp + 0x360]
mov r14, qword [rsp + 0x368]
mov r13, qword [rsp + 0x370]
mov r12, qword [rsp + 0x3a0]
jne 0x140181fc9
mov rcx, qword [rsi + rdi]
test rcx, rcx
je 0x140181fc9
mov eax, reloc.WS2_32.dll_recv
mov ebx, eax
cmp dword [rax + rdi], 0
jne 0x140181fb2
call fcn.14020c804
jmp 0x140181fc0
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor eax, eax
mov qword [rsi + rdi], rax
mov dword [rbx + rdi], eax
add rsp, 0x378
pop rdi
pop rsi
pop rbx
pop rbp
ret