Function at 0x1801e1ac0
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
sub rsp, 0x58
mov rbp, qword [rsp + 0xb8]
mov r10, r9
mov rdi, r8
mov r14, rdx
mov rsi, rcx
mov r12d, 1
test rbp, rbp
je 0x1801e1b05
mov rax, qword [rcx + 0x178]
mov qword [rbp], rax
cmp dword [rcx + 0x74], 0
jge 0x1801e1b1a
xor eax, eax
add rsp, 0x58
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rcx, qword [r9]
mov rax, qword [rsp + 0xb0]
test rcx, rcx
je 0x1801e1b4e
test rax, rax
je 0x1801e1b35
cmp qword [rax], 0
jne 0x1801e1b4e
mov edx, 0xffffffec
mov rcx, rsi
add rsp, 0x58
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp 0x1801e72b0
xor edx, edx
mov qword [rsp + 0x50], r13
test rcx, rcx
mov qword [rsp + 0x48], r15
cmovne rdx, rax
cmp dword [rsi + 0x48], 0
mov qword [rsp + 0x38], rdx
jne 0x1801e1b78
mov rax, qword [r14]
mov qword [rsi + 0x20], rax
mov rax, qword [r8]
jmp 0x1801e1b82
mov r12d, 2
lea rax, [rsi + 0x40]
mov qword [rsi + 0x18], rax
lea r11, [0x180000000]
mov r13d, 0x40
jmp 0x1801e1bb0
mov r14, qword [rsp + 0x98]
mov rbp, qword [rsp + 0xb8]
lea r15, [rsi + 0x2a8]
nop word [rax + rax]
cmp r12d, 1
je 0x1801e1c63
cmp r12d, 2
jne 0x1801e2d9b
cmp qword [rsi + 0x78], 0
je 0x1801e1c10
mov r8, rdx
mov dword [rsp + 0x20], 1
mov rdx, r10
mov r9, rbp
mov rcx, rsi
call fcn.1801e7320
test eax, eax
js 0x1801e2d49
mov rdx, qword [rsp + 0x38]
lea r11, [0x180000000]
mov r10, qword [rsp + 0xa8]
mov ecx, dword [rsi + 0x48]
test ecx, ecx
je 0x1801e2d6d
cmp qword [rsi + 0x20], 0
jne 0x1801e1c39
mov dword [rsi + 0x48], 0
mov rax, qword [r14]
mov qword [rsi + 0x20], rax
mov rax, qword [rdi]
mov qword [rsi + 0x18], rax
jmp 0x1801e1c5d
cmp qword [r14], 0
je 0x1801e2d4c
mov rax, qword [rdi]
movzx eax, byte [rax]
mov byte [rcx + rsi + 0x40], al
inc dword [rsi + 0x48]
mov eax, dword [rsi + 0x48]
mov qword [rsi + 0x20], rax
inc qword [rdi]
dec qword [r14]
mov r12d, 1
movsxd rax, dword [rsi]
cmp eax, 0x1a
ja case.default.0x1801e1c7a
mov ecx, dword [r11 + rax*4 + 0x1e2e10]
add rcx, r11
jmp rcx
lea rcx, [rsi + 8]
call fcn.1801e7450
test eax, eax
jne 0x1801e1ca6
mov rdx, qword [rsp + 0x38]
lea r12d, [rax + 2]
mov r10, qword [rsp + 0xa8]
lea r11, [0x180000000]
jmp case.default.0x1801e1c7a
mov r8d, dword [rsi + 0x298]
mov eax, r8d
and eax, 0xffffffdf
mov dword [rsi + 0x298], eax
mov ecx, dword [rsi + 0x10]
mov rdx, qword [rsi + 8]
mov rax, rdx
shr rax, cl
and eax, dword [reloc.WS2_32.dll_accept]
lea ecx, [rcx + 1]
mov dword [rsi + 0x10], ecx
jne 0x1801e1ce3
mov dword [rsi + 0x29c], reloc.WS2_32.dll_recv
jmp 0x1801e1d74
mov rax, rdx
shr rax, cl
lea ecx, [rcx + 3]
and eax, dword [reloc.WS2_32.dll_getsockopt]
mov dword [rsi + 0x10], ecx
je 0x1801e1d02
add eax, 0x11
mov dword [rsi + 0x29c], eax
jmp 0x1801e1d74
mov rax, rdx
shr rax, cl
add ecx, 3
and eax, dword [reloc.WS2_32.dll_getsockopt]
mov dword [rsi + 0x10], ecx
cmp eax, 1
jne 0x1801e1d5b
test r8b, 0x20
je 0x1801e1d33
shr rdx, cl
lea eax, [rcx + 1]
and edx, dword [reloc.WS2_32.dll_accept]
mov dword [rsi + 0x10], eax
cmp edx, 1
jne 0x1801e1d52
mov rdx, qword [rsp + 0x38]
lea r11, [0x180000000]
mov r10, qword [rsp + 0xa8]
mov r12d, 0xfffffff3
jmp case.default.0x1801e1c7a
or dword [rsi + 0x298], 0x20
jmp 0x1801e1d74
test eax, eax
je 0x1801e1d6a
add eax, 8
mov dword [rsi + 0x29c], eax
jmp 0x1801e1d74
mov dword [rsi + 0x29c], reloc.WS2_32.dll_recvfrom
test byte [rsi + 0x298], 0x20
je 0x1801e1da2
mov dword [rsi], 1
mov rdx, qword [rsp + 0x38]
lea r11, [0x180000000]
mov r10, qword [rsp + 0xa8]
mov r12d, 1
jmp case.default.0x1801e1c7a
mov dword [rsi], 2
jmp 0x1801e1d83
mov r8d, dword [rsi + 0x10]
mov eax, r13d
sub eax, r8d
cmp eax, 6
jae 0x1801e1dff
mov rdx, qword [rsi + 0x20]
nop dword [rax]
test rdx, rdx
je 0x1801e1e75
shr qword [rsi + 8], 8
mov rcx, qword [rsi + 0x18]
movzx eax, byte [rcx]
add dword [rsi + 0x10], 0xfffffff8
mov r8d, dword [rsi + 0x10]
shl rax, 0x38
or qword [rsi + 8], rax
lea rax, [rcx + 1]
mov qword [rsi + 0x18], rax
dec rdx
mov eax, r13d
mov qword [rsi + 0x20], rdx
sub eax, r8d
cmp eax, 6
jb 0x1801e1dc0
mov rax, qword [rsi + 8]
mov ecx, r8d
shr rax, cl
and eax, dword [0x18023dac8]
mov dword [rsi + 0x29c], eax
add dword [rsi + 0x10], 6
mov eax, dword [rsi + 0x29c]
sub eax, 0xa
cmp eax, 0x14
ja 0x1801e1e85
mov dword [rsi], 2
mov ecx, dword [rsi + 0x29c]
mov eax, 1
shl eax, cl
mov edx, 0x3030
mov rcx, qword [rsi + 0x38]
sub eax, 0x10
mov dword [rsi + 0x50], eax
call qword [rsi + 0x28]
mov qword [rsi + 0xf0], rax
test rax, rax
jne 0x1801e1e95
mov rdx, qword [rsp + 0x38]
lea r12d, [rax - 0x1e]
mov r10, qword [rsp + 0xa8]
lea r11, [0x180000000]
jmp case.default.0x1801e1c7a
mov rdx, qword [rsp + 0x38]
mov r12d, 2
jmp case.default.0x1801e1c7a
mov rdx, qword [rsp + 0x38]
mov r12d, 0xfffffff3
jmp case.default.0x1801e1c7a
add rax, 0x1da0
mov dword [rsi], 3
mov qword [rsi + 0xf8], rax
mov rcx, rsi
call fcn.1801e8050
mov dword [rsi], 4
lea rdx, [rsi + 8]
mov rcx, rsi
call fcn.1801e3cb0
mov rdx, qword [rsp + 0x38]
mov r12d, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x180000000]
cmp eax, 1
jne case.default.0x1801e1c7a
test byte [rsi + 0x298], 6
lea r11, [0x180000000]
je 0x1801e1f2b
mov ecx, dword [rsi + 0x10]
mov r8d, ecx
neg r8d
and r8d, 7
je 0x1801e1f2b
mov eax, dword [r11 + r8*4 + 0x23dab0]
mov rdx, qword [rsi + 8]
shr rdx, cl
and eax, edx
lea eax, [rcx + r8]
mov dword [rsi + 0x10], eax
je 0x1801e1f2b
mov rdx, qword [rsp + 0x38]
mov r12d, 0xfffffff2
jmp case.default.0x1801e1c7a
test byte [rsi + 0x298], 4
je 0x1801e1f4c
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
mov dword [rsi], recv
jmp case.default.0x1801e1c7a
cmp dword [rsi + 0x108], 0
jne 0x1801e1f6d
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
mov dword [rsi], recv
jmp case.default.0x1801e1c7a
mov rcx, rsi
call fcn.1801e1970
test byte [rsi + 0x298], 2
je case.0x1801e1c7a.17
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
mov dword [rsi], recv
jmp case.default.0x1801e1c7a
mov qword [rsi], reloc.WS2_32.dll_select
lea rax, [rsi + 0x3b8]
mov qword [rsi + 0x390], rax
mov qword [rsi + 0x2f0], 0
mov qword [rsi + 0x2e8], 0
movsxd rax, dword [rsi + 4]
cmp eax, 3
jl 0x1801e1fe2
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
mov dword [rsi], 5
jmp case.default.0x1801e1c7a
add rax, 0x47
lea rdx, [rsi + 8]
mov rcx, rsi
lea r8, [rsi + rax*4]
call fcn.1801e4300
mov rdx, qword [rsp + 0x38]
mov r12d, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x180000000]
cmp eax, 1
jne case.default.0x1801e1c7a
movsxd rax, dword [rsi + 4]
inc dword [rsi + rax*4 + 0x11c]
movsxd rcx, dword [rsi + 4]
cmp dword [rsi + rcx*4 + 0x11c], 2
jae 0x1801e2041
lea eax, [rcx + 1]
mov dword [rsi + 4], eax
lea r11, [0x180000000]
jmp case.default.0x1801e1c7a
mov dword [rsi], reloc.WS2_32.dll_send
movsxd rdx, dword [rsi + 4]
xor r9d, r9d
imul eax, edx, 0x278
mov qword [rsp + 0x20], rsi
mov ecx, dword [rsi + rdx*4 + 0x11c]
add ecx, 2
movsxd rdx, eax
mov rax, qword [rsi + 0xf0]
lea r8, [rax + rdx*4]
mov edx, ecx
call fcn.1801e5150
mov rdx, qword [rsp + 0x38]
mov r12d, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x180000000]
cmp eax, 1
jne case.default.0x1801e1c7a
mov dword [rsi], reloc.WS2_32.dll_sendto
imul eax, dword [rsi + 4], 0x18c
mov edx, 0x1a
xor r9d, r9d
mov qword [rsp + 0x20], rsi
movsxd rcx, eax
mov rax, qword [rsi + 0xf8]
lea r8, [rax + rcx*4]
mov ecx, edx
call fcn.1801e5150
mov rdx, qword [rsp + 0x38]
mov r12d, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x180000000]
cmp eax, 1
jne case.default.0x1801e1c7a
mov dword [rsi], reloc.WS2_32.dll_setsockopt
lea r11, [0x180000000]
movsxd rdx, dword [rsi + 4]
imul eax, edx, 0x18c
cmp dword [rsi + 0x294], 0
lea rdi, [rsi + rdx*4]
movsxd rcx, eax
mov rax, qword [rsi + 0xf8]
lea r10, [rax + rcx*4]
jne 0x1801e21f1
mov r8d, dword [rsi + 0x10]
mov eax, r13d
sub eax, r8d
cmp eax, 0xf
jae 0x1801e216f
mov rdx, qword [rsi + 0x20]
test rdx, rdx
je 0x1801e21cb
shr qword [rsi + 8], 8
mov rcx, qword [rsi + 0x18]
movzx eax, byte [rcx]
add dword [rsi + 0x10], 0xfffffff8
mov r8d, dword [rsi + 0x10]
shl rax, 0x38
or qword [rsi + 8], rax
lea rax, [rcx + 1]
mov qword [rsi + 0x18], rax
dec rdx
mov eax, r13d
mov qword [rsi + 0x20], rdx
sub eax, r8d
cmp eax, 0xf
jb 0x1801e2130
mov r9, qword [rsi + 8]
mov ecx, r8d
shr r9, cl
and r9d, dword [0x18023daec]
movzx ecx, r9b
movzx eax, byte [r10 + rcx*4]
lea r10, [r10 + rcx*4]
cmp al, 8
jbe 0x1801e21bb
sub eax, 8
shr r9d, 8
add r8d, 8
mov dword [rsi + 0x10], r8d
mov edx, dword [r11 + rax*4 + 0x23dab0]
movzx eax, word [r10 + 2]
and edx, r9d
add edx, eax
movzx eax, byte [r10 + rdx*4]
lea r10, [r10 + rdx*4]
movzx eax, al
add eax, r8d
mov dword [rsi + 0x10], eax
movzx r10d, word [r10 + 2]
jmp 0x1801e21f8
lea r8, [rsp + 0x90]
mov rcx, r10
lea rdx, [rsi + 8]
call fcn.1801e63c0
test eax, eax
je 0x1801e22e0
mov r10d, dword [rsp + 0x90]
jmp 0x1801e2200
mov r10d, dword [rsi + 0x10c]
mov dword [rsp + 0x90], r10d
mov r8d, dword [rsi + 0x10]
lea rcx, [0x180000000]
mov eax, r10d
movzx r9d, byte [rcx + rax*4 + 0x23f462]
movzx r11d, word [rcx + rax*4 + 0x23f460]
mov eax, r13d
sub eax, r8d
cmp eax, r9d
jae 0x1801e226f
mov rdx, qword [rsi + 0x20]
nop
test rdx, rdx
je 0x1801e22cf
shr qword [rsi + 8], 8
mov rcx, qword [rsi + 0x18]
movzx eax, byte [rcx]
add dword [rsi + 0x10], 0xfffffff8
mov r8d, dword [rsi + 0x10]
shl rax, 0x38
or qword [rsi + 8], rax
lea rax, [rcx + 1]
mov qword [rsi + 0x18], rax
dec rdx
mov eax, r13d
mov qword [rsi + 0x20], rdx
sub eax, r8d
cmp eax, r9d
jb 0x1801e2230
mov rax, qword [rsi + 8]
mov ecx, r8d
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
shr rax, cl
lea rcx, [0x180000000]
mov ecx, dword [rcx + r9*4 + 0x23dab0]
and ecx, eax
lea eax, [r9 + r8]
mov dword [rsi + 0x10], eax
lea eax, [rcx + r11]
mov dword [rdi + 0x110], eax
lea r11, [0x180000000]
inc dword [rsi + 4]
mov rdi, qword [rsp + 0xa0]
mov dword [rsi + 0x294], 0
mov dword [rsi], reloc.WS2_32.dll_select
jmp case.default.0x1801e1c7a
mov dword [rsi + 0x10c], r10d
mov dword [rsi + 0x294], 1
mov rdi, qword [rsp + 0xa0]
lea r11, [0x180000000]
mov rdx, qword [rsp + 0x38]
mov r12d, 2
mov r10, qword [rsp + 0xa8]
jmp case.default.0x1801e1c7a
mov r9, rsi
mov r8, rbp
mov rcx, r10
call fcn.1801e2f30
mov rdx, qword [rsp + 0x38]
mov r12d, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x180000000]
cmp eax, 1
jne case.default.0x1801e1c7a
mov dword [rsi], recv
lea r11, [0x180000000]
jmp case.default.0x1801e1c7a
cmp dword [rsi + 0x108], 0
jle 0x1801e23b8
mov r8d, dword [rsi + 0x10]
mov eax, r13d
sub eax, r8d
cmp eax, 8
jae 0x1801e23a2
mov rdx, qword [rsi + 0x20]
test rdx, rdx
je 0x1801e1e75
shr qword [rsi + 8], 8
mov rcx, qword [rsi + 0x18]
movzx eax, byte [rcx]
add dword [rsi + 0x10], 0xfffffff8
mov r8d, dword [rsi + 0x10]
shl rax, 0x38
or qword [rsi + 8], rax
lea rax, [rcx + 1]
mov qword [rsi + 0x18], rax
dec rdx
mov eax, r13d
mov qword [rsi + 0x20], rdx
sub eax, r8d
cmp eax, 8
jb 0x1801e2363
lea eax, [r8 + 8]
mov dword [rsi + 0x10], eax
dec dword [rsi + 0x108]
cmp dword [rsi + 0x108], 0
jg 0x1801e2350
mov rdx, qword [rsp + 0x38]
mov dword [rsi], recv
jmp case.default.0x1801e1c7a
mov r8d, dword [rsi + 0x10]
mov eax, r13d
sub eax, r8d
cmp eax, 6
jae 0x1801e241f
mov rdx, qword [rsi + 0x20]
nop dword [rax + rax]
test rdx, rdx
je 0x1801e1e75
shr qword [rsi + 8], 8
mov rcx, qword [rsi + 0x18]
movzx eax, byte [rcx]
add dword [rsi + 0x10], 0xfffffff8
mov r8d, dword [rsi + 0x10]
shl rax, 0x38
or qword [rsi + 8], rax
lea rax, [rcx + 1]
mov qword [rsi + 0x18], rax
dec rdx
mov eax, r13d
mov qword [rsi + 0x20], rdx
sub eax, r8d
cmp eax, 6
jb 0x1801e23e0
mov rdx, qword [rsi + 8]
lea eax, [r8 + 6]
mov ecx, r8d
shr rdx, cl
and edx, dword [0x18023dac8]
mov ecx, edx
mov dword [rsi + 0x10], eax
and ecx, dword [reloc.WS2_32.dll_closesocket]
shr edx, 2
shl edx, cl
mov dword [rsi + 0x140], ecx
mov rcx, qword [rsi + 0x38]
mov dword [rsi + 0x144], edx
mov edx, dword [rsi + 0x11c]
call qword [rsi + 0x28]
mov qword [rsi + 0x2b0], rax
test rax, rax
jne 0x1801e2485
mov rdx, qword [rsp + 0x38]
lea r12d, [rax - 0x15]
mov r10, qword [rsp + 0xa8]
lea r11, [0x180000000]
jmp case.default.0x1801e1c7a
mov qword [rsi], 6
lea r11, [0x180000000]
movsxd r9, dword [rsi + 4]
cmp r9d, dword [rsi + 0x11c]
jge 0x1801e2537
mov r10, r9
nop word [rax + rax]
mov r8d, dword [rsi + 0x10]
mov eax, r13d
sub eax, r8d
cmp eax, 2
jae 0x1801e2502
mov rdx, qword [rsi + 0x20]
test rdx, rdx
je 0x1801e267f
shr qword [rsi + 8], 8
mov rcx, qword [rsi + 0x18]
movzx eax, byte [rcx]
add dword [rsi + 0x10], 0xfffffff8
mov r8d, dword [rsi + 0x10]
shl rax, 0x38
or qword [rsi + 8], rax
lea rax, [rcx + 1]
mov qword [rsi + 0x18], rax
dec rdx
mov eax, r13d
mov qword [rsi + 0x20], rdx
sub eax, r8d
cmp eax, 2
jb 0x1801e24c3
mov rdx, qword [rsi + 8]
lea eax, [r8 + 2]
mov ecx, r8d
inc r9d
shr rdx, cl
and edx, dword [reloc.WS2_32.dll_closesocket]
mov dword [rsi + 0x10], eax
mov rax, qword [rsi + 0x2b0]
mov byte [r10 + rax], dl
inc r10
cmp r9d, dword [rsi + 0x11c]
jl 0x1801e24b0
mov dword [rsi], socket
mov ecx, dword [rsi + 0x11c]
lea rdx, [rsi + 0x2a4]
shl ecx, 6
mov r9, rsi
mov r8, r15
call fcn.1801e3310
mov rdx, qword [rsp + 0x38]
mov r12d, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x180000000]
cmp eax, 1
jne case.default.0x1801e1c7a
xorps xmm0, xmm0
xor ebp, ebp
movups xmmword [rsi + 0x2c8], xmm0
movups xmmword [rsi + 0x2d8], xmm0
cmp dword [rsi + 0x11c], ebp
jbe 0x1801e2639
nop word [rax + rax]
mov r14, qword [r15]
mov r11, rbp
shl r11, 6
xor edi, edi
xor r10d, r10d
movzx r9d, byte [r14 + r11]
nop dword [rax]
nop dword [rax + rax]
lea rdx, [r14 + r10]
add r10, 4
add rdx, r11
movzx r8d, byte [rdx + 3]
movzx ecx, byte [rdx + 2]
xor r8, r9
movzx eax, byte [rdx]
xor rcx, r9
or r8, rcx
movzx ecx, byte [rdx + 1]
xor rcx, r9
or r8, rcx
mov rcx, r9
xor rcx, rax
or r8, rcx
or rdi, r8
cmp r10, r13
jb 0x1801e25c0
test rdi, rdi
jne 0x1801e261f
mov rax, rbp
mov ecx, ebp
shr rax, 5
and ecx, 0x1f
lea rdx, [rsi + rax*4]
mov eax, dword [rdx + 0x2c8]
bts eax, ecx
mov dword [rdx + 0x2c8], eax
mov eax, dword [rsi + 0x11c]
inc rbp
cmp rbp, rax
jb 0x1801e25a0
mov rdi, qword [rsp + 0xa0]
mov dword [rsi], reloc.WS2_32.dll_socket
mov r10d, dword [rsi + 0x140]
mov eax, 0x18
mov r8d, dword [rsi + 0x144]
lea ecx, [r10 + 1]
shl eax, cl
lea r14d, [r8 + 0x10]
add r14d, eax
test byte [rsi + 0x298], 0x20
mov ebp, r14d
je 0x1801e2702
cmp r8d, 0x7ffffffc
jb 0x1801e269b
mov ebp, 0x8000000c
jmp 0x1801e26f0
mov rdx, qword [rsp + 0x38]
mov r12d, 2
mov r10, qword [rsp + 0xa8]
mov dword [rsi + 4], r9d
jmp case.default.0x1801e1c7a
mov ecx, r10d
mov edx, 0x7ffffffc
sub edx, r8d
mov r9d, 1
shr edx, cl
xor eax, eax
shl r9d, cl
add edx, 4
mov ecx, edx
dec r9d
shr ecx, 1
je 0x1801e26c6
nop
inc eax
shr ecx, 1
jne 0x1801e26c0
lea ecx, [rax - 1]
shr edx, cl
lea eax, [rax*2 - 4]
and edx, 1
or edx, eax
jne 0x1801e26df
lea ebp, [r8 + 0x10]
jmp 0x1801e26f0
lea eax, [rdx - 1]
mov ecx, r10d
shl eax, cl
lea ebp, [r8 + 0x11]
or eax, r9d
add ebp, eax
lea ecx, [r10 + 1]
mov eax, 0x3e
shl eax, cl
lea r14d, [r8 + 0x10]
add r14d, eax
mov ecx, dword [rsi + 0x124]
lea r8, [rsi + 0x150]
shl ecx, 2
lea rdx, [rsi + 0x148]
mov r9, rsi
call fcn.1801e3310
mov rdx, qword [rsp + 0x38]
mov r12d, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x180000000]
cmp eax, 1
jne 0x1801e1ba0
mov eax, dword [rsi + 0x2a4]
lea rdx, [rsi + 0xa8]
mov r9d, 0x100
mov dword [rsp + 0x20], eax
mov r8d, r9d
mov rcx, rsi
call fcn.1801e7d20
mov ecx, dword [rsi + 0x120]
lea rdx, [rsi + 0xc0]
mov r9d, 0x2c0
mov dword [rsp + 0x20], ecx
mov edi, eax
mov r8d, r9d
mov rcx, rsi
and edi, 1
call fcn.1801e7d20
mov ecx, dword [rsi + 0x148]
lea rdx, [rsi + 0xd8]
mov dword [rsp + 0x20], ecx
mov r9d, ebp
mov rcx, rsi
mov r8d, r14d
and edi, eax
call fcn.1801e7d20
test edi, eax
je 0x1801e2dfa
mov qword [rsi], 0x18
mov ecx, dword [rsi + 4]
test ecx, ecx
je 0x1801e27dd
sub ecx, 1
je 0x1801e27d6
cmp ecx, 1
jne 0x1801e2e04
mov edi, 0xd8
jmp 0x1801e27e2
mov edi, 0xc0
jmp 0x1801e27e2
mov edi, 0xa8
cmp dword [rsi + 0x2e8], 1
je 0x1801e280f
mov rax, qword [rdi + rsi + 8]
xor ecx, ecx
mov qword [rsi + 0x9f0], rax
mov dword [rsi + 0x9ec], 0
mov dword [rsi + 0x2e8], 1
jmp 0x1801e2815
mov ecx, dword [rsi + 0x9ec]
movzx eax, word [rdi + rsi + 0x14]
cmp ecx, eax
jge 0x1801e2894
mov r8, qword [rsi + 0x9f0]
nop word [rax + rax]
movzx edx, word [rdi + rsi + 0x12]
lea r9, [rsp + 0x30]
movzx ecx, word [rdi + rsi + 0x10]
mov qword [rsp + 0x20], rsi
call fcn.1801e5150
mov r12d, eax
cmp eax, 1
jne 0x1801e29b9
mov rcx, qword [rdi + rsi]
mov rax, qword [rsi + 0x9f0]
movsxd rdx, dword [rsi + 0x9ec]
mov qword [rcx + rdx*8], rax
inc dword [rsi + 0x9ec]
mov eax, dword [rsp + 0x30]
shl rax, 2
add qword [rsi + 0x9f0], rax
movzx eax, word [rdi + rsi + 0x14]
mov r8, qword [rsi + 0x9f0]
cmp dword [rsi + 0x9ec], eax
jl 0x1801e2830
mov rdi, qword [rsp + 0xa0]
lea r15, [rsi + 0x2a8]
mov r14, qword [rsp + 0x98]
lea r11, [0x180000000]
mov rbp, qword [rsp + 0xb8]
mov r12d, 1
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
mov dword [rsi + 0x2e8], 0
inc dword [rsi + 4]
cmp dword [rsi + 4], 3
jl case.default.0x1801e1c7a
mov dword [rsi], 0x19
lea r15, [rsi + 0x2a8]
mov ecx, dword [rsi + 0x12c]
mov r8d, ecx
mov eax, ecx
mov r9d, ecx
shr rax, 5
and ecx, 0x1f
shl r8d, 6
add r8, qword [r15]
mov qword [rsi + 0x98], r8
mov edx, dword [rsi + rax*4 + 0x2c8]
mov rax, qword [rsi + 0xa8]
shr rdx, cl
and edx, 1
mov dword [rsi + 0x100], edx
movzx ecx, byte [r8]
mov rcx, qword [rax + rcx*8]
mov rax, qword [rsi + 0x2b0]
mov qword [rsi + 0x158], rcx
movzx ecx, byte [rax + r9]
lea rax, [0x18023f4d0]
and ecx, 3
shl rcx, 9
add rcx, rax
mov rax, qword [rsi + 0x150]
mov qword [rsi + 0xa0], rax
mov rax, qword [rsi + 0xc0]
mov qword [rsi + 0x90], rcx
mov rcx, qword [rax]
mov qword [rsi + 0x88], rcx
mov rcx, rsi
call fcn.1801e2e80
test eax, eax
jne 0x1801e29f1
mov r14, qword [rsp + 0x98]
lea r12d, [rax - 0x1b]
mov rbp, qword [rsp + 0xb8]
lea r11, [0x180000000]
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
jmp case.default.0x1801e1c7a
mov rdi, qword [rsp + 0xa0]
lea r15, [rsi + 0x2a8]
mov r14, qword [rsp + 0x98]
lea r11, [0x180000000]
mov rbp, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
jmp case.default.0x1801e1c7a
mov r15d, dword [rsi + 0x140]
xor edi, edi
mov ebp, dword [rsi + 0x144]
mov ecx, r15d
movzx r14d, word [rsi + 0xea]
mov r11d, 1
shl r11d, cl
xor ecx, ecx
lea r9d, [rdi + 1]
lea r8d, [rdi + 0x10]
test ebp, ebp
je 0x1801e2a4b
nop dword [rax]
nop word [rax + rax]
mov eax, r8d
inc ecx
inc r8d
mov byte [rsi + rax + 0x2e8], dil
mov dword [rsi + rax*4 + 0x508], ecx
cmp ecx, ebp
jb 0x1801e2a30
cmp r8d, r14d
jae 0x1801e2a9b
mov ecx, r9d
lea eax, [rdi + 2]
shl eax, cl
lea r10d, [rbp + 1]
sub eax, 4
mov ecx, r15d
shl eax, cl
xor edx, edx
add r10d, eax
test r11d, r11d
je 0x1801e2a90
nop
mov ecx, r8d
lea eax, [r10 + rdx]
inc r8d
inc edx
mov byte [rsi + rcx + 0x2e8], r9b
mov dword [rsi + rcx*4 + 0x508], eax
cmp edx, r11d
jb 0x1801e2a70
add r9d, edi
xor edi, 1
cmp r8d, r14d
jb 0x1801e2a50
mov rdi, qword [rsp + 0xa0]
mov eax, 7
mov dword [rsi], eax
mov rcx, rsi
call fcn.1801e45d0
mov r14, qword [rsp + 0x98]
mov r12d, eax
mov rbp, qword [rsp + 0xb8]
lea r15, [rsi + 0x2a8]
mov rdx, qword [rsp + 0x38]
lea r11, [0x180000000]
mov r10, qword [rsp + 0xa8]
cmp eax, 2
jne case.default.0x1801e1c7a
mov rcx, rsi
call fcn.1801e6480
mov rdx, qword [rsp + 0x38]
lea r11, [0x180000000]
mov r10, qword [rsp + 0xa8]
lea r15, [rsi + 0x2a8]
mov r12d, eax
jmp case.default.0x1801e1c7a
mov r8, rdx
mov dword [rsp + 0x20], 0
mov rdx, r10
mov r9, rbp
mov rcx, rsi
call fcn.1801e7320
mov rdx, qword [rsp + 0x38]
mov r12d, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x180000000]
cmp eax, 1
jne case.default.0x1801e1c7a
mov rcx, rsi
call fcn.1801e72e0
mov ecx, dword [rsi + 0x29c]
mov eax, 1
shl eax, cl
cmp dword [rsi + 0x58], eax
jne 0x1801e2b6d
mov eax, dword [rsi + 0x50]
mov dword [rsi + 0x54], eax
mov eax, dword [rsi]
cmp eax, 0xf
jne 0x1801e2ba3
cmp dword [rsi + 0x108], 0
lea r11, [0x180000000]
mov rdx, qword [rsp + 0x38]
mov eax, recv
mov r10, qword [rsp + 0xa8]
mov ecx, 7
cmovne eax, ecx
mov dword [rsi], eax
jmp case.default.0x1801e1c7a
cmp eax, 0x10
jne 0x1801e2bc8
mov rdx, qword [rsp + 0x38]
lea r11, [0x180000000]
mov r10, qword [rsp + 0xa8]
mov eax, 0xa
mov dword [rsi], eax
jmp case.default.0x1801e1c7a
cmp dword [rsi + 4], 0
jne 0x1801e2bfd
cmp dword [rsi + 0x108], 0
lea r11, [0x180000000]
mov rdx, qword [rsp + 0x38]
mov eax, recv
mov r10, qword [rsp + 0xa8]
mov ecx, 9
cmovne eax, ecx
mov dword [rsi], eax
jmp case.default.0x1801e1c7a
mov rdx, qword [rsp + 0x38]
lea r11, [0x180000000]
mov r10, qword [rsp + 0xa8]
mov eax, 8
mov dword [rsi], eax
jmp case.default.0x1801e1c7a
cmp dword [rsi + 0x108], 0
jge 0x1801e2c31
mov r12d, 0xfffffff6
jmp case.default.0x1801e1c7a
mov rcx, rsi
call fcn.1801e7e70
test byte [rsi + 0x298], 1
jne 0x1801e2c61
mov rdx, qword [rsp + 0x38]
lea r11, [0x180000000]
mov r10, qword [rsp + 0xa8]
mov dword [rsi], 3
jmp case.default.0x1801e1c7a
mov r9d, dword [rsi + 0x10]
mov r8d, r9d
neg r8d
and r8d, 7
je 0x1801e2cae
mov rdx, qword [rsi + 8]
lea r11, [0x180000000]
mov eax, dword [r11 + r8*4 + 0x23dab0]
mov ecx, r9d
shr rdx, cl
lea r9d, [r8 + r9]
mov dword [rsi + 0x10], r9d
and eax, edx
je 0x1801e2cae
mov rdx, qword [rsp + 0x38]
mov r12d, 0xfffffff1
mov r10, qword [rsp + 0xa8]
jmp case.default.0x1801e1c7a
cmp dword [rsi + 0x48], 0
jne 0x1801e2cfb
mov r8, qword [rsi + 0x20]
mov eax, r13d
sub eax, r9d
shr eax, 3
mov ecx, eax
sub qword [rsi + 0x18], rcx
add r8, rcx
mov qword [rsi + 0x20], r8
lea edx, [rax*8]
cmp edx, r13d
jne 0x1801e2ce4
mov qword [rsi + 8], 0
jmp 0x1801e2cea
mov ecx, edx
shl qword [rsi + 8], cl
lea eax, [rdx + r9]
mov dword [rsi + 0x10], eax
mov qword [r14], r8
mov rax, qword [rsi + 0x18]
mov qword [rdi], rax
mov dword [rsi], 0x1a
cmp qword [rsi + 0x78], 0
je 0x1801e2d4c
mov r8, qword [rsp + 0x38]
mov r9, rbp
mov rdx, qword [rsp + 0xa8]
mov rcx, rsi
mov dword [rsp + 0x20], 1
call fcn.1801e7320
mov r12d, eax
cmp eax, 1
je 0x1801e2d4c
mov rdx, qword [rsp + 0x38]
lea r11, [0x180000000]
mov r10, qword [rsp + 0xa8]
jmp case.default.0x1801e1c7a
mov r12d, eax
mov edx, r12d
mov rcx, rsi
mov r13, qword [rsp + 0x50]
mov r15, qword [rsp + 0x48]
add rsp, 0x58
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp 0x1801e72b0
mov rax, qword [rsi + 0x18]
mov qword [rdi], rax
mov rax, qword [rsi + 0x20]
mov qword [r14], rax
test rax, rax
je 0x1801e2d4c
mov rax, qword [rdi]
mov ecx, dword [rsi + 0x48]
movzx eax, byte [rax]
mov byte [rcx + rsi + 0x40], al
inc dword [rsi + 0x48]
inc qword [rdi]
sub qword [r14], 1
jne 0x1801e2d80
jmp 0x1801e2d4c
cmp dword [rsi + 0x48], 0
je 0x1801e2daa
mov dword [rsi + 0x48], 0
jmp 0x1801e2d4c
mov r9, qword [rsi + 0x20]
mov r8d, dword [rsi + 0x10]
sub r13d, r8d
shr r13d, 3
mov ecx, r13d
sub qword [rsi + 0x18], rcx
add r9, rcx
mov qword [rsi + 0x20], r9
lea edx, [r13*8]
cmp edx, 0x40
jne 0x1801e2dde
mov qword [rsi + 8], 0
jmp 0x1801e2de4
mov ecx, edx
shl qword [rsi + 8], cl
lea eax, [r8 + rdx]
mov dword [rsi + 0x10], eax
mov qword [r14], r9
mov rax, qword [rsi + 0x18]
mov qword [rdi], rax
jmp 0x1801e2d4c
mov edx, 0xffffffea
jmp 0x1801e2d4f
mov edx, 0xffffffe1
jmp 0x1801e2d4f
mov dword [rcx + 0x74], edx
sub edx, 1
je 0x1801e72d1
sub edx, 1
je 0x1801e72cb
cmp edx, 1
je 0x1801e72c5
xor eax, eax
ret
mov eax, 3
ret
mov eax, 2
ret
mov eax, 1
ret