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

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], r9
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
push rbx
push rbp
push rdi
push r12
push r13
push r15
sub rsp, 0x78
mov r10, qword [rsp + 0xd8]
mov r13, rdx
mov rdx, qword [rdx]
mov r12d, 1
mov qword [rsp + 0x40], rdx
mov r15, rcx
mov rcx, qword [rsp + 0xd0]
mov rax, r9
mov rdi, r8
mov ebp, r12d
test r10, r10
je 0x1401fc28b
mov rax, qword [r15 + 0x1b0]
mov qword [r10], rax
mov rax, r9
cmp dword [r15 + 0x80], 0
jge 0x1401fc2a5
xor eax, eax
add rsp, 0x78
pop r15
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret
mov rax, qword [rax]
test rax, rax
je 0x1401fc2d9
test rcx, rcx
je 0x1401fc2b8
cmp qword [rcx], 0
jne 0x1401fc2d9
sub rdx, qword [r13]
mov rcx, r15
mov r8, rdx
mov edx, 0xffffffec
add rsp, 0x78
pop r15
pop r13
pop r12
pop rdi
pop rbp
pop rbx
jmp 0x140201e40
xor r11d, r11d
mov qword [rsp + 0x70], rsi
test rax, rax
mov qword [rsp + 0x68], r14
mov rax, qword [r15 + 0x50]
lea rsi, [r15 + 0x28]
cmovne r11, rcx
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], r11
test rax, rax
jne 0x1401fc34f
mov rax, qword [r13]
mov rcx, qword [r8]
lea r8, [r15 + 0x20]
mov qword [rsp + 0xb0], r8
mov qword [r15 + 0x18], rcx
test rax, rax
jne 0x1401fc32f
mov qword [rsi], rcx
lea rdx, [0x140000000]
mov qword [r8], rcx
jmp 0x1401fc3ac
lea rdx, [rcx + rax]
inc rax
mov qword [rsi], rdx
cmp rax, 0x1c
jbe 0x1401fc395
lea rcx, [rdx - 0x1b]
mov qword [r8], rcx
lea rdx, [0x140000000]
jmp 0x1401fc3ac
lea rcx, [r15 + 0x48]
mov ebp, 2
lea rdx, [rcx + rax]
mov qword [r15 + 0x18], rcx
inc rax
mov qword [rsi], rdx
lea r8, [r15 + 0x20]
mov qword [rsp + 0xb0], r8
cmp rax, 0x1c
jbe 0x1401fc388
lea rcx, [rdx - 0x1b]
mov qword [r8], rcx
lea rdx, [0x140000000]
jmp 0x1401fc3ac
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0x38], rsi
mov qword [r8], rcx
lea rdx, [0x140000000]
jmp 0x1401fc3ac
mov rsi, qword [rsp + 0x38]
mov r12d, 1
lea r14, [r15 + 0x310]
cmp ebp, 1
je 0x1401fc4af
cmp ebp, 2
jne 0x1401fd5ff
cmp qword [r15 + 0x88], 0
je 0x1401fc407
mov rdx, qword [rsp + 0xc8]
mov r9, r10
mov r8, r11
mov dword [rsp + 0x20], r12d
mov rcx, r15
call fcn.140202040
test eax, eax
js 0x1401fd598
mov r8, qword [rsp + 0xb0]
mov r10, qword [rsp + 0xd8]
mov r11, qword [rsp + 0x30]
mov rdx, qword [r15 + 0x50]
test rdx, rdx
je 0x1401fd5c4
mov rax, qword [rsi]
cmp qword [r15 + 0x18], rax
jne 0x1401fc459
mov qword [r15 + 0x50], 0
mov ebp, r12d
mov rax, qword [r13]
mov rcx, qword [rdi]
mov qword [r15 + 0x18], rcx
test rax, rax
jne 0x1401fc440
mov qword [rsi], rcx
mov qword [r8], rcx
jmp 0x1401fc4a8
lea rdx, [rcx + rax]
inc rax
mov qword [rsi], rdx
cmp rax, 0x1c
jbe 0x1401fc454
lea rcx, [rdx - 0x1b]
mov qword [r8], rcx
jmp 0x1401fc4a8
cmp qword [r13], 0
je 0x1401fd59a
mov rax, qword [rdi]
mov ebp, r12d
movzx ecx, byte [rax]
mov byte [rdx + r15 + 0x48], cl
lea rdx, [r15 + 0x48]
add qword [r15 + 0x50], 1
mov rcx, rdx
mov rax, qword [r15 + 0x50]
mov qword [r15 + 0x18], rdx
je 0x1401fc48c
lea rcx, [rdx + rax]
mov qword [rsi], rcx
inc rax
add rcx, 0xffffffffffffffe5
cmp rax, 0x1c
cmovbe rcx, rdx
mov qword [r8], rcx
inc qword [rdi]
dec qword [r13]
lea rdx, [0x140000000]
movsxd rax, dword [r15]
cmp eax, 0x1a
ja case.default.0x1401fc4c5
mov ecx, dword [rdx + rax*4 + 0x1fd67c]
add rcx, rdx
jmp rcx
lea rcx, [r15 + 8]
call fcn.140202190
test eax, eax
jne 0x1401fc4dc
lea ebp, [rax + 2]
jmp 0x1401fd577
mov r9d, dword [r15 + 0x304]
mov eax, r9d
and eax, 0xffffffdf
mov dword [r15 + 0x304], eax
mov rdx, qword [r15 + 8]
mov r8, qword [r15 + 0x10]
mov rcx, rdx
and rcx, qword [reloc.WS2_32.dll_accept]
dec r8
shr rdx, 1
mov qword [r15 + 0x10], r8
mov qword [r15 + 8], rdx
test rcx, rcx
jne 0x1401fc52a
mov eax, dword [r15 + 0x304]
and eax, 0xfffff43f
bts eax, 0xa
jmp 0x1401fc618
mov rax, rdx
lea rcx, [r8 - 3]
and rax, qword [reloc.WS2_32.dll_getsockopt]
shr rdx, 3
mov qword [r15 + 0x10], rcx
mov qword [r15 + 8], rdx
test rax, rax
je 0x1401fc57d
add eax, 0x11
mov ebp, r12d
shl eax, 6
xor eax, dword [r15 + 0x304]
and eax, 0xfc0
xor dword [r15 + 0x304], eax
mov eax, dword [r15 + 0x304]
and al, 0x20
neg al
sbb eax, eax
add eax, 2
mov dword [r15], eax
jmp 0x1401fd577
mov rax, rdx
lea r8, [rcx - 3]
and rax, qword [reloc.WS2_32.dll_getsockopt]
shr rdx, 3
mov qword [r15 + 0x10], r8
mov qword [r15 + 8], rdx
cmp rax, 1
jne 0x1401fc5ef
test r9b, 0x20
je 0x1401fc5c2
mov rcx, rdx
lea rax, [r8 - 1]
and rcx, qword [reloc.WS2_32.dll_accept]
shr rdx, 1
mov qword [r15 + 0x10], rax
mov qword [r15 + 8], rdx
cmp rcx, 1
jne 0x1401fc5cc
mov ebp, 0xfffffff3
jmp 0x1401fd577
or dword [r15 + 0x304], 0x20
mov ebp, r12d
mov eax, dword [r15 + 0x304]
and al, 0x20
neg al
sbb eax, eax
add eax, 2
mov dword [r15], eax
jmp 0x1401fd577
mov ecx, dword [r15 + 0x304]
test rax, rax
je 0x1401fc60c
add eax, 8
shl eax, 6
xor eax, ecx
and eax, 0xfc0
xor eax, ecx
jmp 0x1401fc618
mov eax, ecx
and eax, 0xfffff47f
or eax, 0x440
mov dword [r15 + 0x304], eax
mov ebp, r12d
and al, 0x20
neg al
sbb eax, eax
add eax, 2
mov dword [r15], eax
jmp 0x1401fd577
mov r8, qword [r15 + 0x10]
cmp r8, 6
jae 0x1401fc670
mov r9, qword [rsi]
mov rdx, qword [r15 + 0x18]
cmp rdx, r9
je 0x1401fc700
movzx eax, byte [rdx]
mov rcx, r8
shl rax, cl
add r8, 8
or qword [r15 + 8], rax
lea rax, [rdx + 1]
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x10], r8
cmp r8, 6
jb 0x1401fc640
mov rcx, qword [r15 + 8]
lea rax, [r8 - 6]
mov rdx, rcx
shr rcx, 6
and rdx, qword [0x140258dc0]
mov qword [r15 + 0x10], rax
shl edx, 6
mov qword [r15 + 8], rcx
xor edx, dword [r15 + 0x304]
and edx, 0xfc0
xor dword [r15 + 0x304], edx
mov eax, dword [r15 + 0x304]
and eax, 0xfc0
cmp eax, 0x280
jb 0x1401fc719
cmp eax, 0x780
ja 0x1401fc719
mov dword [r15], 2
mov ecx, dword [r15 + 0x304]
mov edx, r12d
shr ecx, 6
and ecx, 0x3f
shl edx, cl
mov rcx, qword [r15 + 0x40]
sub edx, 0x10
mov dword [r15 + 0x5c], edx
mov edx, 0x3030
call qword [r15 + 0x30]
mov qword [r15 + 0x100], rax
test rax, rax
jne 0x1401fc732
lea ebp, [rax - 0x1e]
jmp 0x1401fd577
mov r8, qword [rsp + 0xb0]
lea rdx, [0x140000000]
mov ebp, 2
jmp case.default.0x1401fc4c5
mov r8, qword [rsp + 0xb0]
lea rdx, [0x140000000]
mov ebp, 0xfffffff3
jmp case.default.0x1401fc4c5
add rax, 0x1da0
mov dword [r15], 3
mov qword [r15 + 0x108], rax
mov rcx, r15
call fcn.140202e00
mov dword [r15], 4
lea rdx, [r15 + 8]
mov rcx, r15
call fcn.1401fe5d0
mov r8, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1401fc4c5
test byte [r15 + 0x304], 6
je 0x1401fc801
mov rdx, qword [r15 + 0x10]
mov r8d, 0
mov rcx, rdx
and ecx, 7
je 0x1401fc7c8
mov rax, qword [r15 + 8]
lea r11, [0x140000000]
mov r8, qword [r11 + rcx*8 + 0x258d90]
sub rdx, rcx
and r8, rax
mov qword [r15 + 0x10], rdx
shr rax, cl
mov qword [r15 + 8], rax
cmp rdx, 0x40
jae 0x1401fc7de
mov rcx, rdx
mov rax, r12
shl rax, cl
dec rax
and qword [r15 + 8], rax
test r8, r8
je 0x1401fc801
mov r11, qword [rsp + 0x30]
lea rdx, [0x140000000]
mov r8, qword [rsp + 0xb0]
mov ebp, 0xfffffff2
jmp case.default.0x1401fc4c5
test byte [r15 + 0x304], 4
je 0x1401fc84b
mov rax, qword [r15 + 0x2d0]
lea rdx, [0x140000000]
mov r8, qword [rsp + 0xb0]
mov r11, qword [rsp + 0x30]
mov dword [r15], select
test rax, rax
je case.default.0x1401fc4c5
movsxd rdx, dword [r15 + 0x84]
mov rcx, qword [r15 + 0x2e0]
call rax
jmp 0x1401fd577
cmp dword [r15 + 0x84], 0
jne 0x1401fc875
mov r11, qword [rsp + 0x30]
lea rdx, [0x140000000]
mov r8, qword [rsp + 0xb0]
mov dword [r15], select
jmp case.default.0x1401fc4c5
mov rcx, r15
call fcn.1401fc0e0
test byte [r15 + 0x304], 2
je 0x1401fc893
mov dword [r15], ntohs
jmp 0x1401fd577
mov r8, qword [rsp + 0xb0]
lea rdx, [0x140000000]
mov qword [r15], reloc.WS2_32.dll_select
lea rax, [r15 + 0x438]
mov qword [r15 + 0x410], rax
mov qword [r15 + 0x360], 0
mov qword [r15 + 0x354], 0
mov dword [r15 + 0x350], 0
movsxd rax, dword [r15 + 4]
cmp eax, 3
jl 0x1401fc8fa
mov r10, qword [rsp + 0xd8]
mov r11, qword [rsp + 0x30]
mov dword [r15], 5
jmp case.default.0x1401fc4c5
add rax, 0x27
lea rdx, [r15 + 8]
mov rcx, r15
lea r8, [r15 + rax*8]
call fcn.1401feba0
mov r8, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1401fc4c5
movsxd rax, dword [r15 + 4]
inc qword [r15 + rax*8 + 0x138]
movsxd rcx, dword [r15 + 4]
cmp qword [r15 + rcx*8 + 0x138], 2
jae 0x1401fc963
lea eax, [rcx + 1]
mov dword [r15 + 4], eax
lea rdx, [0x140000000]
jmp case.default.0x1401fc4c5
mov dword [r15], reloc.WS2_32.dll_send
movsxd rdx, dword [r15 + 4]
xor r9d, r9d
imul eax, edx, 0x278
mov qword [rsp + 0x20], r15
mov rcx, qword [r15 + rdx*8 + 0x138]
add rcx, 2
movsxd rdx, eax
mov rax, qword [r15 + 0x100]
lea r8, [rax + rdx*4]
mov rdx, rcx
call fcn.1401ffbe0
mov r8, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1401fc4c5
mov dword [r15], reloc.WS2_32.dll_sendto
imul eax, dword [r15 + 4], 0x18c
mov edx, 0x1a
xor r9d, r9d
mov qword [rsp + 0x20], r15
movsxd rcx, eax
mov rax, qword [r15 + 0x108]
lea r8, [rax + rcx*4]
mov ecx, edx
call fcn.1401ffbe0
mov r8, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1401fc4c5
mov dword [r15], reloc.WS2_32.dll_setsockopt
movsxd rdx, dword [r15 + 4]
imul eax, edx, 0x18c
cmp dword [r15 + 0x2fc], 0
lea rdi, [r15 + rdx*8]
movsxd rcx, eax
mov rax, qword [r15 + 0x108]
lea r11, [rax + rcx*4]
jne 0x1401fcb18
mov r8, qword [r15 + 0x10]
cmp r8, 0xf
jae 0x1401fca90
mov r9, qword [rsi]
nop dword [rax + rax]
mov rdx, qword [r15 + 0x18]
cmp rdx, r9
je 0x1401fcaf8
movzx eax, byte [rdx]
mov rcx, r8
shl rax, cl
add r8, 8
or qword [r15 + 8], rax
lea rax, [rdx + 1]
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x10], r8
cmp r8, 0xf
jb 0x1401fca60
mov r10, qword [0x140258e08]
and r10, qword [r15 + 8]
movzx eax, r10b
lea r9, [r11 + rax*4]
movzx eax, byte [r11 + rax*4]
cmp al, 8
jbe 0x1401fcae3
shr qword [r15 + 8], 8
lea r11, [0x140000000]
sub eax, 8
shr r10, 8
add r8, 0xfffffffffffffff8
mov qword [r15 + 0x10], r8
mov rdx, qword [r11 + rax*8 + 0x258d90]
movzx eax, word [r9 + 2]
and rdx, r10
add rdx, rax
movzx eax, byte [r9 + rdx*4]
lea r9, [r9 + rdx*4]
movzx ecx, al
sub r8, rcx
shr qword [r15 + 8], cl
mov qword [r15 + 0x10], r8
movzx r10d, word [r9 + 2]
jmp 0x1401fcb1f
lea r8, [rsp + 0x48]
mov rcx, r11
lea rdx, [r15 + 8]
call fcn.140200d40
test eax, eax
je 0x1401fcbda
mov r10, qword [rsp + 0x48]
jmp 0x1401fcb24
mov r10, qword [r15 + 0x130]
mov qword [rsp + 0x48], r10
mov rcx, qword [r15 + 0x10]
lea rax, [0x140000000]
movzx r9d, byte [rax + r10*4 + 0x2598c2]
movzx r11d, word [rax + r10*4 + 0x2598c0]
cmp rcx, r9
jae 0x1401fcb7f
mov r8, qword [rsi]
nop dword [rax]
mov rdx, qword [r15 + 0x18]
cmp rdx, r8
je 0x1401fcbcc
movzx eax, byte [rdx]
shl rax, cl
add rcx, 8
or qword [r15 + 8], rax
lea rax, [rdx + 1]
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x10], rcx
cmp rcx, r9
jb 0x1401fcb50
lea rax, [0x140000000]
mov rax, qword [rax + r9*8 + 0x258d90]
sub rcx, r9
mov rdx, qword [r15 + 8]
mov qword [r15 + 0x10], rcx
and rax, rdx
add rax, r11
mov rcx, r9
shr rdx, cl
mov qword [r15 + 8], rdx
mov qword [rdi + 0x118], rax
inc dword [r15 + 4]
mov rdi, qword [rsp + 0xc0]
mov dword [r15 + 0x2fc], 0
mov dword [r15], reloc.WS2_32.dll_select
jmp 0x1401fd577
mov qword [r15 + 0x130], r10
mov dword [r15 + 0x2fc], r12d
mov rdi, qword [rsp + 0xc0]
mov ebp, 2
jmp 0x1401fd577
mov rcx, qword [rsp + 0xc8]
mov r9, r15
mov r8, r10
mov rdx, r11
call fcn.1401fd890
mov r8, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1401fc4c5
mov dword [r15], select
lea rdx, [0x140000000]
jmp case.default.0x1401fc4c5
mov rcx, r15
call fcn.140201e90
jmp 0x1401fcc02
mov r8, qword [r15 + 0x10]
cmp r8, 6
jae 0x1401fcc83
mov r9, qword [rsi]
mov rdx, qword [r15 + 0x18]
cmp rdx, r9
je 0x1401fc700
movzx eax, byte [rdx]
mov rcx, r8
shl rax, cl
add r8, 8
or qword [r15 + 8], rax
lea rax, [rdx + 1]
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x10], r8
cmp r8, 6
jb 0x1401fcc53
mov rcx, qword [r15 + 8]
lea rax, [r8 - 6]
mov rdx, rcx
shr rcx, 6
and rdx, qword [0x140258dc0]
mov qword [r15 + 8], rcx
mov rcx, rdx
mov qword [r15 + 0x10], rax
and rcx, qword [reloc.WS2_32.dll_closesocket]
shr rdx, 2
shl rdx, cl
mov qword [r15 + 0x180], rcx
mov rcx, qword [r15 + 0x40]
mov qword [r15 + 0x188], rdx
mov rdx, qword [r15 + 0x138]
call qword [r15 + 0x30]
mov qword [r15 + 0x318], rax
test rax, rax
jne 0x1401fcce3
lea ebp, [rax - 0x15]
jmp 0x1401fd577
mov qword [r15], 6
movsxd r10, dword [r15 + 4]
cmp r10d, dword [r15 + 0x138]
jge 0x1401fcd78
mov r11, r10
nop
mov r8, qword [r15 + 0x10]
cmp r8, 2
jae 0x1401fcd40
mov r9, qword [rsi]
nop dword [rax]
mov rdx, qword [r15 + 0x18]
cmp rdx, r9
je 0x1401fced8
movzx eax, byte [rdx]
mov rcx, r8
shl rax, cl
add r8, 8
or qword [r15 + 8], rax
lea rax, [rdx + 1]
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x10], r8
cmp r8, 2
jb 0x1401fcd10
mov rcx, qword [r15 + 8]
lea rax, [r8 - 2]
mov rdx, rcx
inc r10d
and rdx, qword [reloc.WS2_32.dll_closesocket]
mov qword [r15 + 0x10], rax
shr rcx, 2
mov qword [r15 + 8], rcx
mov rax, qword [r15 + 0x318]
mov byte [r11 + rax], dl
inc r11
cmp r10d, dword [r15 + 0x138]
jl 0x1401fcd00
mov dword [r15], socket
mov rcx, qword [r15 + 0x138]
lea rdx, [r15 + 0x308]
shl rcx, 6
mov r9, r15
mov r8, r14
call fcn.1401fdc90
mov r8, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1401fc4c5
xorps xmm0, xmm0
xor esi, esi
movups xmmword [r15 + 0x330], xmm0
movups xmmword [r15 + 0x340], xmm0
cmp qword [r15 + 0x138], rsi
jbe 0x1401fce90
nop word [rax + rax]
mov r14, qword [r15 + 0x310]
mov r11, rsi
shl r11, 6
xor edi, edi
xor r10d, r10d
movzx r9d, byte [r11 + r14]
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, 0x40
jb 0x1401fce10
test rdi, rdi
jne 0x1401fce70
mov rax, rsi
mov ecx, esi
shr rax, 5
and ecx, 0x1f
lea rdx, [r15 + rax*4]
mov eax, dword [rdx + 0x330]
bts eax, ecx
mov dword [rdx + 0x330], eax
inc rsi
cmp rsi, qword [r15 + 0x138]
jb 0x1401fcdf0
mov r13, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0xc0]
mov dword [r15], reloc.WS2_32.dll_socket
mov r10, qword [r15 + 0x180]
mov eax, 0x18
mov r8, qword [r15 + 0x188]
lea rcx, [r10 + 1]
shl eax, cl
lea rsi, [r8 + 0x10]
add rsi, rax
test byte [r15 + 0x304], 0x20
mov r12, rsi
je 0x1401fcf54
cmp r8d, 0x7ffffffc
jb 0x1401fcee6
mov edx, 0x8000000c
jmp 0x1401fcf3f
mov dword [r15 + 4], r10d
mov ebp, 2
jmp 0x1401fd577
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 0x1401fcf16
nop word [rax + rax]
inc eax
shr ecx, 1
jne 0x1401fcf10
lea ecx, [rax - 1]
shr edx, cl
lea eax, [rax*2 - 4]
and edx, 1
or edx, eax
jne 0x1401fcf2f
lea edx, [r8 + 0x10]
jmp 0x1401fcf3f
dec edx
mov ecx, r10d
shl edx, cl
or edx, r9d
add edx, 0x11
add edx, r8d
mov esi, 0x3e
mov r12d, edx
lea rcx, [r10 + 1]
shl esi, cl
add rsi, 0x10
add rsi, r8
mov rcx, qword [r15 + 0x148]
lea r8, [r15 + 0x198]
shl rcx, 2
lea rdx, [r15 + 0x190]
mov r9, r15
call fcn.1401fdc90
mov r8, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne 0x1401fc3a1
mov rax, qword [r15 + 0x308]
lea rdx, [r15 + 0xb8]
mov r9d, 0x100
mov qword [rsp + 0x20], rax
mov r8d, r9d
mov rcx, r15
call fcn.140202a50
mov rcx, qword [r15 + 0x140]
lea rdx, [r15 + 0xd0]
mov r9d, 0x2c0
mov qword [rsp + 0x20], rcx
mov edi, eax
mov rcx, r15
mov r8d, r9d
and edi, 1
call fcn.140202a50
mov rcx, qword [r15 + 0x190]
lea rdx, [r15 + 0xe8]
mov qword [rsp + 0x20], rcx
mov r9, r12
mov rcx, r15
mov r8, rsi
and edi, eax
call fcn.140202a50
test edi, eax
je 0x1401fd665
mov qword [r15], 0x18
mov ecx, dword [r15 + 4]
test ecx, ecx
je 0x1401fd041
sub ecx, 1
je 0x1401fd039
cmp ecx, 1
jne 0x1401fd66f
mov r14d, 0xe8
jmp 0x1401fd047
mov r14d, 0xd0
jmp 0x1401fd047
mov r14d, 0xb8
mov r12d, 1
lea rsi, [r15 + 0xa6c]
cmp dword [r15 + 0x350], r12d
je 0x1401fd076
mov rax, qword [r15 + r14 + 8]
mov qword [r15 + 0xa70], rax
mov dword [rsi], 0
mov dword [r15 + 0x350], r12d
movzx eax, word [r15 + r14 + 0x14]
cmp dword [rsi], eax
jge 0x1401fd0df
movzx edx, word [r15 + r14 + 0x12]
lea r9, [rsp + 0x50]
movzx ecx, word [r15 + r14 + 0x10]
mov r8, qword [r15 + 0xa70]
mov qword [rsp + 0x20], r15
call fcn.1401ffbe0
mov ebp, eax
cmp eax, 1
jne 0x1401fd1e7
mov rcx, qword [r15 + r14]
mov rax, qword [r15 + 0xa70]
movsxd rdx, dword [rsi]
mov qword [rcx + rdx*8], rax
inc dword [rsi]
mov rax, qword [rsp + 0x50]
lea rax, [rax*4]
add qword [r15 + 0xa70], rax
movzx eax, word [r15 + r14 + 0x14]
cmp dword [rsi], eax
jl 0x1401fd080
mov rsi, qword [rsp + 0x38]
lea r14, [r15 + 0x310]
mov rdi, qword [rsp + 0xc0]
lea rdx, [0x140000000]
mov r8, qword [rsp + 0xb0]
mov ebp, r12d
mov r10, qword [rsp + 0xd8]
mov r11, qword [rsp + 0x30]
mov dword [r15 + 0x350], 0
inc dword [r15 + 4]
cmp dword [r15 + 4], 3
jl case.default.0x1401fc4c5
mov dword [r15], 0x19
lea r14, [r15 + 0x310]
mov r9, qword [r15 + 0x158]
movzx ecx, r9b
mov r8, r9
and cl, 0x1f
shl r8, 6
add r8, qword [r14]
mov rax, r9
shr rax, 5
mov qword [r15 + 0xa8], r8
mov edx, dword [r15 + rax*4 + 0x330]
mov rax, qword [r15 + 0xb8]
shr rdx, cl
and edx, 1
mov dword [r15 + 0x110], edx
movzx ecx, byte [r8]
mov rcx, qword [rax + rcx*8]
mov rax, qword [r15 + 0x318]
mov qword [r15 + 0x1a0], rcx
movzx ecx, byte [rax + r9]
lea rax, [0x140259930]
and ecx, 3
shl rcx, 9
add rcx, rax
mov rax, qword [r15 + 0x198]
mov qword [r15 + 0xb0], rax
mov rax, qword [r15 + 0xd0]
mov qword [r15 + 0xa0], rcx
mov rcx, qword [rax]
mov qword [r15 + 0x98], rcx
mov rcx, r15
call fcn.1401fd6f0
test eax, eax
jne 0x1401fd200
mov rsi, qword [rsp + 0x38]
lea ebp, [rax - 0x1b]
jmp 0x1401fd577
mov rsi, qword [rsp + 0x38]
lea r14, [r15 + 0x310]
mov rdi, qword [rsp + 0xc0]
jmp 0x1401fd577
mov r12, qword [r15 + 0x180]
lea r11, [r15 + 0x350]
mov r13, qword [r15 + 0x188]
mov r9d, 1
movzx r14d, word [r15 + 0xfa]
mov rcx, r12
mov edi, r9d
xor ebp, ebp
shl edi, cl
lea r8d, [r9 + 0xf]
test r13, r13
je 0x1401fd269
mov rsi, 0xfffffffffffffff1
lea rcx, [r11 + 0x10]
sub rsi, r11
lea rdx, [r11 + 0x2a0]
mov r10, r13
lea r8, [r13 + 0x10]
mov byte [rcx], bpl
lea rax, [rsi + rcx]
mov qword [rdx], rax
lea rdx, [rdx + 8]
lea rcx, [rcx + 1]
sub r10, r9
jne 0x1401fd252
cmp r8, r14
jae 0x1401fd2c6
nop
mov rcx, r9
lea r10, [rbp + 2]
shl r10, cl
mov rcx, r12
sub r10, 4
shl r10, cl
xor ecx, ecx
inc r10
add r10, r13
test rdi, rdi
je 0x1401fd2ba
lea rdx, [r11 + 0x220]
lea rdx, [rdx + r8*8]
nop dword [rax]
mov byte [r8 + r11], r9b
lea rax, [r10 + rcx]
inc r8
mov qword [rdx], rax
inc rcx
lea rdx, [rdx + 8]
cmp rcx, rdi
jb 0x1401fd2a0
add r9, rbp
xor rbp, 1
cmp r8, r14
jb 0x1401fd270
mov r13, qword [rsp + 0xb8]
mov eax, 7
mov rdi, qword [rsp + 0xc0]
mov dword [r15], eax
mov rcx, r15
call fcn.1401fef40
mov rsi, qword [rsp + 0x38]
mov ebp, eax
mov r8, qword [rsp + 0xb0]
mov r12d, 1
mov r10, qword [rsp + 0xd8]
lea r14, [r15 + 0x310]
mov r11, qword [rsp + 0x30]
lea rdx, [0x140000000]
cmp eax, 2
jne case.default.0x1401fc4c5
mov rcx, r15
call fcn.140200de0
mov ebp, eax
lea r14, [r15 + 0x310]
jmp 0x1401fd577
mov rdx, qword [rsp + 0xc8]
mov r9, r10
mov r8, r11
mov dword [rsp + 0x20], 0
mov rcx, r15
call fcn.140202040
mov r8, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1401fc4c5
mov rcx, r15
call fcn.140202000
mov ecx, dword [r15 + 0x304]
mov eax, r12d
shr ecx, 6
and ecx, 0x3f
shl eax, cl
cmp dword [r15 + 0x64], eax
jne 0x1401fd3a2
mov eax, dword [r15 + 0x5c]
mov dword [r15 + 0x60], eax
mov eax, dword [r15]
cmp eax, 0xf
jne 0x1401fd415
mov rcx, qword [r15 + 0x328]
test rcx, rcx
je 0x1401fd3f8
mov eax, dword [rcx + 0x14]
cmp dword [rcx + 0x10], eax
je 0x1401fd3f8
mov edx, dword [r15 + 0x58]
mov rcx, r15
call fcn.1401fd7c0
add dword [r15 + 0x58], eax
lea rdx, [0x140000000]
mov eax, dword [r15 + 0x58]
mov r8, qword [rsp + 0xb0]
mov r10, qword [rsp + 0xd8]
mov r11, qword [rsp + 0x30]
cmp eax, dword [r15 + 0x64]
jge case.default.0x1401fc4c5
cmp dword [r15 + 0x84], 0
mov eax, select
mov ecx, 7
cmovne eax, ecx
mov dword [r15], eax
jmp 0x1401fd577
cmp eax, 0x10
jne 0x1401fd427
mov eax, 0xa
mov dword [r15], eax
jmp 0x1401fd577
cmp dword [r15 + 4], 0
jne 0x1401fd44b
cmp dword [r15 + 0x84], 0
mov eax, select
mov ecx, 9
cmovne eax, ecx
mov dword [r15], eax
jmp 0x1401fd577
mov eax, 8
mov dword [r15], eax
jmp 0x1401fd577
cmp dword [r15 + 0x84], 0
jge 0x1401fd46c
mov ebp, 0xfffffff6
jmp case.default.0x1401fc4c5
mov rcx, r15
call fcn.140202bc0
test byte [r15 + 0x304], 1
jne 0x1401fd48a
mov dword [r15], 3
jmp 0x1401fd577
mov r9, qword [r15 + 0x10]
mov edx, 0
mov rcx, r9
and ecx, 7
je 0x1401fd4bf
mov rax, qword [r15 + 8]
lea r11, [0x140000000]
mov rdx, qword [r11 + rcx*8 + 0x258d90]
sub r9, rcx
and rdx, rax
mov qword [r15 + 0x10], r9
shr rax, cl
mov qword [r15 + 8], rax
cmp r9, 0x40
jae 0x1401fd4d5
mov rcx, r9
mov rax, r12
shl rax, cl
dec rax
and qword [r15 + 8], rax
test rdx, rdx
je 0x1401fd4e4
mov ebp, 0xfffffff1
jmp 0x1401fd577
cmp qword [r15 + 0x50], 0
jne 0x1401fd53d
mov r10, qword [r15 + 0x18]
mov rdx, r9
shr rdx, 3
mov rax, r10
sub rax, rdx
test rdx, rdx
cmovne r10, rax
lea r8, [rdx*8]
sub r9, r8
mov qword [r15 + 0x18], r10
mov qword [r15 + 0x10], r9
cmp r9, 0x40
jae 0x1401fd52c
mov rcx, r9
mov rax, r12
shl rax, cl
dec rax
and qword [r15 + 8], rax
mov rax, qword [rsi]
sub rax, r10
mov qword [r13], rax
mov rax, qword [r15 + 0x18]
mov qword [rdi], rax
mov dword [r15], 0x1a
cmp qword [r15 + 0x88], 0
je 0x1401fd59a
mov r9, qword [rsp + 0xd8]
mov rcx, r15
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xc8]
mov dword [rsp + 0x20], r12d
call fcn.140202040
mov ebp, eax
cmp eax, 1
je 0x1401fd59a
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
mov r8, qword [rsp + 0xb0]
jmp case.default.0x1401fc4c5
mov ebp, eax
mov edx, ebp
mov r8, qword [rsp + 0x40]
mov rcx, r15
sub r8, qword [r13]
mov rsi, qword [rsp + 0x70]
mov r14, qword [rsp + 0x68]
add rsp, 0x78
pop r15
pop r13
pop r12
pop rdi
pop rbp
pop rbx
jmp 0x140201e40
mov rax, qword [r15 + 0x18]
mov qword [rdi], rax
mov rax, qword [rsi]
sub rax, qword [r15 + 0x18]
mov qword [r13], rax
je 0x1401fd59a
nop dword [rax + rax]
mov rax, qword [rdi]
mov rcx, qword [r15 + 0x50]
movzx eax, byte [rax]
mov byte [rcx + r15 + 0x48], al
inc qword [r15 + 0x50]
inc qword [rdi]
sub qword [r13], 1
jne 0x1401fd5e0
jmp 0x1401fd59a
cmp qword [r15 + 0x50], 0
je 0x1401fd610
mov qword [r15 + 0x50], 0
jmp 0x1401fd59a
mov rcx, qword [r15 + 0x10]
mov r9, qword [r15 + 0x18]
mov rdx, rcx
shr rdx, 3
mov rax, r9
sub rax, rdx
test rdx, rdx
cmovne r9, rax
lea r8, [rdx*8]
sub rcx, r8
mov qword [r15 + 0x18], r9
mov qword [r15 + 0x10], rcx
cmp rcx, 0x40
jae 0x1401fd64f
shl r12, cl
dec r12
and qword [r15 + 8], r12
mov rax, qword [rsi]
sub rax, r9
mov qword [r13], rax
mov rax, qword [r15 + 0x18]
mov qword [rdi], rax
jmp 0x1401fd59a
mov edx, 0xffffffea
jmp 0x1401fd59c
mov edx, 0xffffffe1
jmp 0x1401fd59c
add qword [rcx + 0x2e8], r8
cmp qword [rcx + 0x50], 0
mov dword [rcx + 0x80], edx
je 0x140201e66
mov rax, qword [rcx + 0x28]
cmp qword [rcx + 0x18], rax
jne 0x140201e66
mov qword [rcx + 0x50], 0
sub edx, 1
je 0x140201e84
sub edx, 1
je 0x140201e7e
cmp edx, 1
je 0x140201e78
xor eax, eax
ret
mov eax, 3
ret
mov eax, 2
ret
mov eax, 1
ret