Function at 0x180003500
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x2c8
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0x230], xmm15
movdqa xmmword [rbp + 0x220], xmm14
movdqa xmmword [rbp + 0x210], xmm13
movdqa xmmword [rbp + 0x200], xmm12
movdqa xmmword [rbp + 0x1f0], xmm11
movdqa xmmword [rbp + 0x1e0], xmm10
movdqa xmmword [rbp + 0x1d0], xmm9
movdqa xmmword [rbp + 0x1c0], xmm8
movdqa xmmword [rbp + 0x1b0], xmm7
movdqa xmmword [rbp + 0x1a0], xmm6
mov qword [rbp + 0x198], 0xfffffffffffffffe
mov qword [rbp + 0x148], r8
movabs rax, 0xa00000004
mov qword [rcx], rax
lea rax, [rcx + 8]
mov qword [rbp + 0x38], rax
pxor xmm0, xmm0
movdqu xmmword [rcx + 8], xmm0
mov qword [rbp + 0x160], rcx
mov qword [rcx + 0x18], 0
mov rsi, qword [r8 + 8]
sub rsi, qword [r8]
mov qword [rbp + 0x168], rdx
je 0x1800035eb
js 0x1800044e4
cmp rsi, 0x1000
jb 0x180003609
lea rcx, [rsi + 0x27]
call fcn.1800c38b8
mov rdi, rax
add rdi, 0x27
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x180003614
mov rdi, rdx
movdqa xmmword [rbp + 0x120], xmm0
mov qword [rbp + 0x130], 0
xor r14d, r14d
jmp 0x1800036eb
mov rcx, rsi
call fcn.1800c38b8
mov rdi, rax
mov r14, qword [rbp + 0x160]
mov qword [r14 + 8], rdi
mov qword [r14 + 0x10], rdi
add rsi, rdi
mov qword [r14 + 0x18], rsi
mov rbx, qword [rbp + 0x148]
mov rdx, qword [rbx]
mov rsi, qword [rbx + 8]
sub rsi, rdx
mov rcx, rdi
mov r8, rsi
call fcn.1801258c0
add rsi, rdi
mov qword [r14 + 0x10], rsi
mov rsi, qword [rbx + 8]
pxor xmm0, xmm0
sub rsi, qword [rbx]
movdqa xmmword [rbp + 0x120], xmm0
mov qword [rbp + 0x130], 0
je 0x180003696
js 0x1800044ee
cmp rsi, 0x1000
jb 0x1800036a2
lea rcx, [rsi + 0x27]
call fcn.1800c38b8
mov r14, rax
add r14, 0x27
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x1800036ad
xor r14d, r14d
mov rdi, qword [rbp + 0x168]
jmp 0x1800036eb
mov rcx, rsi
call fcn.1800c38b8
mov r14, rax
mov rdi, qword [rbp + 0x168]
mov qword [rbp + 0x120], r14
add rsi, r14
mov qword [rbp + 0x130], rsi
mov rax, qword [rbp + 0x148]
mov rdx, qword [rax]
mov rsi, qword [rax + 8]
sub rsi, rdx
mov rcx, r14
mov r8, rsi
call fcn.1801258c0
add rsi, r14
mov qword [rbp + 0x128], rsi
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x100], xmm0
mov qword [rbp + 0x110], 0
mov rbx, qword [rdi + 8]
sub rbx, qword [rdi]
je 0x18000373b
js 0x1800044e9
cmp rbx, 0x1000
jb 0x180003741
lea rcx, [rbx + 0x27]
call fcn.1800c38b8
mov rsi, rax
add rsi, 0x27
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
mov r14, qword [rbp + 0x120]
jmp 0x18000374c
xor esi, esi
xor ebx, ebx
jmp 0x180003783
mov rcx, rbx
call fcn.1800c38b8
mov rsi, rax
mov qword [rbp + 0x100], rsi
add rbx, rsi
mov qword [rbp + 0x110], rbx
mov rax, qword [rbp + 0x168]
mov rdx, qword [rax]
mov rbx, qword [rax + 8]
sub rbx, rdx
mov rcx, rsi
mov r8, rbx
call fcn.1801258c0
add rbx, rsi
mov qword [rbp + 0x108], rbx
sub rbx, rsi
test bl, 0xf
jne 0x180004479
mov qword [rbp + 0x170], r14
mov r13d, ebx
mov rcx, r13
call fcn.1800c3930
mov rdi, rax
mov rax, qword [rbp + 0x160]
mov eax, dword [rax + 4]
mov dword [rbp + 0x144], eax
mov r15d, eax
shl r15d, 4
lea ecx, [r15 + 0x10]
call fcn.1800c3930
mov r12, rax
mov rcx, qword [rbp + 0x160]
lea r14, [rcx + 0x20]
mov rdx, qword [rbp + 0x170]
mov r8, rax
call fcn.1800011b0
test ebx, ebx
mov qword [rbp + 0xa8], r12
je 0x18000422e
mov qword [rbp + 0x30], r14
movzx eax, byte [r12]
mov byte [rbp + 0x188], al
movzx eax, byte [r12 + 1]
mov byte [rbp + 0x189], al
movzx eax, byte [r12 + 4]
mov byte [rbp + 0x18a], al
movzx eax, byte [r12 + 8]
mov byte [rbp + 0x18b], al
movzx eax, byte [r12 + 0xc]
mov byte [rbp + 0x18c], al
movzx eax, byte [r12 + 5]
mov byte [rbp + 0x18d], al
movzx eax, byte [r12 + 9]
mov byte [rbp + 0x18e], al
movzx eax, byte [r12 + 0xd]
mov byte [rbp + 0x18f], al
movzx eax, byte [r12 + 2]
mov byte [rbp + 0x190], al
movzx eax, byte [r12 + 6]
mov byte [rbp + 0x191], al
movzx eax, byte [r12 + 0xa]
mov byte [rbp + 0x192], al
movzx eax, byte [r12 + 0xe]
mov byte [rbp + 0x193], al
movzx eax, byte [r12 + 3]
mov byte [rbp + 0x194], al
movzx eax, byte [r12 + 7]
mov byte [rbp + 0x195], al
movzx eax, byte [r12 + 0xb]
mov byte [rbp + 0x196], al
movzx eax, byte [r12 + 0xf]
mov byte [rbp + 0x197], al
mov eax, r15d
mov ecx, dword [rbp + 0x144]
cmp ecx, 3
mov edx, 2
cmovae edx, ecx
movdqu xmm0, xmmword [r12 + rax]
movdqa xmmword [rbp - 0x50], xmm0
mov eax, ebx
mov qword [rbp + 0x20], rax
shl rdx, 4
mov qword [rbp + 8], rdx
xor eax, eax
pxor xmm6, xmm6
mov qword [rbp + 0x28], rsi
mov qword [rbp + 0x18], rdi
jmp 0x180003b0e
movzx eax, r8b
mov edx, eax
and edx, 0xfffffff0
and eax, 0xf
lea r8, str.cw
add rdx, r8
movzx edx, byte [rax + rdx]
movzx edi, r14b
movd xmm0, edx
movdqa xmmword [rbp + 0x90], xmm0
mov edx, edi
and edx, 0xfffffff0
and edi, 0xf
add rdx, r8
movzx edx, byte [rdi + rdx]
movzx edi, r10b
movd xmm5, edx
mov edx, edi
and edx, 0xfffffff0
and edi, 0xf
add rdx, r8
movdqa xmmword [rbp + 0x80], xmm7
movzx edx, byte [rdi + rdx]
movzx edi, byte [rbp + 0x8e]
movd xmm1, edx
mov edx, edi
and edx, 0xfffffff0
and edi, 0xf
add rdx, r8
movzx edx, byte [rdi + rdx]
movzx edi, r13b
movd xmm15, edx
mov edx, edi
and edx, 0xfffffff0
and edi, 0xf
add rdx, r8
movzx edx, byte [rdi + rdx]
movzx ecx, cl
movd xmm3, edx
mov edx, ecx
and edx, 0xfffffff0
and ecx, 0xf
add rdx, r8
movzx ecx, byte [rcx + rdx]
movzx edx, byte [rbp + 0x178]
movd xmm2, ecx
mov ecx, edx
and ecx, 0xfffffff0
and edx, 0xf
add rcx, r8
movzx ecx, byte [rdx + rcx]
movzx edx, byte [rbp + 0x8d]
movd xmm6, ecx
mov ecx, edx
and ecx, 0xfffffff0
and edx, 0xf
add rcx, r8
movzx ecx, byte [rdx + rcx]
movzx edx, r9b
movd xmm4, ecx
mov ecx, edx
and ecx, 0xfffffff0
and edx, 0xf
add rcx, r8
movzx ecx, byte [rdx + rcx]
movzx edx, bl
movd xmm9, ecx
mov ecx, edx
and ecx, 0xfffffff0
and edx, 0xf
add rcx, r8
movzx ecx, byte [rdx + rcx]
movzx edx, r11b
movd xmm8, ecx
mov ecx, edx
and ecx, 0xfffffff0
and edx, 0xf
add rcx, r8
movzx ecx, byte [rdx + rcx]
movzx edx, byte [rbp + 0x8c]
movd xmm10, ecx
mov ecx, edx
and ecx, 0xfffffff0
and edx, 0xf
add rcx, r8
movzx ecx, byte [rdx + rcx]
movzx edx, byte [rbp + 0x170]
movd xmm11, ecx
mov ecx, edx
and ecx, 0xfffffff0
and edx, 0xf
add rcx, r8
movzx ecx, byte [rdx + rcx]
movzx eax, r15b
movd xmm12, ecx
mov ecx, eax
and ecx, 0xfffffff0
and eax, 0xf
add rcx, r8
movzx eax, byte [rax + rcx]
movzx ecx, r12b
movd xmm13, eax
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0xf
add rax, r8
movzx eax, byte [rcx + rax]
movzx ecx, byte [rbp + 0x8f]
movd xmm14, eax
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0xf
add rax, r8
movzx eax, byte [rcx + rax]
movd xmm0, eax
punpcklbw xmm5, xmmword [rbp + 0x90]
punpcklbw xmm1, xmm15
punpcklwd xmm5, xmm1
punpcklbw xmm2, xmm3
punpcklbw xmm6, xmm4
punpcklwd xmm2, xmm6
punpckldq xmm2, xmm5
punpcklbw xmm8, xmm9
punpcklbw xmm10, xmm11
punpcklwd xmm8, xmm10
punpcklbw xmm13, xmm12
punpcklbw xmm14, xmm0
punpcklwd xmm13, xmm14
punpckldq xmm13, xmm8
punpcklqdq xmm13, xmm2
pxor xmm13, xmmword [rbp - 0x50]
mov rax, qword [rbp + 0x10]
mov rdi, qword [rbp + 0x18]
movdqu xmmword [rdi + rax], xmm13
add rax, 0x10
cmp rax, qword [rbp + 0x20]
pxor xmm6, xmm6
jae 0x180004216
movzx r15d, byte [rsi + rax]
xor r15b, byte [rbp + 0x188]
movzx ebx, byte [rsi + rax + 4]
xor bl, byte [rbp + 0x18a]
movzx ecx, byte [rsi + rax + 8]
xor cl, byte [rbp + 0x18b]
movzx r14d, byte [rsi + rax + 0xc]
xor r14b, byte [rbp + 0x18c]
movzx r8d, byte [rsi + rax + 1]
xor r8b, byte [rbp + 0x189]
movzx edx, byte [rsi + rax + 5]
xor dl, byte [rbp + 0x18d]
mov byte [rbp + 0x170], dl
movzx r9d, byte [rsi + rax + 9]
xor r9b, byte [rbp + 0x18e]
movzx r13d, byte [rsi + rax + 0xd]
xor r13b, byte [rbp + 0x18f]
movzx edx, byte [rsi + rax + 2]
xor dl, byte [rbp + 0x190]
mov byte [rbp + 0x178], dl
movzx r11d, byte [rsi + rax + 0xe]
xor r11b, byte [rbp + 0x193]
movzx edi, r11b
movd xmm0, edi
movzx edx, byte [rsi + rax + 3]
xor dl, byte [rbp + 0x194]
pslldq xmm0, 0xb
movdqa xmm2, xmmword [0x18018be30]
movdqa xmm1, xmm2
pandn xmm1, xmm0
movzx edi, dl
movd xmm0, edi
movzx edx, byte [rsi + rax + 7]
xor dl, byte [rbp + 0x195]
pand xmm7, xmm2
por xmm7, xmm1
pshufd xmm0, xmm0, 0
movdqa xmm2, xmmword [0x18018be40]
movdqa xmm1, xmm2
pandn xmm1, xmm0
movzx edi, dl
movd xmm0, edi
movzx edx, byte [rsi + rax + 0xb]
xor dl, byte [rbp + 0x196]
pand xmm7, xmm2
por xmm7, xmm1
pslldq xmm0, 0xd
movdqa xmm2, xmmword [0x18018be50]
movdqa xmm1, xmm2
pandn xmm1, xmm0
movzx edi, dl
movd xmm0, edi
movzx edx, byte [rsi + rax + 0xf]
xor dl, byte [rbp + 0x197]
pand xmm7, xmm2
por xmm1, xmm7
movzx edi, dl
movd xmm7, edi
movzx r10d, byte [rsi + rax + 6]
xor r10b, byte [rbp + 0x191]
mov qword [rbp + 0x10], rax
movzx r12d, byte [rsi + rax + 0xa]
xor r12b, byte [rbp + 0x192]
pand xmm1, xmmword [0x18018be60]
pslldq xmm0, 0xe
por xmm0, xmm1
pand xmm0, xmmword [0x18018be70]
pslldq xmm7, 0xf
por xmm7, xmm0
cmp dword [rbp + 0x144], 1
je 0x180003900
mov eax, reloc.WS2_32.dll_recv
mov qword [rbp + 0x90], rax
movzx edx, byte [rbp + 0x170]
movzx r11d, byte [rbp + 0x178]
nop word cs:[rax + rax]
movzx edi, r15b
mov eax, edi
and eax, 0xfffffff0
and edi, 0xf
lea rsi, str.cw
add rax, rsi
movzx eax, byte [rdi + rax]
mov qword [rbp + 0xd0], rax
movzx ebx, bl
mov eax, ebx
and eax, 0xfffffff0
and ebx, 0xf
add rax, rsi
movzx ebx, byte [rbx + rax]
movzx eax, cl
mov ecx, eax
and ecx, 0xfffffff0
and eax, 0xf
add rcx, rsi
movzx eax, byte [rax + rcx]
mov qword [rbp + 0xf0], rax
movzx eax, r14b
mov ecx, eax
and ecx, 0xfffffff0
and eax, 0xf
add rcx, rsi
movzx eax, byte [rax + rcx]
mov qword [rbp - 0x10], rax
movzx eax, r8b
mov ecx, eax
and ecx, 0xfffffff0
and eax, 0xf
add rcx, rsi
movzx eax, byte [rax + rcx]
mov qword [rbp - 8], rax
movzx eax, dl
mov ecx, eax
and ecx, 0xfffffff0
and eax, 0xf
add rcx, rsi
movzx edx, byte [rax + rcx]
movzx eax, r9b
mov ecx, eax
and ecx, 0xfffffff0
and eax, 0xf
add rcx, rsi
movzx r9d, byte [rax + rcx]
movzx eax, r13b
mov ecx, eax
and ecx, 0xfffffff0
and eax, 0xf
add rcx, rsi
movzx eax, byte [rax + rcx]
mov qword [rbp + 0xe0], rax
movzx eax, r11b
mov ecx, eax
and ecx, 0xfffffff0
and eax, 0xf
add rcx, rsi
movzx eax, byte [rax + rcx]
mov qword [rbp + 0xd8], rax
movzx eax, r10b
mov ecx, eax
and ecx, 0xfffffff0
and eax, 0xf
add rcx, rsi
movzx eax, byte [rax + rcx]
mov qword [rbp], rax
movzx eax, r12b
mov ecx, eax
and ecx, 0xfffffff0
and eax, 0xf
add rcx, rsi
movzx eax, byte [rax + rcx]
mov qword [rbp + 0xf8], rax
movdqa xmmword [rbp + 0xb0], xmm7
movzx eax, byte [rbp + 0xbb]
mov ecx, eax
and ecx, 0xfffffff0
and eax, 0xf
add rcx, rsi
movzx eax, byte [rax + rcx]
mov qword [rbp + 0xe8], rax
movzx eax, byte [rbp + 0xbc]
mov ecx, eax
and ecx, 0xfffffff0
and eax, 0xf
add rcx, rsi
movzx r15d, byte [rax + rcx]
movzx eax, byte [rbp + 0xbd]
mov ecx, eax
and ecx, 0xfffffff0
and eax, 0xf
add rcx, rsi
movzx eax, byte [rax + rcx]
mov qword [rbp + 0x178], rax
movzx eax, byte [rbp + 0xbe]
mov ecx, eax
and ecx, 0xfffffff0
and eax, 0xf
add rcx, rsi
movzx eax, byte [rax + rcx]
mov qword [rbp + 0x170], rax
movzx eax, byte [rbp + 0xbf]
mov ecx, eax
and ecx, 0xfffffff0
and eax, 0xf
add rcx, rsi
movzx r14d, byte [rax + rcx]
lea r10, [0x18018c540]
movzx edi, byte [rdx + r10 + 0x200]
mov rax, qword [rbp + 0xd0]
xor dil, al
movzx ecx, byte [rax + r10 + 0x200]
movzx r11d, byte [rax + r10 + 0x300]
mov r12d, eax
xor cl, byte [rdx + r10 + 0x300]
mov byte [rbp + 0xd0], cl
movzx eax, byte [rbx + r10 + 0x200]
xor al, byte [r9 + r10 + 0x300]
mov byte [rbp + 0x187], al
xor r12b, dl
xor r11b, dl
movzx r13d, byte [r9 + r10 + 0x200]
xor r13b, bl
movzx r8d, byte [rbx + r10 + 0x300]
xor bl, r9b
xor r8b, r9b
mov rax, qword [rbp + 0xe0]
movzx esi, byte [rax + r10 + 0x200]
mov r9, qword [rbp + 0xf0]
xor sil, r9b
movzx edx, byte [r9 + r10 + 0x200]
movzx ecx, byte [r9 + r10 + 0x300]
xor dl, byte [rax + r10 + 0x300]
mov byte [rbp + 0xf0], dl
xor r9b, al
xor cl, al
mov rax, qword [rbp + 0xf8]
xor dil, byte [rax + r10 + 0x300]
xor r12b, byte [rax + r10 + 0x200]
xor r11b, al
xor al, r14b
mov byte [rbp + 0xf8], al
xor dil, r14b
mov byte [rbp + 0xe0], dil
xor r12b, byte [r14 + r10 + 0x300]
xor r11b, byte [r14 + r10 + 0x200]
mov rax, qword [rbp + 0xe8]
xor r13b, byte [rax + r10 + 0x300]
xor bl, byte [rax + r10 + 0x200]
xor r8b, al
xor al, r15b
mov byte [rbp + 0xe8], al
xor r13b, r15b
xor bl, byte [r15 + r10 + 0x300]
xor r8b, byte [r15 + r10 + 0x200]
mov rax, qword [rbp + 0xd8]
xor sil, byte [rax + r10 + 0x300]
xor r9b, byte [rax + r10 + 0x200]
xor cl, al
mov edx, eax
mov rax, qword [rbp + 0x178]
xor r9b, byte [rax + r10 + 0x300]
xor dl, al
mov byte [rbp + 0xd8], dl
xor cl, byte [rax + r10 + 0x200]
mov r14, qword [rbp - 0x10]
movzx eax, byte [r14 + r10 + 0x300]
mov rdi, qword [rbp - 8]
xor al, dil
mov rdx, qword [rbp]
xor al, dl
mov r15, qword [rbp + 0x170]
xor al, byte [r15 + r10 + 0x200]
xor sil, byte [rbp + 0x178]
movzx eax, al
mov dword [rbp + 0x178], eax
movzx eax, byte [rdi + r10 + 0x200]
mov r15, rdi
xor al, r14b
mov rdi, r14
movzx ecx, cl
mov dword [rbp + 0xc8], ecx
movzx r14d, byte [r14 + r10 + 0x200]
movzx ecx, r8b
mov dword [rbp + 0xcc], ecx
mov ecx, edi
xor r14b, byte [r15 + r10 + 0x300]
xor al, byte [rdx + r10 + 0x300]
xor cl, r15b
xor cl, byte [rdx + r10 + 0x200]
movzx r8d, r11b
mov rdi, qword [rbp + 0x170]
xor dl, dil
xor cl, byte [rdi + r10 + 0x300]
xor al, dil
movd xmm0, dword [rbp + 0x178]
movd xmm1, dword [rbp + 0xc8]
movd xmm2, dword [rbp + 0xcc]
movd xmm3, r8d
movzx ecx, cl
movd xmm4, ecx
movzx ecx, r9b
movd xmm5, ecx
movzx r8d, byte [rbp + 0xf8]
xor r8b, byte [rbp + 0xd0]
movzx r9d, byte [rbp + 0xe8]
xor r9b, byte [rbp + 0x187]
movzx r10d, byte [rbp + 0xd8]
xor r10b, byte [rbp + 0xf0]
punpcklbw xmm1, xmm0
xor dl, r14b
punpcklbw xmm3, xmm2
punpcklwd xmm3, xmm1
punpcklbw xmm5, xmm4
movzx ecx, bl
movd xmm1, ecx
movzx ecx, r12b
movd xmm0, ecx
punpcklbw xmm0, xmm1
punpcklwd xmm0, xmm5
punpckldq xmm0, xmm3
movzx eax, al
movd xmm1, eax
movzx eax, sil
movd xmm2, eax
punpcklbw xmm2, xmm1
movzx eax, r13b
movd xmm1, eax
movzx eax, byte [rbp + 0xe0]
movd xmm3, eax
punpcklbw xmm3, xmm1
punpcklwd xmm3, xmm2
movzx eax, dl
movd xmm1, eax
movzx eax, r10b
movd xmm2, eax
punpcklbw xmm2, xmm1
movzx eax, r9b
movd xmm4, eax
movzx eax, r8b
movd xmm1, eax
punpcklbw xmm1, xmm4
punpcklwd xmm1, xmm2
punpckldq xmm1, xmm3
punpcklqdq xmm1, xmm0
mov rdi, qword [rbp + 0x90]
mov eax, edi
and eax, 0xfffffff0
mov rcx, qword [rbp + 0xa8]
movdqu xmm0, xmmword [rcx + rax]
movdqa xmm2, xmm0
punpckhbw xmm2, xmm6
pshufd xmm3, xmm2, 0xe7
pshuflw xmm3, xmm3, 0x72
punpcklbw xmm0, xmm6
pshufd xmm4, xmm0, 0xe7
pshuflw xmm4, xmm4, 0x72
punpckldq xmm4, xmm3
pshufd xmm2, xmm2, 0xe8
pshuflw xmm2, xmm2, 0xd8
pshufd xmm0, xmm0, 0xe8
pshuflw xmm7, xmm0, 0xd8
punpckldq xmm7, xmm2
packuswb xmm7, xmm4
pxor xmm7, xmm1
movdqa xmmword [rbp + 0x150], xmm7
movzx r15d, byte [rbp + 0x150]
movzx ebx, byte [rbp + 0x151]
movzx ecx, byte [rbp + 0x152]
movzx r14d, byte [rbp + 0x153]
movzx r8d, byte [rbp + 0x154]
movzx edx, byte [rbp + 0x155]
movzx r9d, byte [rbp + 0x156]
movzx r13d, byte [rbp + 0x157]
movzx r11d, byte [rbp + 0x158]
movzx r10d, byte [rbp + 0x159]
movzx r12d, byte [rbp + 0x15a]
add rdi, 0x10
mov qword [rbp + 0x90], rdi
cmp qword [rbp + 8], rdi
jne 0x180003cb0
mov byte [rbp + 0x178], r11b
mov byte [rbp + 0x170], dl
pextrw r11d, xmm7, 5
shr r11d, 8
mov rsi, qword [rbp + 0x28]
jmp 0x180003900
mov rsi, qword [rbp + 0x100]
mov rbx, qword [rbp + 0x108]
sub rbx, rsi
mov r13d, ebx
mov r14, qword [rbp + 0x30]
mov rcx, qword [rbp + 0xa8]
call fcn.1800c38fc
pxor xmm0, xmm0
movdqu xmmword [r14], xmm0
mov qword [r14 + 0x10], 0
test ebx, ebx
je 0x1800042a5
cmp ebx, 0x1000
jb 0x180004278
lea rcx, [r13 + 0x27]
call fcn.1800c38b8
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
mov rsi, qword [rbp + 0x100]
jmp 0x180004283
mov rcx, r13
call fcn.1800c38b8
mov rcx, rax
mov rbx, qword [rbp + 0x160]
mov qword [rbx + 0x20], rcx
lea r14, [rcx + r13]
mov qword [rbx + 0x30], r14
mov rdx, rdi
mov r8, r13
call fcn.1801258c0
mov qword [rbx + 0x28], r14
mov r14, qword [rbp + 0x148]
mov rbx, qword [rbp + 0x168]
mov rcx, rdi
call fcn.1800c38fc
test rsi, rsi
je 0x18000430e
mov rdx, qword [rbp + 0x110]
sub rdx, rsi
cmp rdx, 0x1000
jb 0x1800042ef
mov rax, qword [rsi - 8]
add rsi, 0xfffffffffffffff8
sub rsi, rax
cmp rsi, 0x20
jae 0x180004474
add rdx, 0x27
mov rsi, rax
mov rcx, rsi
call fcn.1800c38fc
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x100], xmm0
mov qword [rbp + 0x110], 0
mov rcx, qword [rbp + 0x120]
test rcx, rcx
je 0x180004365
mov rdx, qword [rbp + 0x130]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x180004349
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x180004474
add rdx, 0x27
mov rcx, rax
call fcn.1800c38fc
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x120], xmm0
mov qword [rbp + 0x130], 0
mov rcx, qword [rbp + 0x160]
mov rax, qword [rcx + 0x28]
sub rax, qword [rcx + 0x20]
mov qword [rcx + 0x38], rax
mov rcx, qword [rbx]
test rcx, rcx
je 0x1800043c1
mov rdx, qword [rbx + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x1800043ac
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x180004474
add rdx, 0x27
mov rcx, rax
call fcn.1800c38fc
pxor xmm0, xmm0
movdqu xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov rcx, qword [r14]
test rcx, rcx
je 0x18000440b
mov rdx, qword [r14 + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x1800043f5
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x180004474
add rdx, 0x27
mov rcx, rax
call fcn.1800c38fc
pxor xmm0, xmm0
movdqu xmmword [r14], xmm0
mov qword [r14 + 0x10], 0
mov rax, qword [rbp + 0x160]
movaps xmm6, xmmword [rbp + 0x1a0]
movaps xmm7, xmmword [rbp + 0x1b0]
movaps xmm8, xmmword [rbp + 0x1c0]
movaps xmm9, xmmword [rbp + 0x1d0]
movaps xmm10, xmmword [rbp + 0x1e0]
movaps xmm11, xmmword [rbp + 0x1f0]
movaps xmm12, xmmword [rbp + 0x200]
movaps xmm13, xmmword [rbp + 0x210]
movaps xmm14, xmmword [rbp + 0x220]
movaps xmm15, xmmword [rbp + 0x230]
add rsp, 0x2c8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.180139754
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x60], xmm0
movdqa xmm0, xmmword [reloc.WS2_32.dll_bind]
movdqa xmmword [rbp + 0x70], xmm0
mov word [rbp + 0x60], 0x3631
mov qword [rsp + 0x20], Ordinal_41
lea r9, str.Plaintext_length_must_be_divisible_by
lea rcx, [rbp + 0x60]
mov edx, Ordinal_41
xor r8d, r8d
call section..text
movaps xmm0, xmmword [rbp + 0x60]
movdqa xmm1, xmmword [rbp + 0x70]
movdqa xmmword [rbp + 0x50], xmm1
movaps xmmword [rbp + 0x40], xmm0
movaps xmm0, xmmword [0x18015e0d0]
movaps xmmword [rbp + 0x70], xmm0
mov byte [rbp + 0x60], 0
cmp qword [rbp + 0x58], 0x10
jb 0x1800044f3
mov rax, qword [rbp + 0x40]
jmp 0x1800044f7
call fcn.1800034e0
call fcn.1800034e0
call fcn.1800034e0
lea rax, [rbp + 0x40]
lea rcx, [0x18018d540]
mov qword [rbp - 0x28], rcx
lea rdx, [rbp - 0x20]
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x38], rax
mov byte [rbp - 0x30], 1
lea rcx, [rbp - 0x38]
call fcn.180125538
lea rax, [0x18018d540]
mov qword [rbp - 0x28], rax
lea rdx, [0x1801cbbc0]
lea rcx, [rbp - 0x28]
call fcn.1801244b4
int3