Function at 0x140109c2c
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push r15
mov eax, 0x4428
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.140123670
sub rsp, rax
movups xmmword [rsp + 0x4400], xmm6
movups xmmword [rsp + 0x4410], xmm7
mov rax, qword [rsp + 0x4490]
mov qword [rsp + 0x30], rcx
mov rbx, rdx
mov esi, r8d
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x40], rax
cmp r8d, 4
jle 0x14010b456
cmp byte [rcx + 0x1808], 0xff
jne 0x14010b456
lea rcx, [rcx + 0x1808]
call fcn.140107e86
test eax, eax
je 0x14010b456
mov rax, qword [rsp + 0x30]
mov rcx, rbx
mov edx, dword [rax + 0x1804]
call fcn.140107f65
mov rcx, rbx
mov r11d, eax
call fcn.140108ea8
add r11d, eax
mov dword [rsp + 0xd8], r11d
cmp r11d, esi
je 0x140109cf3
lea eax, [r11 + 3]
cmp eax, esi
jge 0x14010b456
movsxd rdx, r11d
add rdx, rbx
call fcn.140107e86
test eax, eax
je 0x14010b456
test r11d, r11d
je 0x14010b456
xor eax, eax
movsxd rdx, eax
mov r9d, dword [rsp + 0xd8]
mov r11d, 4
lea rdi, [rbx + rdx]
mov rbx, qword [rsp + 0x40]
mov edx, dword [rdi]
mov qword [rsp + 0x38], rdi
mov rdi, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov dword [rdi + 0x1808], edx
lea edx, [r9 + rax]
mov dword [rbx + 4], eax
mov rax, qword [rsp + 0x38]
mov dword [rbx], edx
mov al, byte [rax + 3]
mov byte [rsp + 0x48], al
not eax
test al, 0xc0
setne al
movzx eax, al
inc eax
mov dword [rbx + 8], eax
call fcn.140107f0e
mov rcx, qword [rsp + 0x38]
mov dword [rbx + 0xc], eax
mov rax, qword [rsp + 0x38]
mov al, byte [rax + 1]
mov byte [rsp + 0x48], al
shr al, 1
and eax, 3
sub r11d, eax
mov dword [rbx + 0x10], r11d
call fcn.140107ed5
cmp qword [rsp + 0x50], 0
mov dword [rbx + 0x14], eax
jne 0x140109dac
mov rcx, qword [rsp + 0x38]
movups xmm6, xmmword [rsp + 0x4400]
movups xmm7, xmmword [rsp + 0x4410]
add rsp, 0x4428
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.140107f40
mov rax, qword [rsp + 0x38]
xor r8d, r8d
lea rbx, [rsp + 0xe0]
mov dword [rsp + 0xe8], r8d
add rax, 4
mov qword [rsp + 0xe0], rax
lea eax, [r9*8 - 0x20]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0xec], eax
mov rax, qword [rsp + 0x38]
mov sil, byte [rax + 1]
test esi, 1
jne 0x140109e01
mov edx, 0x10
mov rcx, rbx
call fcn.140107dd0
cmp r11d, 3
jne 0x14010af0f
mov r8, qword [rsp + 0x38]
lea rdx, [rsp + 0xf90]
mov rcx, rbx
call fcn.140107fb6
mov r10d, eax
test eax, eax
js 0x140109e38
mov r8d, dword [rsp + 0xe8]
mov eax, dword [rsp + 0x48]
cmp r8d, eax
jle 0x140109e4b
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x1808], 0
xor eax, eax
jmp 0x14010b4a3
mov eax, dword [rsp + 0xec]
mov ebx, 8
lea rbp, [rsp + 0x490]
mov rdi, rbp
sub eax, r8d
cdq
idiv ebx
mov r9d, eax
mov rax, qword [rsp + 0x30]
mov r11d, dword [rax + 0x1800]
cmp r10d, r11d
mov r12d, r11d
mov esi, r11d
cmovle r12d, r10d
add rax, 0x180c
sub esi, r10d
mov qword [rsp + 0x98], rax
mov eax, 0
cmovs esi, eax
mov rax, qword [rsp + 0x98]
movsxd rcx, r12d
movsxd rsi, esi
add rsi, rax
mov eax, r8d
rep movsb byte [rdi], byte [rsi]
cdq
movsxd rcx, r9d
add r9d, r12d
idiv ebx
shl r9d, 3
movsxd rsi, eax
xor eax, eax
add rsi, qword [rsp + 0xe0]
rep movsb byte [rdi], byte [rsi]
xor ecx, ecx
cmp r10d, r11d
mov qword [rsp + 0x480], rbp
setle al
mov dword [rsp + 0x488], ecx
mov dword [rsp + 0x48c], r9d
mov dword [rsp + 0x90], eax
jle 0x140109f2c
mov eax, dword [rsp + 0x488]
lea edx, [rax + 7]
mov eax, dword [rsp + 0x48c]
shr edx, 3
shr eax, 3
sub eax, edx
cmp eax, 0x1ff
jle 0x14010aee4
lea edx, [rdx + rax - 0x1ff]
mov eax, 0x1ff
jmp 0x14010aee8
xor eax, eax
movups xmm6, xmmword [0x1401bac80]
mov dword [rsp + 0x74], eax
mov rax, qword [rsp + 0x38]
mov al, byte [rax + 1]
mov byte [rsp + 0x48], al
and eax, 8
cmp al, 1
sbb eax, eax
add eax, 2
cmp dword [rsp + 0x74], eax
jge 0x140109ef7
lea rdx, [rsp + 0x1010]
xor eax, eax
mov ecx, 0x480
mov rdi, rdx
mov qword [rsp + 0xc0], rdx
xor edx, edx
rep stosd dword [rdi], eax
mov rax, qword [rsp + 0x40]
mov dword [rsp + 0x78], edx
mov eax, dword [rax + 8]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x74]
mov edi, dword [rsp + 0x68]
imul eax, edi
cdqe
shl rax, 5
lea rax, [rsp + rax + 0xf90]
mov qword [rsp + 0x48], rax
lea r11, [rax + 0x13]
lea rax, [rsp + 0x43b0]
mov qword [rsp + 0xb8], rax
mov ebx, dword [rsp + 0x78]
cmp dword [rsp + 0x68], ebx
jle 0x14010a8f5
movzx eax, word [r11 - 0xb]
add eax, dword [rsp + 0x488]
lea rdx, [0x1401ba500]
mov dword [rsp + 0xa8], eax
xor eax, eax
cmp byte [r11 - 1], 0
setne al
cmp byte [r11 - 2], 1
mov rbx, qword [rsp + 0x30]
adc rax, 0
mov r10, qword [rsp + 0xb8]
movzx r12d, byte [r11 + 0xc]
imul rax, rax, 0x1c
lea r14, [rax + rdx]
movzx eax, byte [r11 + 0xa]
inc eax
mov dword [rsp + 0x58], eax
movzx eax, word [r11 - 7]
test byte [rbx + 0x1809], 8
je 0x14010a057
movsxd rcx, eax
lea rax, [0x1401ba4e0]
movzx edx, byte [rax + rcx]
mov eax, edx
sar edx, 2
and eax, 3
mov byte [rsp + 0xdc], dl
mov byte [rsp + 0xdd], dl
mov byte [rsp + 0xde], al
mov byte [rsp + 0xdf], al
jmp 0x14010a0d6
mov rdi, qword [rsp + 0x30]
mov bl, byte [rdi + 0x180b]
mov ecx, ebx
mov byte [rsp + 0x60], bl
shr cl, 4
cmp dword [rsp + 0x78], 0
setne dl
and ecx, edx
movzx r8d, cl
sar eax, cl
neg r8d
mov ecx, eax
lea rax, [0x1401ba4c0]
mov ebx, r8d
and r8d, 0xc
and ebx, 0xc
add r8, rax
mov esi, 3
mov r9d, 1
mov eax, ecx
movzx edi, byte [r8 + rsi]
cdq
idiv r9d
imul r9d, edi
cdq
idiv edi
mov byte [rsp + rsi + 0xdc], dl
sub rsi, 1
jae 0x14010a09f
add ebx, 4
add r8, 4
sub ecx, r9d
jns 0x14010a094
movsxd rbx, ebx
mov r12d, 0xfffffff0
add r14, rbx
xor r13d, r13d
lea rbx, [rsp + 0xfc]
lea r15, [rsp + 0xdc]
movzx esi, byte [r14 + r13]
test sil, sil
je 0x14010a1bf
movzx ebp, sil
test r12d, 8
je 0x14010a114
mov rdi, rbx
mov rsi, r10
mov rcx, rbp
rep movsb byte [rdi], byte [rsi]
jmp 0x14010a1a9
movzx edx, byte [r13 + r15]
test edx, edx
jne 0x14010a132
xor eax, eax
mov rdi, rbx
mov rcx, rbp
rep stosb byte [rdi], al
mov rdi, r10
mov rcx, rbp
rep stosb byte [rdi], al
jmp 0x14010a1a9
or r8d, 0xffffffff
test r12d, r12d
jns 0x14010a149
mov r8d, 1
mov ecx, edx
shl r8d, cl
dec r8d
lea rax, [rsp + 0x480]
xor edi, edi
mov qword [rsp + 0x60], rax
mov rcx, qword [rsp + 0x60]
mov dword [rsp + 0xa0], r8d
mov qword [rsp + 0x88], r10
mov dword [rsp + 0x80], edx
call fcn.140107dd0
mov r8d, dword [rsp + 0xa0]
mov ecx, 0xff
mov r10, qword [rsp + 0x88]
mov byte [rbx + rdi], al
mov edx, dword [rsp + 0x80]
cmp eax, r8d
cmovne ecx, eax
mov byte [r10 + rdi], cl
inc rdi
cmp esi, edi
jg 0x14010a158
inc r13
add r10, rbp
add rbx, rbp
add r12d, r12d
cmp r13, 4
jne 0x14010a0e9
mov word [rbx], 0
mov byte [rbx + 2], 0
movzx ebx, byte [r11 - 1]
test bl, bl
je 0x14010a267
mov eax, dword [rsp + 0x58]
mov ecx, 3
movzx r8d, byte [r11 + 6]
movzx edx, byte [r11 + 7]
movzx r9d, byte [r11 + 8]
sub ecx, eax
movzx eax, byte [r11 - 2]
shl r8d, cl
shl edx, cl
shl r9d, cl
lea rax, [rsp + rax + 0xfc]
xor ecx, ecx
add ecx, 3
add byte [rax], r8b
add byte [rax + 1], dl
add byte [rax + 2], r9b
add rax, 3
cmp ecx, ebx
jl 0x14010a206
mov rax, qword [rsp + 0x30]
movzx edx, byte [r11 - 5]
lea rdi, [rsp + 0xfc]
movss xmm0, dword [0x1401bac68]
mov al, byte [rax + 0x180b]
mov byte [rsp + 0x60], al
and eax, 0xffffffe0
cmp al, 0x60
sete al
movzx eax, al
add eax, eax
sub eax, edx
lea edx, [rax + 0x102]
call fcn.1401082b6
movzx esi, byte [r11 - 2]
movaps xmm2, xmm0
add esi, ebx
xor ebx, ebx
jmp 0x14010a291
cmp byte [r11 + 9], 0
je 0x14010a21b
xor eax, eax
lea rdx, [rsp + 0x107]
lea r8, [0x1401ba4b0]
mov cl, byte [r8 + rax]
add byte [rdx + rax], cl
inc rax
cmp rax, 0xa
jne 0x14010a27f
jmp 0x14010a21b
cmp esi, ebx
jle 0x14010a2b5
movzx edx, byte [rbx + rdi]
mov cl, byte [rsp + 0x58]
movaps xmm0, xmm2
shl edx, cl
call fcn.1401082b6
movss dword [rsp + rbx*4 + 0x2210], xmm0
inc rbx
jmp 0x14010a291
mov rax, qword [rsp + 0x480]
mov ecx, 8
xorps xmm1, xmm1
mov qword [rsp + 0x88], r11
mov r15, qword [rsp + 0xc0]
movzx esi, word [r11 - 9]
mov qword [rsp + 0xa0], rax
mov eax, dword [rsp + 0x488]
mov rdi, qword [rsp + 0xa0]
mov rbx, qword [r11 - 0x13]
cdq
idiv ecx
mov ecx, dword [rsp + 0x488]
and ecx, 7
lea r10d, [rcx - 8]
cdqe
lea rdx, [rdi + rax]
lea rdi, [rsp + 0x2210]
movzx r8d, byte [rdx]
movzx eax, byte [rdx + 1]
lea r14, [rdx + 4]
shl r8d, 8
add r8d, eax
movzx eax, byte [rdx + 2]
shl r8d, 8
add r8d, eax
movzx eax, byte [rdx + 3]
shl r8d, 8
add eax, r8d
shl eax, cl
test esi, esi
jle 0x14010a752
mov rcx, qword [rsp + 0x88]
lea rdx, [0x1401ba460]
lea r8, [0x1401b9360]
movzx ecx, byte [rcx + 3]
mov dword [rsp + 0x58], ecx
mov rcx, qword [rsp + 0x88]
movzx ecx, byte [rcx]
movsx rdx, word [rdx + rcx*2]
add rdx, rdx
add rdx, r8
mov qword [rsp + 0x60], rdx
lea rdx, [0x1401b9340]
movzx ebp, byte [rdx + rcx]
test ebp, ebp
je 0x14010a622
movss xmm3, dword [0x1401bac6c]
movss xmm4, dword [0x1401bac70]
mov dl, byte [rbx]
inc rbx
mov qword [rsp + 0xb0], r15
movss xmm5, dword [0x1401bac64]
shr dl, 1
movzx ecx, dl
cmp ecx, esi
mov dword [rsp + 0x80], ecx
cmovg ecx, esi
movss xmm1, dword [rdi]
add rdi, 4
mov dword [rsp + 0xac], ecx
mov dword [rsp + 0xcc], ecx
mov rcx, qword [rsp + 0x60]
mov edx, eax
shr edx, 0x1b
movsx r8d, word [rcx + rdx*2]
mov edx, 5
test r8d, r8d
jns 0x14010a428
mov ecx, edx
add r10d, edx
mov edx, r8d
sar r8d, 3
shl eax, cl
and edx, 7
mov ecx, 0x20
sub ecx, edx
mov r9d, eax
shr r9d, cl
mov ecx, r9d
mov r9, qword [rsp + 0x60]
sub ecx, r8d
movsx r8d, word [r9 + rcx*2]
jmp 0x14010a3f3
mov ecx, r8d
xor r12d, r12d
sar ecx, 8
shl eax, cl
add r10d, ecx
mov r9d, r8d
and r9d, 0xf
cmp r9d, 0xf
jne 0x14010a541
mov ecx, 0x20
mov edx, eax
add r10d, ebp
sub ecx, ebp
shr edx, cl
mov ecx, ebp
lea r9d, [rdx + 0xf]
shl eax, cl
test r10d, r10d
js 0x14010a478
movzx r13d, byte [r14]
mov ecx, r10d
inc r14
sub r10d, 8
shl r13d, cl
or eax, r13d
jmp 0x14010a45d
cmp r9d, 0x80
jg 0x14010a498
add edx, 0x1f
lea rcx, [0x1401ba920]
movsxd rdx, edx
movss xmm0, dword [rcx + rdx*4]
jmp 0x14010a523
cmp r9d, 0x3ff
jg 0x14010a4b6
mov dword [rsp + 0xc8], 0x10
lea edx, [r9*8]
jmp 0x14010a4c4
mov dword [rsp + 0xc8], 0x100
mov edx, r9d
lea ecx, [rdx + rdx]
mov r13d, edx
and ecx, 0x40
and r13d, 0x3f
sub r13d, ecx
cvtsi2ss xmm2, r13d
mov r13d, edx
add edx, ecx
and r13d, 0xffffffc0
sar edx, 6
add r13d, ecx
add edx, 0x10
lea rcx, [0x1401ba920]
cvtsi2ss xmm0, r13d
movsxd rdx, edx
divss xmm2, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm3
addss xmm0, xmm4
mulss xmm0, xmm2
cvtsi2ss xmm2, dword [rsp + 0xc8]
addss xmm0, xmm5
mulss xmm0, dword [rcx + rdx*4]
mulss xmm0, xmm2
mulss xmm0, xmm1
movss xmm2, dword [0x1401bac64]
test eax, eax
jns 0x14010a53b
movss xmm2, dword [0x1401bac60]
mulss xmm0, xmm2
jmp 0x14010a55f
mov ecx, eax
lea edx, [r9 + 0x10]
shr ecx, 0x1f
shl ecx, 4
sub edx, ecx
lea rcx, [0x1401ba920]
movss xmm0, dword [rcx + rdx*4]
mulss xmm0, xmm1
mov rdx, qword [rsp + 0xb0]
test r9d, r9d
setne cl
movss dword [rdx + r12], xmm0
setne dl
shl eax, cl
movzx edx, dl
sar r8d, 4
add r10d, edx
cmp r12, 4
je 0x14010a593
mov r12d, 4
jmp 0x14010a436
add qword [rsp + 0xb0], 8
test r10d, r10d
js 0x14010a5b5
movzx edx, byte [r14]
mov ecx, r10d
inc r14
sub r10d, 8
shl edx, cl
or eax, edx
jmp 0x14010a59c
dec dword [rsp + 0xcc]
jne 0x14010a3df
mov edx, dword [rsp + 0xac]
dec edx
lea r15, [r15 + rdx*8 + 8]
mov edx, dword [rsp + 0x80]
sub esi, edx
test esi, esi
jle 0x14010a745
dec dword [rsp + 0x58]
cmp dword [rsp + 0x58], 0xffffffff
jne 0x14010a3a3
jmp 0x14010a745
dec dword [rsp + 0xac]
jne 0x14010a64c
lea edx, [r12 - 1]
sub esi, r8d
lea r15, [r15 + rdx*8 + 8]
test esi, esi
jle 0x14010a745
dec dword [rsp + 0x58]
cmp dword [rsp + 0x58], 0xffffffff
je 0x14010a745
mov r8b, byte [rbx]
inc rbx
mov r12d, esi
mov r9, r15
shr r8b, 1
movzx r8d, r8b
cmp r8d, esi
cmovle r12d, r8d
movss xmm1, dword [rdi]
add rdi, 4
mov dword [rsp + 0xac], r12d
mov rcx, qword [rsp + 0x60]
mov edx, eax
mov r13d, 5
shr edx, 0x1b
movsx edx, word [rcx + rdx*2]
test edx, edx
jns 0x14010a691
mov ecx, r13d
add r10d, r13d
mov r13d, edx
sar edx, 3
shl eax, cl
and r13d, 7
mov ecx, 0x20
sub ecx, r13d
mov ebp, eax
shr ebp, cl
mov ecx, ebp
sub ecx, edx
mov rdx, qword [rsp + 0x60]
movsx edx, word [rdx + rcx*2]
jmp 0x14010a660
mov ecx, edx
lea rbp, [0x1401ba920]
sar ecx, 8
shl eax, cl
add ecx, r10d
mov r10d, edx
mov r13d, eax
and r10d, 0xf
mov dword [rsp + 0x80], ecx
shr r13d, 0x1f
lea ecx, [r10 + 0x10]
shl r13d, 4
sub ecx, r13d
test r10d, r10d
movss xmm0, dword [rbp + rcx*4]
setne cl
setne r13b
sar edx, 4
shl eax, cl
mov ecx, dword [rsp + 0x80]
and edx, 0xf
movzx r13d, r13b
mulss xmm0, xmm1
mov r10d, eax
shr r10d, 0x1f
add r13d, ecx
lea ecx, [rdx + 0x10]
shl r10d, 4
sub ecx, r10d
test edx, edx
setne r10b
movss dword [r9], xmm0
movss xmm0, dword [rbp + rcx*4]
movzx r10d, r10b
setne cl
shl eax, cl
add r10d, r13d
add r9, 8
mulss xmm0, xmm1
movss dword [r9 - 4], xmm0
test r10d, r10d
js 0x14010a5f5
movzx edx, byte [r14]
mov ecx, r10d
inc r14
sub r10d, 8
shl edx, cl
or eax, edx
jmp 0x14010a728
inc qword [rsp + 0x88]
jmp 0x14010a33f
mov edx, 1
lea rcx, [0x1401b9300]
movss xmm0, dword [0x1401bab90]
movsxd r12, dword [rsp + 0xa8]
sub edx, esi
cmp byte [r11 + 0xb], 0
movaps xmm3, xmm0
mov r13d, 0x20
lea rsi, [0x1401b9320]
movaps xmm4, xmm0
movaps xmm5, xmm0
cmove rsi, rcx
mov ecx, eax
shr ecx, 0x1c
movzx r8d, byte [rsi + rcx]
mov r9d, r8d
test r8d, 8
jne 0x14010a7c4
mov ebp, eax
and r9d, 3
mov ecx, r13d
sar r8d, 3
sub ecx, r9d
shl ebp, 4
shr ebp, cl
lea ecx, [rbp + r8]
movzx r8d, byte [rsi + rcx]
mov ecx, r8d
mov r9, r14
and ecx, 7
add r10d, ecx
shl eax, cl
mov rcx, qword [rsp + 0xa0]
sub r9, rcx
movsxd rcx, r10d
lea rcx, [rcx + r9*8 - 0x18]
cmp rcx, r12
jg 0x14010a8c5
dec edx
jne 0x14010a811
mov r9b, byte [rbx]
lea rcx, [rbx + 1]
shr r9b, 1
movzx edx, r9b
je 0x14010a8c5
movss xmm1, dword [rdi]
mov rbx, rcx
add rdi, 4
test r8b, 0x80
je 0x14010a82b
movaps xmm2, xmm1
test eax, eax
jns 0x14010a821
xorps xmm2, xmm0
movss dword [r15], xmm2
add eax, eax
inc r10d
test r8d, 0x40
je 0x14010a849
movaps xmm2, xmm1
test eax, eax
jns 0x14010a83e
xorps xmm2, xmm3
movss dword [r15 + 4], xmm2
add eax, eax
inc r10d
dec edx
jne 0x14010a868
mov r9b, byte [rbx]
lea rcx, [rbx + 1]
shr r9b, 1
movzx edx, r9b
je 0x14010a8c5
movss xmm1, dword [rdi]
mov rbx, rcx
add rdi, 4
test r8d, 0x20
je 0x14010a886
movaps xmm2, xmm1
test eax, eax
jns 0x14010a87b
xorps xmm2, xmm4
movss dword [r15 + 8], xmm2
add eax, eax
inc r10d
and r8d, 0x10
je 0x14010a8a1
movaps xmm2, xmm1
test eax, eax
jns 0x14010a896
xorps xmm2, xmm5
movss dword [r15 + 0xc], xmm2
add eax, eax
inc r10d
test r10d, r10d
js 0x14010a8bc
movzx r8d, byte [r14]
mov ecx, r10d
inc r14
sub r10d, 8
shl r8d, cl
or eax, r8d
jmp 0x14010a8a1
add r15, 0x10
jmp 0x14010a78f
mov eax, dword [rsp + 0xa8]
inc dword [rsp + 0x78]
add r11, 0x20
add qword [rsp + 0xc0], 0x900
add qword [rsp + 0xb8], 0x27
mov dword [rsp + 0x488], eax
jmp 0x140109fb5
mov rax, qword [rsp + 0x30]
mov r11b, byte [rax + 0x180b]
test r11d, 0x10
je 0x14010ab72
mov rax, qword [rsp + 0x48]
xorps xmm0, xmm0
mov qword [rsp + 0xfc], 0xffffffffffffffff
lea rbx, [rsp + 0x1910]
mov dword [rsp + 0x104], 0xffffffff
mov edi, 3
movzx r8d, byte [rax + 0x11]
movzx edx, byte [rax + 0x12]
mov rax, qword [rsp + 0x48]
mov esi, r8d
add r8d, edx
cmp dl, 1
sbb ecx, ecx
mov rbp, qword [rax]
xor r9d, r9d
and ecx, 0xfffffffe
add ecx, 3
cmp r8d, r9d
jle 0x14010a9a3
movzx r10d, byte [rbp + r9]
xor eax, eax
movzx edx, r10b
cmp edx, eax
jle 0x14010a99a
ucomiss xmm0, dword [rbx + rax*4]
jp 0x14010a989
jne 0x14010a989
add rax, 2
ucomiss xmm0, dword [rbx + rax*4 - 4]
jp 0x14010a989
je 0x14010a970
mov eax, r9d
cdq
idiv edi
movsxd rdx, edx
mov dword [rsp + rdx*4 + 0xfc], r9d
lea rbx, [rbx + r10*4]
inc r9
jmp 0x14010a95f
test sil, sil
je 0x14010a9dc
mov edx, dword [rsp + 0xfc]
mov eax, dword [rsp + 0x100]
cmp eax, edx
cmovl eax, edx
mov edx, dword [rsp + 0x104]
cmp eax, edx
cmovl eax, edx
mov dword [rsp + 0x104], eax
mov dword [rsp + 0x100], eax
mov dword [rsp + 0xfc], eax
mov rax, qword [rsp + 0x30]
movsxd rdx, r8d
lea rsi, [rsp + 0xfc]
mov al, byte [rax + 0x1809]
mov edi, eax
mov byte [rsp + 0x58], al
and edi, 8
mov eax, edi
neg al
movsxd rax, ecx
sbb r10b, r10b
sub rdx, rax
neg rax
lea r9, [rsp + rdx + 0x480]
lea edx, [rcx + rcx]
and r10d, 3
sub r8d, edx
xor edx, edx
lea ebp, [r8 + rdx]
mov ebx, r10d
cmp dword [rsi + rdx*4], ebp
jge 0x14010aa33
mov bl, byte [r9 + rax + 0x3f57]
inc rdx
mov byte [r9 + 0x3f57], bl
inc r9
cmp ecx, edx
jg 0x14010aa1f
mov rax, qword [rsp + 0x48]
movss xmm3, dword [0x1401bac64]
mov eax, dword [rax + 0x2c]
and eax, 1
cmp dil, 1
sbb r15d, r15d
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x48]
and r15d, 0x39
mov r13, qword [rax]
add r15d, 7
and r11d, 0x20
je 0x14010aa80
movss xmm3, dword [0x1401bac74]
xor esi, esi
lea r14, [rsp + 0x1010]
lea r12, [0x1401b92c0]
mov eax, esi
lea rbp, [r13 + rax]
movzx ebx, byte [rbp]
test bl, bl
je 0x14010ab8e
movzx ecx, byte [rsp + rax + 0x43d7]
mov r10d, 3
mov eax, esi
xor edx, edx
div r10d
mov edx, edx
cmp dword [rsp + rdx*4 + 0xfc], esi
jge 0x14010ab53
cmp ecx, r15d
jae 0x14010ab53
test dil, dil
je 0x14010aaec
lea eax, [rcx + rcx]
mov rcx, rax
movss xmm0, dword [r12 + rax*4]
inc ecx
movss xmm1, dword [r12 + rcx*4]
jmp 0x14010ab1f
mov byte [rsp + 0x60], cl
movss xmm2, dword [0x1401bac64]
lea edx, [rcx + 1]
mov cl, byte [rsp + 0x58]
shr edx, 1
movaps xmm0, xmm2
shl edx, cl
call fcn.1401082b6
mov r8b, byte [rsp + 0x60]
movaps xmm1, xmm2
and r8d, 1
jne 0x14010ab1f
movaps xmm1, xmm0
movaps xmm0, xmm2
mulss xmm1, xmm3
xor eax, eax
mulss xmm0, xmm3
movss xmm2, dword [r14 + rax*4]
movaps xmm4, xmm1
mulss xmm4, xmm2
mulss xmm2, xmm0
movss dword [r14 + rax*4 + 0x900], xmm4
movss dword [r14 + rax*4], xmm2
inc rax
cmp ebx, eax
jg 0x14010ab29
jmp 0x14010ab63
test r11b, r11b
je 0x14010ab63
movzx edx, bl
mov rcx, r14
call fcn.1401087a8
movzx eax, byte [rbp]
inc esi
lea r14, [r14 + rax*4]
jmp 0x14010aa91
and r11d, 0xffffffe0
cmp r11b, 0x60
jne 0x14010ab8e
lea rcx, [rsp + 0x1010]
mov edx, 0x240
call fcn.1401087a8
movups xmm7, xmmword [0x1401bac90]
lea r12, [rsp + 0x1958]
xor ebp, ebp
cmp dword [rsp + 0x68], ebp
jle 0x14010ae86
mov rax, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x30]
xor r13d, r13d
mov r11d, 0x1f
mov dl, byte [rax + 0x1809]
mov rax, qword [rsp + 0x48]
mov dil, byte [rbx + 0x180a]
lea rbx, [r12 - 0x948]
cmp byte [rax + 0x10], 0
mov eax, edx
setne r13b
shr al, 3
mov byte [rsp + 0x58], dil
shr dl, 4
and eax, 1
add r13d, r13d
and edx, 1
add eax, edx
mov edx, edi
shr dl, 2
lea eax, [rax + rax*2]
and edx, 3
add eax, edx
cmp eax, 2
mov rax, qword [rsp + 0x48]
sete cl
shl r13d, cl
cmp byte [rax + 0x12], 0
je 0x14010acbf
movzx edx, byte [rax + 0x11]
add rdx, qword [rax]
imul eax, r13d, 0x12
lea r11d, [r13 - 1]
imul rcx, rbp, 0x900
cdqe
lea rax, [rcx + rax*4 + 0xb90]
lea rcx, [rsp + 0x22b0]
lea r14, [rsp + rax + 0x480]
mov rdi, r14
movzx eax, byte [rdx]
movzx esi, al
test esi, esi
je 0x14010acaf
lea r8d, [rsi + rsi]
mov r10, rcx
mov r9, rdi
xor r15d, r15d
movsxd r8, r8d
movss xmm0, dword [r9]
add r10, 0xc
inc r15d
movss dword [r10 - 0xc], xmm0
movss xmm0, dword [r9 + rax*4]
movss dword [r10 - 8], xmm0
movss xmm0, dword [r9 + rax*8]
add r9, 4
movss dword [r10 - 4], xmm0
cmp esi, r15d
jg 0x14010ac68
imul r9, rax, 0xc
add r8, rax
add rdx, 3
lea rdi, [rdi + r8*4]
add rcx, r9
jmp 0x14010ac4e
lea rsi, [rsp + 0x22b0]
mov rdi, r14
sub rcx, rsi
rep movsb byte [rdi], byte [rsi]
movups xmm3, xmmword [0x1401baca0]
movups xmm2, xmmword [0x1401bacb0]
mov rax, rbx
test r11d, r11d
jle 0x14010ad3d
movups xmm1, xmmword [rax + 0x48]
movups xmm0, xmmword [rax + 0x38]
add rax, 0x48
dec r11d
movaps xmm4, xmm1
shufps xmm0, xmm0, 0x1b
movaps xmm5, xmm0
mulps xmm1, xmm7
mulps xmm0, xmm6
mulps xmm5, xmm7
mulps xmm4, xmm6
addps xmm0, xmm1
movups xmm1, xmmword [rax + 0x10]
subps xmm4, xmm5
shufps xmm0, xmm0, 0x1b
movups xmmword [rax - 0x10], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rax], xmm4
shufps xmm0, xmm0, 0x1b
movaps xmm4, xmm1
movaps xmm5, xmm0
mulps xmm4, xmm3
mulps xmm5, xmm2
mulps xmm0, xmm3
mulps xmm1, xmm2
subps xmm4, xmm5
addps xmm0, xmm1
movups xmmword [rax + 0x10], xmm4
shufps xmm0, xmm0, 0x1b
movups xmmword [rax - 0x20], xmm0
jmp 0x14010acd0
mov rax, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x30]
movzx esi, byte [rax + 0xf]
imul rax, rbp, 0x480
lea r14, [rdi + rax]
test r13d, r13d
je 0x14010ad80
mov rdx, r14
mov rcx, rbx
lea r8, [0x1401b9220]
mov r9d, r13d
call fcn.1401084c4
imul edx, r13d, 0x12
lea rbx, [rbx + rdx*4]
imul edx, r13d, 9
lea r14, [r14 + rdx*4]
mov r9d, 0x20
sub r9d, r13d
cmp esi, 2
jne 0x14010ae12
lea rax, [rsp + 0x100]
lea r15, [rsp + 0xfc]
mov qword [rsp + 0x58], rax
lea r13, [rsp + 0x104]
mov rsi, rbx
mov ecx, 0x12
mov rdx, qword [r14 + 0x10]
movups xmm3, xmmword [r14]
lea rdi, [rsp + 0xfc]
lea r8, [r14 + 0x18]
mov dword [rsp + 0x60], r9d
rep movsd dword [rdi], dword [rsi]
mov qword [rbx + 0x10], rdx
mov rcx, r15
lea rdx, [rbx + 0x18]
movups xmmword [rbx], xmm3
call fcn.14010913c
mov rcx, qword [rsp + 0x58]
lea rdx, [rbx + 0x30]
add rbx, 0x48
call fcn.14010913c
mov rdx, r14
mov rcx, r13
add r14, 0x24
call fcn.14010913c
mov r9d, dword [rsp + 0x60]
dec r9d
jne 0x14010adaf
jmp 0x14010ae39
mov ecx, 0
cmp esi, 3
mov edx, 0x48
cmovne rdx, rcx
lea rcx, [0x1401b9220]
lea r8, [rcx + rdx]
mov rdx, r14
mov rcx, rbx
call fcn.1401084c4
lea rdx, [r12 - 0x900]
movss xmm1, dword [0x1401bab90]
mov eax, 1
movss xmm0, dword [rdx + rax*4]
xorps xmm0, xmm1
movss dword [rdx + rax*4], xmm0
add rax, 2
cmp rax, 0x13
jne 0x14010ae4e
add rdx, 0x90
cmp rdx, r12
jne 0x14010ae49
add qword [rsp + 0x48], 0x20
inc rbp
add r12, 0x900
jmp 0x14010ab9f
mov rax, qword [rsp + 0x30]
lea rdx, [rsp + 0x1010]
mov r8d, 0x12
lea rcx, [rax + 0x900]
lea rax, [rsp + 0x22b0]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x40]
mov r9d, dword [rax + 8]
call fcn.1401094f0
mov rax, qword [rsp + 0x40]
inc dword [rsp + 0x74]
imul eax, dword [rax + 8], 0x240
cdqe
add rax, rax
add qword [rsp + 0x50], rax
jmp 0x140109f39
test eax, eax
jle 0x14010aeff
movsxd rdx, edx
mov rdi, qword [rsp + 0x98]
mov ecx, eax
lea rsi, [rsp + rdx + 0x490]
rep movsb byte [rdi], byte [rsi]
mov rbx, qword [rsp + 0x30]
mov dword [rbx + 0x1800], eax
jmp 0x14010b437
mov rax, qword [rsp + 0x38]
xor r11d, r11d
mov al, byte [rax + 3]
mov r9d, eax
shr r9b, 6
cmp r9b, 3
je 0x14010af46
mov r11d, 0x20
cmp r9b, 1
jne 0x14010af46
shr al, 4
lea r11d, [rax*4]
and r11d, 0xc
add r11d, 4
mov eax, esi
mov ebx, 0x20
lea r14, [0x1401b9139]
and eax, 6
mov byte [rsp + 0x60], al
cmp al, 6
je 0x14010afe7
and esi, 8
mov ebx, 0x1e
lea r14, [0x1401b9130]
je 0x14010afe7
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x38]
mov al, byte [rax + 2]
mov r8d, eax
mov byte [rsp + 0x58], al
call fcn.140107ed5
shr r8b, 2
and r8d, 3
cmp r9b, 3
setne cl
shr eax, cl
test eax, eax
je 0x14010afc0
cmp eax, 0x37
ja 0x14010afc5
xor ebx, ebx
cmp r8b, 2
lea r14, [0x1401b9118]
sete bl
lea ebx, [rbx*4 + 8]
jmp 0x14010afe7
mov eax, 0xc0
cmp eax, 0x5f
jbe 0x14010afdb
dec r8b
mov ebx, 0x1e
lea r14, [0x1401b9120]
jne 0x14010afe7
mov ebx, 0x1b
lea r14, [0x1401b9120]
cmp ebx, r11d
lea rax, [rsp + 0xe0]
mov byte [rsp + 0x3fc], bl
lea rbp, [0x1401b9140]
cmovl r11d, ebx
mov qword [rsp + 0x58], rax
xor r12d, r12d
xor esi, esi
xor edi, edi
mov r13, rbp
movzx eax, r11b
mov byte [rsp + 0x3fd], r11b
mov dword [rsp + 0x38], eax
mov r15d, r12d
cmp edi, r12d
jne 0x14010b043
movzx eax, byte [r14 + 2]
movzx r9d, byte [r14]
add r14, 3
movzx esi, byte [r14 - 2]
add edi, eax
lea rbp, [r9 + r13]
mov rcx, qword [rsp + 0x58]
mov edx, esi
call fcn.140107dd0
mov eax, eax
mov al, byte [rbp + rax]
mov byte [rsp + r12*2 + 0x3fe], al
cmp dword [rsp + 0x38], r15d
jle 0x14010b078
mov rcx, qword [rsp + 0x58]
mov edx, esi
call fcn.140107dd0
mov eax, eax
mov al, byte [rbp + rax]
jmp 0x14010b080
xor edx, edx
test r11b, r11b
cmove eax, edx
mov byte [rsp + r12*2 + 0x3ff], al
inc r12
lea r15, [rsp + 0xfc]
cmp ebx, r12d
jg 0x14010b023
lea eax, [rbx + rbx]
xor esi, esi
lea rdi, [rsp + 0x3fe]
mov dword [rsp + 0x58], eax
cmp byte [rdi + rsi], 0
mov al, 6
je 0x14010b0cc
cmp byte [rsp + 0x60], 6
mov al, 2
je 0x14010b0cc
lea rcx, [rsp + 0xe0]
mov edx, 2
call fcn.140107dd0
mov byte [rsp + rsi + 0x43e], al
inc rsi
cmp dword [rsp + 0x58], esi
jg 0x14010b0a9
mov qword [rsp + 0x60], r15
mov r14, r15
xor r12d, r12d
lea r8, [rsp + 0x3fe]
movzx edi, byte [r8 + r12]
mov r13, r14
xor ebp, ebp
test edi, edi
je 0x14010b113
movzx ecx, byte [rsp + r12 + 0x43e]
mov ebp, 0x13
sar ebp, cl
and ebp, 3
add ebp, 4
xorps xmm0, xmm0
mov esi, 4
add r14, 0xc
test ebp, esi
je 0x14010b170
lea rcx, [rsp + 0xe0]
mov edx, 6
mov qword [rsp + 0x68], r8
call fcn.140107dd0
mov r10d, 3
lea ecx, [rdi + rdi*2]
lea r9, [0x1401b9040]
cdq
mov r8, qword [rsp + 0x68]
idiv r10d
mov r10d, 0x200000
lea edx, [rcx + rdx - 6]
mov ecx, eax
movsxd rdx, edx
sar r10d, cl
cvtsi2ss xmm0, r10d
mulss xmm0, dword [r9 + rdx*4]
add r13, 4
sar esi, 1
movss dword [r13 - 4], xmm0
cmp r13, r14
jne 0x14010b11f
inc r12
cmp dword [rsp + 0x58], r12d
jle 0x14010b193
mov r14, r13
jmp 0x14010b0ef
movzx r11d, r11b
cmp ebx, r11d
jle 0x14010b1aa
mov byte [rsp + r11*2 + 0x3ff], 0
inc r11
jmp 0x14010b197
lea rdx, [rsp + 0x1010]
xor eax, eax
mov ecx, 0x480
xor esi, esi
mov rdi, rdx
rep stosd dword [rdi], eax
lea rax, [r15 + 0xc]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x480]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x90]
mov dword [rsp + 0x88], 4
mov r12d, 0x240
lea r13, [rsp + 0x3fe]
mov eax, dword [rax + 0x10]
mov r11d, eax
mov dword [rsp + 0x68], eax
or r11d, 1
movsxd rax, r11d
shl rax, 2
mov qword [rsp + 0x80], rax
movsxd rax, esi
lea rbp, [rdi + rax*4 + 0xb90]
lea rax, [rsp + 0xe0]
mov r14, rbp
xor r15d, r15d
mov qword [rsp + 0x68], rax
movzx edx, byte [r13 + r15]
test edx, edx
jne 0x14010b265
movsxd rax, r12d
inc r15
lea r14, [r14 + rax*4]
mov eax, 0x12
sub eax, r12d
mov r12d, eax
cmp dword [rsp + 0x58], r15d
jg 0x14010b23a
jmp 0x14010b2f7
cmp edx, 0x10
jg 0x14010b2af
lea ecx, [rdx - 1]
mov edi, 1
shl edi, cl
lea eax, [rdi - 1]
xor edi, edi
mov dword [rsp + 0x74], eax
cmp r11d, edi
jle 0x14010b244
mov rcx, qword [rsp + 0x68]
mov dword [rsp + 0x98], edx
call fcn.140107dd0
mov edx, dword [rsp + 0x74]
sub eax, edx
mov edx, dword [rsp + 0x98]
cvtsi2ss xmm0, eax
movss dword [r14 + rdi*4], xmm0
inc rdi
jmp 0x14010b27d
lea ecx, [rdx - 0x11]
mov edx, 2
shl edx, cl
mov rcx, qword [rsp + 0x68]
lea edi, [rdx + 1]
add edx, 3
mov eax, edi
shr eax, 3
sub edx, eax
call fcn.140107dd0
mov r8d, edi
xor ecx, ecx
shr r8d, 1
cmp r11d, ecx
jle 0x14010b244
xor edx, edx
div edi
sub edx, r8d
cvtsi2ss xmm0, edx
movss dword [r14 + rcx*4], xmm0
inc rcx
jmp 0x14010b2d8
mov rax, qword [rsp + 0x80]
add rbp, rax
dec dword [rsp + 0x88]
jne 0x14010b227
lea esi, [rsi + r11*4]
cmp esi, 0xc
jne 0x14010b405
mov edi, dword [rsp + 0x38]
imul esi, dword [rsp + 0x38], 0x12
mov ecx, ebx
xor r8d, r8d
lea rbp, [rsp + 0x1010]
mov rax, qword [rsp + 0x60]
sub ecx, edi
imul ecx, ecx, 0x12
movsxd rsi, esi
shl rsi, 2
lea rdx, [rsp + rsi + 0x1910]
add rsi, rbp
movsxd rcx, ecx
mov rdi, rdx
shl rcx, 2
rep movsb byte [rdi], byte [rsi]
mov rcx, rbp
movss xmm1, dword [rax]
movss xmm0, dword [rax + 0xc]
mov rdx, rcx
lea r9, [rcx + 0x30]
movss xmm2, dword [rdx]
add rdx, 4
mulss xmm2, xmm1
movss dword [rdx - 4], xmm2
movss xmm2, dword [rdx + 0x8fc]
mulss xmm2, xmm0
movss dword [rdx + 0x8fc], xmm2
cmp r9, rdx
jne 0x14010b36d
inc r8d
add rcx, 0x48
add rax, 0x18
cmp ebx, r8d
jne 0x14010b35d
mov rax, qword [rsp + 0x30]
mov r8d, 0xc
mov rdx, rbp
xor esi, esi
mov rdi, rbp
lea rcx, [rax + 0x900]
lea rax, [rsp + 0x22b0]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x40]
mov r9d, dword [rax + 8]
call fcn.1401094f0
xor eax, eax
mov ecx, 0x480
rep stosd dword [rdi], eax
mov rax, qword [rsp + 0x40]
imul eax, dword [rax + 8], 0x180
cdqe
add rax, rax
add qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0xe8], eax
jg 0x140109e38
add qword [rsp + 0x60], 4
mov rdi, qword [rsp + 0x60]
cmp qword [rsp + 0x78], rdi
jne 0x14010b1d9
mov dword [rsp + 0x90], 1
mov rcx, qword [rsp + 0x30]
add rcx, 0x1808
call fcn.140107f40
mov edi, dword [rsp + 0x90]
imul edi, eax
mov eax, edi
jmp 0x14010b4a3
mov rdi, qword [rsp + 0x30]
xor eax, eax
mov ecx, 0x683
mov edx, esi
lea r9, [rsp + 0xd8]
rep stosd dword [rdi], eax
mov rax, qword [rsp + 0x30]
mov rcx, rbx
lea r8, [rax + 0x1804]
call fcn.140108ec2
mov edx, dword [rsp + 0xd8]
test edx, edx
je 0x14010b497
add edx, eax
cmp edx, esi
jle 0x140109cf5
mov rbx, qword [rsp + 0x40]
mov dword [rbx], eax
jmp 0x140109e44
movups xmm6, xmmword [rsp + 0x4400]
movups xmm7, xmmword [rsp + 0x4410]
add rsp, 0x4428
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret