Function at 0x140019f10
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub rsp, 0x28
cmp edx, 0x1d
je 0x140015345
cmp edx, 0x32
jne 0x140015356
cmp dword [rcx + 0x30], 1
jbe 0x140015339
cmp byte [rcx + 0x4db0], 0
jne 0x140015339
mov dl, r8b
add rsp, 0x28
jmp 0x140019f10
mov dl, r8b
add rsp, 0x28
jmp 0x14001922c
cmp byte [rcx + 0x4db0], 0
jne 0x140015356
mov dl, r8b
call fcn.140018164
add rsp, 0x28
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
xor r13d, r13d
mov byte [rcx + 0x4dd0], 1
mov rbx, rcx
cmp byte [rcx + 0x4dc0], r13b
jne 0x1400192bf
call fcn.1400177a4
mov rcx, rbx
call fcn.140017938
test al, al
je 0x140019acf
lea rbp, [rbx + 0xf0]
mov rcx, rbx
lea r15, [rbx + 8]
mov r8, rbp
mov rdx, r15
call fcn.14001644c
test al, al
je 0x140019acf
lea r9, [rbx + 0x104]
mov r8, rbp
mov rdx, r15
mov rcx, rbx
call fcn.140016b74
test al, al
je 0x140019acf
cmp byte [rbx + 0xe8a6], r13b
jne 0x1400192ca
jmp 0x140019acf
lea r15, [rcx + 8]
lea rbp, [rcx + 0xf0]
lea r12, [rbx + 0xd8]
mov rax, qword [rbx + 0xe970]
and qword [r12], rax
mov eax, dword [rbx + 0xec]
cmp dword [r15], eax
jl 0x140019356
mov edx, dword [rbx + 0xf8]
dec edx
add edx, dword [rbp]
cmp dword [r15], edx
jg 0x140019304
jne 0x140019346
mov eax, dword [rbx + 0xf4]
cmp dword [rbx + 0xc], eax
jl 0x140019346
cmp byte [rbx + 0x100], r13b
jne 0x140019ac7
mov r8, rbp
mov rdx, r15
mov rcx, rbx
call fcn.14001644c
test al, al
je 0x140019acf
lea r9, [rbx + 0x104]
mov r8, rbp
mov rdx, r15
mov rcx, rbx
call fcn.140016b74
test al, al
je 0x140019acf
jmp 0x1400192e7
mov rcx, rbx
call fcn.140017938
test al, al
je 0x140019ac7
mov rcx, qword [rbx + 0x4ba0]
mov rax, rcx
sub rax, qword [r12]
and rax, qword [rbx + 0xe970]
cmp rax, 0x1004
jae 0x1400193a2
cmp rcx, qword [r12]
je 0x1400193a2
mov rcx, rbx
call fcn.140017d5c
mov rax, qword [rbx + 0x4db8]
cmp qword [rbx + 0x4dc8], rax
jg 0x140019acf
cmp byte [rbx + 0x4dc0], r13b
jne 0x140019f02
movsxd r10, dword [r15]
mov ecx, 8
mov r14, qword [r15 + 0x10]
mov r11d, dword [r15 + 4]
sub ecx, r11d
movzx eax, byte [r10 + r14 + 1]
movzx edx, byte [r10 + r14]
shl edx, 8
or edx, eax
movzx eax, byte [r10 + r14 + 2]
shl edx, 8
or edx, eax
shr edx, cl
mov ecx, dword [rbx + 0x188]
and edx, 0xfffe
cmp edx, dword [rbx + rcx*4 + 0x108]
jae 0x14001941d
mov eax, 0x10
sub eax, ecx
mov cl, al
shr rdx, cl
movzx r8d, byte [rdx + rbx + 0x18c]
add r8d, r11d
mov eax, r8d
shr eax, 3
add r10d, eax
and r8d, 7
mov dword [r15], r10d
mov dword [r15 + 4], r8d
movzx eax, word [rbx + rdx*2 + 0x58c]
jmp 0x140019493
mov r9d, 0xf
inc ecx
cmp ecx, r9d
jae 0x14001944a
mov r8d, ecx
add r8, 0x42
lea r8, [rbx + r8*4]
cmp edx, dword [r8]
jb 0x140019447
inc ecx
add r8, 4
cmp ecx, r9d
jb 0x140019435
jmp 0x14001944a
mov r9d, ecx
lea r8d, [r11 + r9]
mov ecx, 0x10
mov eax, r8d
sub ecx, r9d
shr eax, 3
and r8d, 7
add r10d, eax
mov dword [r15 + 4], r8d
mov dword [r15], r10d
lea eax, [r9 - 1]
sub edx, dword [rbx + rax*4 + 0x108]
mov eax, r9d
shr edx, cl
add edx, dword [rbx + rax*4 + 0x148]
cmp edx, dword [rbx + 0x104]
sbb eax, eax
and eax, edx
movzx eax, word [rbx + rax*2 + 0xd8c]
movzx edi, ax
cmp edi, 0x100
jae 0x1400194df
cmp byte [rbx + 0x4db0], r13b
je 0x1400194c7
mov rdx, qword [r12]
lea rcx, [rbx + 0x4bb0]
lea rax, [rdx + 1]
mov qword [r12], rax
call fcn.14001428c
mov byte [rax], dil
jmp 0x1400192d1
mov rax, qword [r12]
mov rcx, qword [rbx + 0x4ba8]
mov byte [rcx + rax], dil
inc qword [r12]
jmp 0x1400192d1
cmp edi, 0x106
jb 0x140019a96
add edi, 0xfffffefa
cmp edi, 8
jae 0x1400194fb
add edi, 2
jmp 0x140019566
mov r9d, edi
and edi, 3
or edi, 4
shr r9d, 2
dec r9d
mov ecx, r9d
shl edi, cl
add edi, 2
test r9d, r9d
je 0x140019566
movsxd rcx, r10d
movzx eax, byte [rcx + r14 + 1]
movzx edx, byte [rcx + r14]
shl edx, 8
or edx, eax
movzx eax, byte [rcx + r14 + 2]
shl edx, 8
mov ecx, 8
or edx, eax
sub ecx, r8d
shr edx, cl
add r8d, r9d
mov eax, r8d
movzx edx, dx
shr eax, 3
mov ecx, 0x10
sub ecx, r9d
add r10d, eax
shr edx, cl
add edi, edx
mov dword [r15], r10d
and r8d, 7
mov dword [r15 + 4], r8d
movsxd rcx, r10d
movzx eax, byte [rcx + r14]
movzx edx, byte [rcx + r14 + 1]
shl eax, 8
or edx, eax
movzx eax, byte [rcx + r14 + 2]
shl edx, 8
mov ecx, 8
or edx, eax
sub ecx, r8d
shr edx, cl
mov ecx, dword [rbx + 0x1074]
and edx, 0xfffe
cmp edx, dword [rbx + rcx*4 + 0xff4]
jae 0x1400195d9
mov eax, 0x10
sub eax, ecx
mov cl, al
shr rdx, cl
movzx r11d, byte [rdx + rbx + 0x1078]
add r11d, r8d
mov esi, r11d
shr esi, 3
add esi, r10d
and r11d, 7
mov dword [r15], esi
mov dword [r15 + 4], r11d
movzx eax, word [rbx + rdx*2 + 0x1478]
jmp 0x14001964b
mov ebp, 0xf
inc ecx
cmp ecx, ebp
jae 0x140019605
mov r9d, ecx
add r9, 0x3fd
lea r9, [rbx + r9*4]
cmp edx, dword [r9]
jb 0x140019603
inc ecx
add r9, 4
cmp ecx, ebp
jb 0x1400195f2
jmp 0x140019605
mov ebp, ecx
lea r11d, [r8 + rbp]
mov ecx, 0x10
sub ecx, ebp
lea eax, [rbp - 1]
mov esi, r11d
and r11d, 7
mov dword [r15 + 4], r11d
shr esi, 3
add esi, r10d
mov dword [r15], esi
sub edx, dword [rbx + rax*4 + 0xff4]
mov eax, ebp
shr edx, cl
add edx, dword [rbx + rax*4 + 0x1034]
cmp edx, dword [rbx + 0xff0]
sbb eax, eax
and eax, edx
movzx eax, word [rbx + rax*2 + 0x1c78]
movzx eax, ax
mov r13d, esi
cmp eax, 4
jae 0x14001965f
lea r10d, [rax + 1]
jmp 0x14001985f
mov r9d, eax
and eax, 1
shr r9d, 1
or eax, 2
dec r9d
mov ecx, r9d
shl eax, cl
lea ebp, [rax + 1]
mov r10d, ebp
test r9d, r9d
je 0x14001985f
cmp r9d, 4
jb 0x1400197fa
jbe 0x1400196fe
movsxd r8, esi
mov ecx, 8
sub cl, byte [rbx + 0xc]
movzx eax, byte [r8 + r14]
movzx edx, byte [r8 + r14 + 1]
movzx r10d, byte [r8 + r14 + 4]
shr r10d, cl
mov ecx, r11d
shl eax, 8
add r11d, 0xfffffffc
or edx, eax
add r11d, r9d
movzx eax, byte [r8 + r14 + 2]
mov r13d, r11d
shl edx, 8
or edx, eax
shr r13d, 3
movzx eax, byte [r8 + r14 + 3]
add r13d, esi
shl edx, 8
or edx, eax
mov dword [r15], r13d
shl edx, cl
mov ecx, 0x24
or r10d, edx
sub ecx, r9d
shr r10d, cl
shl r10d, 4
add r10d, ebp
and r11d, 7
mov dword [r15 + 4], r11d
movsxd rdx, r13d
mov ecx, 8
sub ecx, r11d
movzx eax, byte [rdx + r14]
movzx r8d, byte [rdx + r14 + 1]
shl eax, 8
or r8d, eax
movzx eax, byte [rdx + r14 + 2]
shl r8d, 8
or r8d, eax
shr r8d, cl
mov ecx, dword [rbx + 0x1f60]
and r8d, 0xfffe
cmp r8d, dword [rbx + rcx*4 + 0x1ee0]
jae 0x140019777
mov eax, 0x10
mov edx, r8d
sub eax, ecx
mov cl, al
shr rdx, cl
movzx ecx, byte [rdx + rbx + 0x1f64]
add ecx, r11d
mov eax, ecx
shr eax, 3
add eax, r13d
and ecx, 7
mov dword [r15], eax
mov dword [r15 + 4], ecx
movzx eax, word [rbx + rdx*2 + 0x2364]
jmp 0x1400197f2
mov r9d, 0xf
inc ecx
cmp ecx, r9d
jae 0x1400197a6
mov edx, ecx
add rdx, 0x7b8
lea rdx, [rbx + rdx*4]
cmp r8d, dword [rdx]
jb 0x1400197a3
inc ecx
add rdx, 4
cmp ecx, r9d
jb 0x140019791
jmp 0x1400197a6
mov r9d, ecx
lea ecx, [r11 + r9]
mov eax, ecx
and ecx, 7
shr eax, 3
add eax, r13d
mov dword [r15 + 4], ecx
mov dword [r15], eax
mov ecx, 0x10
sub ecx, r9d
lea eax, [r9 - 1]
sub r8d, dword [rbx + rax*4 + 0x1ee0]
mov eax, r9d
shr r8d, cl
mov edx, dword [rbx + rax*4 + 0x1f20]
add edx, r8d
cmp edx, dword [rbx + 0x1edc]
sbb eax, eax
and eax, edx
movzx eax, word [rbx + rax*2 + 0x2b64]
movzx eax, ax
add r10d, eax
jmp 0x14001985f
movsxd r8, esi
mov ecx, 8
sub cl, byte [rbx + 0xc]
movzx eax, byte [r8 + r14]
movzx edx, byte [r8 + r14 + 1]
movzx r10d, byte [r8 + r14 + 4]
shr r10d, cl
mov ecx, r11d
shl eax, 8
or edx, eax
movzx eax, byte [r8 + r14 + 2]
shl edx, 8
or edx, eax
movzx eax, byte [r8 + r14 + 3]
shl edx, 8
or edx, eax
shl edx, cl
mov ecx, 0x20
sub ecx, r9d
or r10d, edx
shr r10d, cl
lea ecx, [r11 + r9]
mov eax, ecx
add r10d, ebp
shr eax, 3
add eax, esi
and ecx, 7
mov dword [r15], eax
mov dword [r15 + 4], ecx
cmp r10d, 0x100
jbe 0x140019880
inc edi
cmp r10d, 0x2000
jbe 0x140019880
inc edi
cmp r10d, 0x40000
jbe 0x140019880
inc edi
mov eax, dword [rbx + 0xc0]
xor r13d, r13d
mov dword [rbx + 0xc4], eax
mov eax, dword [rbx + 0xbc]
mov dword [rbx + 0xc0], eax
mov eax, dword [rbx + 0xb8]
mov dword [rbx + 0xbc], eax
mov dword [rbx + 0xb8], r10d
mov dword [rbx + 0xcc], edi
cmp byte [rbx + 0x4db0], r13b
je 0x1400198e2
mov rax, qword [rbx + 0xe970]
lea rcx, [rbx + 0x4bb0]
mov r9, r12
mov qword [rsp + 0x20], rax
mov r8d, r10d
mov edx, edi
call fcn.140014d34
jmp 0x140019a8a
mov rdx, qword [r12]
mov eax, r10d
mov r8, rdx
sub r8, rax
mov rax, qword [rbx + 0xe968]
add rax, 0xffffffffffffeffc
cmp r8, rax
jae 0x140019a47
cmp rdx, rax
jae 0x140019a47
mov rax, qword [rbx + 0x4ba8]
lea rsi, [rax + r8]
lea r14, [rdx + rax]
mov eax, edi
add rax, rdx
mov qword [r12], rax
cmp edi, 8
jb 0x1400199a7
cmp r10d, edi
jae 0x14001997f
mov ecx, edi
shr rcx, 3
mov al, byte [rsi]
add edi, 0xfffffff8
mov byte [r14], al
mov al, byte [rsi + 1]
mov byte [r14 + 1], al
mov al, byte [rsi + 2]
mov byte [r14 + 2], al
mov al, byte [rsi + 3]
mov byte [r14 + 3], al
mov al, byte [rsi + 4]
mov byte [r14 + 4], al
mov al, byte [rsi + 5]
mov byte [r14 + 5], al
mov al, byte [rsi + 6]
mov byte [r14 + 6], al
mov al, byte [rsi + 7]
add rsi, 8
mov byte [r14 + 7], al
add r14, 8
sub rcx, 1
jne 0x140019936
jmp 0x1400199a7
mov ebp, edi
shr rbp, 3
mov r8d, 8
mov rdx, rsi
mov rcx, r14
call fcn.140024920
add rsi, 8
add r14, 8
add edi, 0xfffffff8
sub rbp, 1
jne 0x140019985
lea rbp, [rbx + 0xf0]
test edi, edi
je 0x1400192d1
mov al, byte [rsi]
lea rbp, [rbx + 0xf0]
mov byte [r14], al
cmp edi, 1
jbe 0x1400192d1
mov al, byte [rsi + 1]
lea rbp, [rbx + 0xf0]
mov byte [r14 + 1], al
cmp edi, 2
jbe 0x1400192d1
mov al, byte [rsi + 2]
lea rbp, [rbx + 0xf0]
mov byte [r14 + 2], al
cmp edi, 3
jbe 0x1400192d1
mov al, byte [rsi + 3]
lea rbp, [rbx + 0xf0]
mov byte [r14 + 3], al
cmp edi, 4
jbe 0x1400192d1
mov al, byte [rsi + 4]
lea rbp, [rbx + 0xf0]
mov byte [r14 + 4], al
cmp edi, 5
jbe 0x1400192d1
mov al, byte [rsi + 5]
lea rbp, [rbx + 0xf0]
mov byte [r14 + 5], al
cmp edi, 6
jbe 0x1400192d1
mov al, byte [rsi + 6]
mov byte [r14 + 6], al
jmp 0x140019a8a
lea rbp, [rbx + 0xf0]
test edi, edi
je 0x1400192d1
mov rax, qword [rbx + 0xe970]
mov rcx, qword [rbx + 0x4ba8]
and rax, r8
inc r8
mov al, byte [rax + rcx]
mov byte [rdx + rcx], al
mov rdx, qword [r12]
mov rax, qword [rbx + 0xe970]
inc rdx
and rdx, rax
mov qword [r12], rdx
add edi, 0xffffffff
jne 0x140019a5d
lea rbp, [rbx + 0xf0]
jmp 0x1400192d1
cmp edi, 0x100
jne 0x140019aed
lea r8, [rsp + 0x30]
mov rdx, r15
mov rcx, rbx
call fcn.140016638
test al, al
je 0x140019ac7
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140014524
test al, al
jne 0x1400192d1
mov rcx, rbx
call fcn.140017d5c
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
cmp edi, 0x101
jne 0x140019c46
mov edi, dword [rbx + 0xcc]
test edi, edi
je 0x1400192d1
cmp byte [rbx + 0x4db0], r13b
je 0x140019b39
mov r8d, dword [rbx + 0xb8]
mov rax, qword [rbx + 0xe970]
lea rcx, [rbx + 0x4bb0]
mov r9, r12
mov qword [rsp + 0x20], rax
mov edx, edi
call fcn.140014d34
jmp 0x1400192d1
mov rdx, qword [r12]
mov ecx, dword [rbx + 0xb8]
mov r8, rdx
mov rax, qword [rbx + 0xe968]
sub r8, rcx
add rax, 0xffffffffffffeffc
cmp r8, rax
jae 0x140019c0d
cmp rdx, rax
jae 0x140019c0d
mov rax, qword [rbx + 0x4ba8]
lea rsi, [rax + r8]
lea r14, [rdx + rax]
lea rax, [rdx + rdi]
mov qword [r12], rax
cmp edi, 8
jb 0x1400199a7
cmp ecx, edi
jae 0x140019bdf
mov rcx, rdi
shr rcx, 3
mov al, byte [rsi]
add edi, 0xfffffff8
mov byte [r14], al
mov al, byte [rsi + 1]
mov byte [r14 + 1], al
mov al, byte [rsi + 2]
mov byte [r14 + 2], al
mov al, byte [rsi + 3]
mov byte [r14 + 3], al
mov al, byte [rsi + 4]
mov byte [r14 + 4], al
mov al, byte [rsi + 5]
mov byte [r14 + 5], al
mov al, byte [rsi + 6]
mov byte [r14 + 6], al
mov al, byte [rsi + 7]
add rsi, 8
mov byte [r14 + 7], al
add r14, 8
sub rcx, 1
jne 0x140019b93
jmp 0x1400199a7
mov rbp, rdi
shr rbp, 3
mov r8d, 8
mov rdx, rsi
mov rcx, r14
call fcn.140024920
add rsi, 8
add r14, 8
add edi, 0xfffffff8
sub rbp, 1
jne 0x140019be6
jmp 0x1400199a7
mov rax, qword [rbx + 0xe970]
mov rcx, qword [rbx + 0x4ba8]
and rax, r8
inc r8
mov al, byte [rax + rcx]
mov byte [rdx + rcx], al
mov rdx, qword [r12]
mov rax, qword [rbx + 0xe970]
inc rdx
and rdx, rax
mov qword [r12], rdx
add edi, 0xffffffff
jne 0x140019c14
jmp 0x1400192d1
add edi, 0xfffffefe
lea rdx, [rbx + 0xb8]
lea rdx, [rdx + rdi*4]
mov r11d, dword [rdx]
je 0x140019c6e
sub edi, 1
mov ecx, dword [rbx + rdi*4 + 0xb8]
mov dword [rdx], ecx
lea rdx, [rdx - 4]
jne 0x140019c5c
mov rsi, qword [r15 + 0x10]
mov ecx, 8
mov dword [rbx + 0xb8], r11d
movsxd r10, dword [r15]
mov edi, dword [r15 + 4]
sub ecx, edi
movzx eax, byte [r10 + rsi]
movzx edx, byte [r10 + rsi + 1]
shl eax, 8
or edx, eax
movzx eax, byte [r10 + rsi + 2]
shl edx, 8
or edx, eax
shr edx, cl
mov ecx, dword [rbx + 0x2e4c]
and edx, 0xfffe
cmp edx, dword [rbx + rcx*4 + 0x2dcc]
jae 0x140019cef
mov eax, 0x10
sub eax, ecx
mov cl, al
shr rdx, cl
movzx r8d, byte [rdx + rbx + 0x2e50]
add r8d, edi
mov eax, r8d
shr eax, 3
add r10d, eax
and r8d, 7
mov dword [r15], r10d
mov dword [r15 + 4], r8d
movzx eax, word [rbx + rdx*2 + 0x3250]
jmp 0x140019d68
mov r9d, 0xf
inc ecx
cmp ecx, r9d
jae 0x140019d1f
mov r8d, ecx
add r8, 0xb73
lea r8, [rbx + r8*4]
cmp edx, dword [r8]
jb 0x140019d1c
inc ecx
add r8, 4
cmp ecx, r9d
jb 0x140019d0a
jmp 0x140019d1f
mov r9d, ecx
lea r8d, [rdi + r9]
mov ecx, 0x10
mov eax, r8d
sub ecx, r9d
shr eax, 3
and r8d, 7
add r10d, eax
mov dword [r15 + 4], r8d
mov dword [r15], r10d
lea eax, [r9 - 1]
sub edx, dword [rbx + rax*4 + 0x2dcc]
mov eax, r9d
shr edx, cl
add edx, dword [rbx + rax*4 + 0x2e0c]
cmp edx, dword [rbx + 0x2dc8]
sbb eax, eax
and eax, edx
movzx eax, word [rbx + rax*2 + 0x3a50]
movzx edi, ax
cmp edi, 8
jae 0x140019d75
add edi, 2
jmp 0x140019ddc
mov r9d, edi
and edi, 3
or edi, 4
shr r9d, 2
dec r9d
mov ecx, r9d
shl edi, cl
add edi, 2
test r9d, r9d
je 0x140019ddc
movsxd rcx, r10d
movzx eax, byte [rcx + rsi + 1]
movzx edx, byte [rcx + rsi]
shl edx, 8
or edx, eax
movzx eax, byte [rcx + rsi + 2]
shl edx, 8
mov ecx, 8
or edx, eax
sub ecx, r8d
shr edx, cl
mov ecx, 0x10
sub ecx, r9d
movzx edx, dx
shr edx, cl
lea ecx, [r9 + r8]
mov eax, ecx
add edi, edx
shr eax, 3
add eax, r10d
and ecx, 7
mov dword [r15], eax
mov dword [r15 + 4], ecx
mov dword [rbx + 0xcc], edi
cmp byte [rbx + 0x4db0], r13b
je 0x140019df3
mov r8d, r11d
jmp 0x140019b17
mov rdx, qword [r12]
mov rax, qword [rbx + 0xe968]
mov r8, rdx
sub r8, r11
add rax, 0xffffffffffffeffc
cmp r8, rax
jae 0x140019ec1
cmp rdx, rax
jae 0x140019ec1
mov rax, qword [rbx + 0x4ba8]
lea rsi, [rax + r8]
lea r14, [rdx + rax]
mov eax, edi
add rax, rdx
mov qword [r12], rax
cmp edi, 8
jb 0x1400199a7
cmp r11d, edi
jae 0x140019e94
mov ecx, edi
shr rcx, 3
mov al, byte [rsi]
add edi, 0xfffffff8
mov byte [r14], al
mov al, byte [rsi + 1]
mov byte [r14 + 1], al
mov al, byte [rsi + 2]
mov byte [r14 + 2], al
mov al, byte [rsi + 3]
mov byte [r14 + 3], al
mov al, byte [rsi + 4]
mov byte [r14 + 4], al
mov al, byte [rsi + 5]
mov byte [r14 + 5], al
mov al, byte [rsi + 6]
mov byte [r14 + 6], al
mov al, byte [rsi + 7]
add rsi, 8
mov byte [r14 + 7], al
add r14, 8
sub rcx, 1
jne 0x140019e48
jmp 0x1400199a7
mov ebp, edi
shr rbp, 3
mov r8d, 8
mov rdx, rsi
mov rcx, r14
call fcn.140024920
add rsi, 8
add r14, 8
add edi, 0xfffffff8
sub rbp, 1
jne 0x140019e9a
jmp 0x1400199a7
test edi, edi
je 0x1400192d1
mov rax, qword [rbx + 0xe970]
mov rcx, qword [rbx + 0x4ba8]
and rax, r8
inc r8
mov al, byte [rax + rcx]
mov byte [rcx + rdx], al
mov rdx, qword [r12]
mov rax, qword [rbx + 0xe970]
inc rdx
and rdx, rax
mov qword [r12], rdx
add edi, 0xffffffff
jne 0x140019ed0
jmp 0x1400192d1
mov byte [rbx + 0x4dd0], r13b
jmp 0x140019acf
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x430
mov bl, dl
mov rsi, rcx
call fcn.1400159dc
mov dl, bl
mov rcx, rsi
call fcn.1400177a4
mov eax, dword [rsi + 0x30]
lea r15, [rsi + 0x28]
xor ebx, ebx
mov edx, ebx
add eax, eax
je 0x140019f6d
mov eax, edx
inc edx
imul rcx, rax, 0x4af8
add rcx, qword [r15]
mov byte [rcx + 0x4add], bl
mov byte [rcx + 0x4adf], bl
mov eax, dword [rsi + 0x30]
add eax, eax
cmp edx, eax
jb 0x140019f4a
mov rcx, qword [r15]
lea rdx, [rsi + 0x104]
movups xmm0, xmmword [rsi + 0xf0]
mov r8d, 0x4a9c
movups xmmword [rcx + 0x24], xmm0
mov eax, dword [rsi + 0x100]
mov dword [rcx + 0x34], eax
mov rcx, qword [r15]
add rcx, 0x3c
call fcn.140024920
mov dword [rsp + 0x24], ebx
mov r13d, ebx
mov byte [rsp + 0x480], bl
mov byte [rsp + 0x470], bl
mov r14d, ebx
mov rcx, qword [rsi]
mov eax, 0x400000
sub eax, r14d
movsxd rdx, r14d
add rdx, qword [rsi + 0x38]
movsxd r8, eax
and r8, 0xfffffffffffffff0
call fcn.14000e4a0
xor ecx, ecx
mov dword [rsp + 0x20], eax
mov edi, eax
test eax, eax
js 0x14001a2f3
add r14d, eax
mov dword [rsp + 0x28], r14d
je 0x14001a2f3
test eax, eax
jle 0x14001a002
cmp r14d, 0x400
jl 0x14001a2e6
cmp r13d, r14d
jge 0x14001a2e6
mov eax, dword [rsi + 0x30]
mov r12d, ecx
mov dword [rsp + 0x488], ecx
mov ebp, ecx
add eax, eax
je 0x14001a136
mov eax, r12d
imul rbx, rax, 0x4af8
mov dword [rsp + 0x24], r12d
add rbx, qword [r15]
lea rbp, [rbx + 8]
mov qword [rbx], rsi
cmp byte [rbx + 0x4adf], cl
je 0x14001a04c
mov dword [rbx + 0x4ad8], r14d
jmp 0x14001a07f
movsxd rdx, r13d
mov rcx, rbp
add rdx, qword [rsi + 0x38]
call fcn.14000bac4
xor ecx, ecx
mov eax, r14d
sub eax, r13d
mov qword [rbp], rcx
mov dword [rbx + 0x4ad8], eax
je 0x14001a12f
mov byte [rbx + 0x4adc], cl
mov byte [rbx + 0x20], cl
mov byte [rbx + 0x38], cl
test edi, edi
mov byte [rbx + 0x4adf], cl
mov dword [rbx + 0x4af0], r12d
lea rdi, [rbx + 0x24]
sete al
mov byte [rbx + 0x4ade], al
cmp byte [rbx + 0x20], cl
jne 0x14001a0cc
mov r8, rdi
mov byte [rbx + 0x20], 1
mov rdx, rbp
mov rcx, rsi
call fcn.14001644c
xor ecx, ecx
test al, al
je 0x14001a127
cmp byte [rbx + 0x35], cl
jne 0x14001a0c5
cmp byte [rsi + 0xe8a6], cl
je 0x14001a127
mov byte [rsi + 0xe8a6], 1
cmp byte [rsp + 0x480], cl
jne 0x14001a0e6
cmp dword [rdi], 0x20000
jg 0x14001a0e6
inc dword [rsp + 0x488]
jmp 0x14001a0f5
mov byte [rbx + 0x4add], 1
mov byte [rsp + 0x480], 1
mov eax, dword [rbx + 0x30]
inc r12d
add eax, dword [rdi]
add r13d, eax
mov eax, r14d
sub eax, r13d
js 0x14001a10d
cmp byte [rbx + 0x34], cl
jne 0x14001a12f
cmp eax, 0x400
jl 0x14001a12f
mov eax, dword [rsi + 0x30]
add eax, eax
cmp r12d, eax
jae 0x14001a12f
mov edi, dword [rsp + 0x20]
jmp 0x14001a022
mov byte [rsp + 0x470], 1
mov ebp, dword [rsp + 0x488]
xor edx, edx
mov eax, ebp
div dword [rsi + 0x30]
xor edx, edx
mov edi, eax
mov eax, ebp
div dword [rsi + 0x30]
test edx, edx
je 0x14001a14c
inc edi
mov ebx, ecx
test ebp, ebp
je 0x14001a1b0
mov r14d, ecx
mov eax, r14d
lea r8, [rsp + 0x30]
shl rax, 4
inc r14d
add r8, rax
mov eax, ebx
imul rdx, rax, 0x4af8
mov eax, ebp
add rdx, qword [r15]
sub eax, ebx
cmp edi, eax
mov qword [r8], rdx
cmovb eax, edi
mov dword [r8 + 8], eax
cmp r12d, 1
jne 0x14001a193
mov rcx, rsi
call fcn.14001a384
jmp 0x14001a1a3
mov rcx, qword [rsi + 0x20]
lea rdx, [0x14001ac70]
call fcn.140012bf8
add ebx, edi
cmp ebx, ebp
jb 0x14001a155
mov r14d, dword [rsp + 0x28]
xor ecx, ecx
test r12d, r12d
je 0x14001a2e6
mov rcx, qword [rsi + 0x20]
call fcn.140012ef8
xor ecx, ecx
mov edi, ecx
test r12d, r12d
je 0x14001a238
mov ebx, ecx
mov rbp, qword [r15]
add rbp, rbx
cmp byte [rbp + 0x4add], cl
jne 0x14001a1f8
mov rdx, rbp
mov rcx, rsi
call fcn.140015e00
xor ecx, ecx
test al, al
je 0x14001a2f3
cmp byte [rbp + 0x4add], cl
je 0x14001a20d
mov rdx, rbp
mov rcx, rsi
call fcn.14001acb0
xor ecx, ecx
test al, al
je 0x14001a2f3
cmp byte [rbp + 0x4adc], cl
jne 0x14001a2f3
cmp byte [rbp + 0x4adf], cl
jne 0x14001a269
cmp byte [rbp + 0x34], cl
jne 0x14001a2f3
inc edi
add rbx, 0x4af8
cmp edi, r12d
jb 0x14001a1cd
cmp byte [rsp + 0x470], cl
jne 0x14001a2f3
mov ebx, r14d
sub ebx, r13d
cmp ebx, 0x400
jl 0x14001a362
cmp r13d, r14d
jge 0x140019fb5
mov edi, dword [rsp + 0x20]
jmp 0x14001a00b
mov eax, dword [rbp + 8]
sub eax, dword [rsi + 0x38]
add eax, dword [rbp + 0x18]
cmp r14d, eax
jle 0x14001a2f3
mov rcx, qword [rsi + 0x38]
sub r14d, eax
movsxd rdx, eax
movsxd r8, r14d
add rdx, rcx
call fcn.140024920
mov eax, dword [rbp + 0x2c]
xor ecx, ecx
sub eax, dword [rbp + 8]
add dword [rbp + 0x24], eax
mov qword [rbp + 0x2c], rcx
mov rax, qword [rsi + 0x38]
mov qword [rbp + 0x18], rax
mov dword [rbp + 8], ecx
test edi, edi
je 0x14001a2e3
mov rcx, qword [r15]
mov r8d, 0x4af8
mov rdx, rbp
mov rbx, qword [rcx + 0x4ae0]
mov edi, dword [rcx + 0x4aec]
call fcn.140024920
mov rax, qword [r15]
xor ecx, ecx
mov qword [rax + 0x4ae0], rbx
mov rax, qword [r15]
mov dword [rax + 0x4aec], edi
mov byte [rbp + 0x4adf], cl
mov r13d, ecx
cmp byte [rsp + 0x470], cl
je 0x140019fb5
mov rax, qword [rsi + 0xe970]
mov rcx, rsi
and qword [rsi + 0xd8], rax
call fcn.140017d5c
mov rdx, qword [r15]
mov r8d, 0x4a9c
mov ecx, dword [rsp + 0x24]
imul r9, rcx, 0x4af8
lea rcx, [rsi + 0x104]
movups xmm0, xmmword [r9 + rdx + 0x24]
movups xmmword [rsi + 0xf0], xmm0
mov eax, dword [r9 + rdx + 0x34]
add r9, 0x3c
add rdx, r9
mov dword [rsi + 0x100], eax
mov rbx, qword [rsp + 0x478]
add rsp, 0x430
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
jmp fcn.140024920
test ebx, ebx
js 0x14001a2f3
jle 0x14001a37c
mov rcx, qword [rsi + 0x38]
movsxd rdx, r13d
add rdx, rcx
movsxd r8, ebx
call fcn.140024920
xor ecx, ecx
mov r13d, ecx
jmp 0x140019fb2