Function at 0x3a98ab8e0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
mov qword [rsp + 0x140], rcx
mov r15d, r8d
mov rsi, r9
mov qword [rsp + 0x148], rdx
cmp r8d, 1
je 0x3a98ac297
cmp r8d, 2
je 0x3a98ac261
test r8d, r8d
je 0x3a98ac1ea
lea rdi, [r9 + 8]
mov rcx, r9
xor eax, eax
mov qword [r9], 0
and rdi, 0xfffffffffffffff8
xor edx, edx
lea r14d, [r15 - 1]
mov r8d, 0x40000
sub rcx, rdi
lea r11, [r9 + 0x400]
mov qword [r9 + 0x3f8], 0
add ecx, 0x400
shr ecx, 3
rep stosq qword [rdi], rax
mov rcx, r11
call fcn.3a98f1988
movsxd r9, r15d
mov rbx, qword [rsp + 0x140]
mov r11, rax
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x98], r9
lea rax, [rax + r9 - 1]
mov qword [rsp + 0xc0], rax
movzx edx, byte [rax]
mov eax, r14d
mov ebp, r9d
test eax, eax
js 0x3a98ab9d9
movsxd rcx, eax
lea r8, [rbx + rcx - 1]
jmp 0x3a98ab9ca
movzx ecx, byte [r8]
sub r8, 1
cmp edx, ecx
jg 0x3a98ac1fe
mov edx, ecx
movsxd rcx, edx
mov r10d, eax
add dword [rsi + rcx*4], 1
sub eax, 1
jae 0x3a98ab9b8
mov ecx, dword [rsi]
mov dword [rsi], 0
mov ebx, r15d
xor r8d, r8d
sub ebx, ebp
add ecx, dword [rsi + 0x400]
mov r10d, 1
xor r9d, r9d
nop dword [rax + rax]
lea r12d, [r10 - 1]
mov edi, r10d
mov eax, r10d
nop word [rax + rax]
mov edx, eax
or edx, r9d
movsxd rdx, edx
lea rdx, [r11 + rdx*4]
add r8d, dword [rdx]
mov dword [rdx], r8d
mov edx, eax
add eax, 1
shl edx, 8
or edx, r12d
add ecx, dword [r11 + rdx*4]
cmp eax, 0x100
jne 0x3a98aba10
mov edx, dword [rsi + r10*4]
add r9d, 0x100
or edi, r9d
add edx, ecx
movsxd rax, edi
add ecx, r8d
mov dword [rsi + r10*4], ecx
mov ecx, dword [r11 + rax*4]
add r10, 1
add ecx, edx
cmp r9d, 0xff00
jne 0x3a98aba00
test ebx, ebx
jle 0x3a98ac123
mov rdx, qword [rsp + 0x98]
movsxd rax, ebx
mov rdi, qword [rsp + 0x148]
mov r8, qword [rsp + 0x140]
sub rdx, rax
lea rdi, [rdi + rdx*4]
mov qword [rsp + 0x50], rdi
lea rdi, [rax*4]
mov rax, qword [rsp + 0x148]
add rax, rdi
mov qword [rsp + 0x78], rax
lea eax, [rbx - 2]
movsxd rdx, eax
cmp eax, 0xffffffff
je 0x3a98abaf3
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + rdx*4]
movzx eax, byte [r8 + rcx + 1]
movzx ecx, byte [r8 + rcx]
shl ecx, 8
or eax, ecx
cdqe
lea rcx, [r11 + rax*4]
mov eax, dword [rcx]
sub eax, 1
mov dword [rcx], eax
mov rcx, qword [rsp + 0x148]
cdqe
mov dword [rcx + rax*4], edx
sub rdx, 1
cmp edx, 0xffffffff
jne 0x3a98abab7
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x140]
lea r10d, [rbx - 1]
mov dword [rsp + 0x74], ebx
mov dword [rsp + 0x88], 0xfe
movsxd rdx, dword [rax + rdi - 4]
mov rax, qword [rsp + 0x140]
mov dword [rsp + 0x94], r10d
mov dword [rsp + 0x150], r15d
movzx eax, byte [rax + rdx + 1]
movzx edx, byte [rcx + rdx]
mov qword [rsp + 0x158], rsi
mov rcx, qword [rsp + 0x148]
mov qword [rsp + 0x80], r11
shl edx, 8
or eax, edx
cdqe
lea rdx, [r11 + rax*4]
mov eax, dword [rdx]
sub eax, 1
mov dword [rdx], eax
cdqe
mov dword [rcx + rax*4], r10d
lea eax, [rbx + rbx]
mov ecx, r15d
sub ecx, eax
mov dword [rsp + 0x8c], ecx
mov eax, dword [rsp + 0x88]
mov r10d, 0xff
mov qword [rsp + 0xd0], rdi
mov dword [rsp + 0xcc], r14d
mov r12, qword [rsp + 0x140]
mov edi, r10d
shl eax, 8
mov dword [rsp + 0xd8], ebx
mov dword [rsp + 0x90], eax
mov dword [rsp + 0xdc], ebp
jmp 0x3a98abbcc
mov eax, dword [rsp + 0x88]
sub edi, 1
cmp edi, eax
je 0x3a98abcef
mov eax, dword [rsp + 0x90]
mov rsi, qword [rsp + 0x80]
movsxd rdx, dword [rsp + 0x74]
or eax, edi
cdqe
mov esi, dword [rsi + rax*4]
mov eax, edx
sub eax, esi
mov dword [rsp + 0x74], esi
cmp eax, 1
jle 0x3a98abbba
movsxd rax, esi
mov rsi, qword [rsp + 0x148]
lea rax, [rsi + rax*4]
lea rsi, [rsi + rdx*4]
mov ecx, dword [rax]
mov rbx, rax
cmp dword [rsp + 0x94], ecx
lea rax, [rax + 4]
cmovne rax, rbx
mov r8, rsi
mov qword [rsp + 0x58], rsi
mov dword [rsp + 0xbc], ecx
mov qword [rsp + 0x68], rax
mov rbx, rax
sub r8, rax
movsxd rax, dword [rsp + 0x8c]
cmp eax, 0x3ff
jg 0x3a98ac328
mov r9, r8
sar r9, 2
cmp rax, r9
jl 0x3a98ac8b8
mov rdx, qword [rsp + 0x50]
mov r9, rsi
mov r8, rbx
mov rcx, r12
call fcn.3a98aa700
mov esi, dword [rsp + 0xbc]
cmp dword [rsp + 0x94], esi
jne 0x3a98abbba
mov rsi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x50]
movsxd rax, dword [rsi - 4]
mov rdx, rax
movsxd rax, dword [rbx + rax*4]
lea r10, [rax + 2]
mov rax, qword [rsp + 0x98]
lea rcx, [r12 + rax]
mov rax, qword [rsp + 0x58]
cmp rsi, rax
jae 0x3a98abcd5
mov r9, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x58]
mov ebx, dword [r9]
test ebx, ebx
jns 0x3a98ac2b0
mov dword [r9 - 4], ebx
add r9, 4
cmp r9, rsi
jb 0x3a98abcb8
mov qword [rsp + 0x68], r9
mov rax, qword [rsp + 0x68]
sub edi, 1
mov dword [rax - 4], edx
mov eax, dword [rsp + 0x88]
cmp edi, eax
jne 0x3a98abbcc
mov r10d, edi
mov r15d, dword [rsp + 0x74]
mov r14d, dword [rsp + 0xcc]
lea eax, [r10 - 1]
mov ebx, dword [rsp + 0xd8]
mov rdi, qword [rsp + 0xd0]
mov dword [rsp + 0x88], eax
mov ebp, dword [rsp + 0xdc]
test r15d, r15d
jg 0x3a98abb78
mov r10d, dword [rsp + 0x94]
mov r15d, dword [rsp + 0x150]
mov rsi, qword [rsp + 0x158]
mov r11, qword [rsp + 0x80]
mov r9, qword [rsp + 0x78]
mov r8, qword [rsp + 0x148]
mov edx, r10d
movsxd rcx, edx
lea rax, [r8 + rcx*4]
mov r13d, dword [rax]
test r13d, r13d
jns 0x3a98ac994
mov eax, dword [r8 + rcx*4]
mov r12, rcx
not eax
mov dword [r8 + rcx*4], eax
cdqe
sub rcx, 1
mov dword [r9 + rax*4], edx
movsxd rax, dword [r8 + rcx*4]
test eax, eax
js 0x3a98abd6c
mov dword [r9 + rax*4], edx
mov edx, r12d
sub edx, 2
jns 0x3a98abd59
cmp ebx, 0xffff
jle 0x3a98aca8b
mov eax, ebx
cmp ebx, 0xffffff
ja 0x3a98acb62
sar eax, 0x10
lea rcx, [0x3a9963780]
cdqe
mov eax, dword [rcx + rax*4]
add eax, 0x10
add eax, eax
sub ebp, r15d
mov dword [rsp + 0xe8], ebx
movsxd rdx, eax
sar eax, 0x1f
mov dword [rsp + 0xe4], ebx
mov r12d, ebp
imul rdx, rdx, 0x55555556
shr rdx, 0x20
sub edx, eax
mov rax, qword [rsp + 0x78]
mov dword [rsp + 0xe0], edx
lea r13, [rax + 4]
mov rax, qword [rsp + 0x148]
mov edx, dword [rax]
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x48], rax
cmp ebp, edx
jge 0x3a98abf02
mov dword [rsp + 0x40], r10d
mov r8, qword [rsp + 0x148]
mov rbp, rdi
mov dword [rsp + 0x150], r15d
mov qword [rsp + 0x158], rsi
mov rsi, qword [rsp + 0x78]
xor edi, edi
xor eax, eax
mov r15d, r12d
mov qword [rsp + 0x50], r11
mov ecx, eax
mov r12d, edi
mov rax, r13
mov rbx, r8
mov r13, rbp
mov rdi, rsi
mov rbp, r8
jmp 0x3a98abe97
test ecx, ecx
je 0x3a98abe6c
movsxd rdx, ecx
mov dword [rbx + rdx*4], ecx
movsxd rdx, dword [rdi + r8*4]
lea rsi, [rbp + rdx*4 + 4]
mov rdx, rsi
sub rdx, rbx
cmp rdx, 4
jg 0x3a98acab0
sete cl
mov rbx, rsi
movzx ecx, cl
neg ecx
cmp rbx, rdi
jae 0x3a98abeb0
mov edx, dword [rbx]
movsxd r8, edx
lea r9, [r8*4]
test edx, edx
jns 0x3a98abe62
sub rbx, r9
add ecx, edx
cmp rbx, rdi
jb 0x3a98abe95
mov rsi, rdi
mov r8, rbp
mov edi, r12d
mov rbp, r13
mov r11, qword [rsp + 0x50]
mov r12d, r15d
mov r13, rax
test ecx, ecx
je 0x3a98abed1
movsxd rdx, ecx
mov dword [rbx + rdx*4], ecx
test edi, edi
je 0x3a98abeea
mov rax, r13
mov edx, dword [r8]
sub rax, rsi
add r13, rax
cmp r12d, edx
jl 0x3a98abe40
mov r10d, dword [rsp + 0x40]
mov r15d, dword [rsp + 0x150]
mov rdi, rbp
mov rsi, qword [rsp + 0x158]
mov rax, qword [rsp + 0xc0]
mov r8, qword [rsp + 0x78]
mov r9d, r14d
mov rbx, qword [rsp + 0x140]
movzx edx, byte [rax]
add r8, rdi
test r9d, r9d
js 0x3a98abf4e
lea eax, [r9 - 1]
je 0x3a98abf4e
cdqe
jmp 0x3a98abf39
sub rax, 1
cmp eax, 0xffffffff
je 0x3a98abf4e
mov ecx, edx
movzx edx, byte [rbx + rax]
cmp edx, ecx
jge 0x3a98abf30
mov ecx, eax
cmp eax, 0xffffffff
jne 0x3a98acb17
mov rax, qword [rsp + 0x148]
mov dword [rsp + 0x48], r14d
mov edi, 0xfe
mov dword [rsi + 0x403fc], r15d
mov dword [rsp + 0x150], r15d
lea r13, [rax - 4]
mov r15, rax
lea ecx, [rdi + 1]
mov eax, dword [rsi + rdi*4 + 4]
mov r12d, edi
mov r14d, edi
mov dword [rsp + 0x40], ecx
shl r12d, 8
mov edx, 0xff
lea r9d, [rax - 1]
nop dword [rax]
mov eax, edx
mov ebx, r9d
shl eax, 8
or eax, r14d
cdqe
lea rax, [r11 + rax*4]
sub ebx, dword [rax]
mov dword [rax], r9d
mov eax, r12d
or eax, edx
cdqe
mov ecx, dword [r11 + rax*4]
cmp ecx, r10d
jg 0x3a98acafd
movsxd rbp, r10d
mov r8d, r10d
lea rax, [rbp*4]
sub r8d, ecx
shl r8, 2
lea r9, [r15 + rax]
add rax, r13
sub rax, r8
movsxd r8, ebx
sub r8, rbp
nop word [rax + rax]
mov ebp, dword [r9]
mov dword [r9 + r8*4], ebp
sub r9, 4
cmp rax, r9
jne 0x3a98abff0
mov eax, ecx
sub eax, r10d
lea r10d, [rcx - 1]
lea r9d, [rbx + rax - 1]
sub edx, 1
cmp edx, edi
jne 0x3a98abf98
or r14d, r12d
mov ecx, dword [rsp + 0x40]
movsxd rdx, r14d
lea rbx, [r11 + rdx*4]
or r12d, ecx
mov ecx, r9d
sub ecx, dword [rbx]
movsxd rdx, r12d
add ecx, 1
mov dword [r11 + rdx*4], ecx
mov dword [rbx], r9d
sub rdi, 1
jae 0x3a98abf76
mov r15d, dword [rsp + 0x150]
mov r13, qword [rsp + 0x140]
mov r8d, 0xfe
mov r14, qword [rsp + 0x148]
mov r9d, r15d
mov r15d, r8d
lea eax, [r8 + 1]
xor r10d, r10d
mov ecx, 0xffffffff
shl r15d, 8
or eax, r15d
cdqe
movsxd rax, dword [r11 + rax*4]
lea r12, [r14 + rax*4]
movsxd rax, dword [rsi + r8*4 + 4]
lea rax, [r14 + rax*4 - 4]
cmp rax, r12
jb 0x3a98ac111
mov qword [rsp + 0x40], r8
nop word [rax + rax]
mov edx, dword [rax]
mov r8d, edx
not r8d
mov dword [rax], r8d
test edx, edx
jle 0x3a98ac103
lea r8d, [rdx - 1]
movsxd rdi, r8d
movzx ebx, byte [r13 + rdi]
test r8d, r8d
je 0x3a98ac0cd
cmp bl, byte [r13 + rdi - 1]
jae 0x3a98ac0cd
neg edx
mov r8d, edx
mov rdx, r10
cmp ebx, ecx
je 0x3a98ac0fc
cmp ecx, 0xffffffff
je 0x3a98ac0ea
or ecx, r15d
sub r10, r14
movsxd rdx, ecx
sar r10, 2
mov dword [r11 + rdx*4], r10d
mov edx, r15d
mov ecx, ebx
or edx, ebx
movsxd rdx, edx
movsxd rdx, dword [r11 + rdx*4]
lea rdx, [r14 + rdx*4]
mov dword [rdx], r8d
lea r10, [rdx - 4]
sub rax, 4
cmp rax, r12
jae 0x3a98ac0a0
mov r8, qword [rsp + 0x40]
sub r8, 1
jae 0x3a98ac063
mov r14d, dword [rsp + 0x48]
mov r15d, r9d
mov rax, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x98]
movzx eax, byte [rax]
cmp byte [rdi + rbx - 2], al
jae 0x3a98ac14a
mov r14d, r15d
neg r14d
movzx edx, al
mov rdi, qword [rsp + 0x148]
mov rbx, qword [rsp + 0x98]
movsxd rdx, dword [rsi + rdx*4]
lea r10, [rdi + rbx*4]
mov rcx, rdi
lea rdx, [rdi + rdx*4]
mov dword [rdx], r14d
lea r11, [rdx + 4]
cmp rdi, r10
jae 0x3a98ac1ea
mov rdi, qword [rsp + 0x140]
mov rbp, rcx
jmp 0x3a98ac1d6
lea ebx, [rdx - 1]
movsxd r9, ebx
movzx r12d, byte [rdi + r9]
mov r8, r12
test ebx, ebx
je 0x3a98ac19e
cmp byte [rdi + r9 - 1], r12b
jae 0x3a98ac1a2
mov ebx, edx
neg ebx
mov rdx, r11
cmp r12d, eax
je 0x3a98ac1c4
movsxd r9, eax
mov rax, r11
sub rax, rbp
sar rax, 2
mov dword [rsi + r9*4], eax
movsxd rax, dword [rsi + r8*4]
lea rdx, [rbp + rax*4]
add rcx, 4
mov dword [rdx], ebx
lea r11, [rdx + 4]
mov eax, r12d
cmp rcx, r10
jae 0x3a98ac1ea
mov edx, dword [rcx]
test edx, edx
jg 0x3a98ac185
not edx
add rcx, 4
mov dword [rcx - 4], edx
cmp rcx, r10
jb 0x3a98ac1d6
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, ecx
mov rdi, qword [rsp + 0x148]
shl r8d, 8
or edx, r8d
movsxd rdx, edx
add dword [r11 + rdx*4], 1
mov dword [rdi + r9*4 - 4], eax
lea eax, [r10 - 2]
cmp r10d, 1
je 0x3a98acbd2
movsxd r8, eax
add r8, rbx
jmp 0x3a98ac24c
shl edx, 8
sub eax, 1
sub r8, 1
or edx, ecx
movsxd rdx, edx
add dword [r11 + rdx*4], 1
cmp eax, 0xffffffff
je 0x3a98ac256
mov edx, ecx
movzx ecx, byte [r8]
cmp ecx, edx
jle 0x3a98ac233
sub r9, 1
mov edx, ecx
jmp 0x3a98ab9a0
mov rax, qword [rsp + 0x140]
movzx edi, byte [rax + 1]
cmp byte [rax], dil
setae al
mov rdi, qword [rsp + 0x148]
movzx eax, al
mov dword [rdi + rax*4], 0
setb al
movzx eax, al
mov dword [rdi + rax*4], 1
jmp 0x3a98ac1ea
mov rax, qword [rsp + 0x148]
mov dword [rax], 0
jmp 0x3a98ac1ea
mov r14, qword [rsp + 0x50]
movsxd rax, ebx
lea r11, [r14 + rax*4]
lea rax, [r12 + r10]
movsxd r8, dword [r11]
movsxd r11, dword [r11 + 4]
lea r8, [r12 + r8 + 2]
lea r11, [r12 + r11 + 2]
cmp rax, rcx
jb 0x3a98ac2f1
jmp 0x3a98abcd0
add rax, 1
add r8, 1
cmp rax, rcx
jae 0x3a98abcd0
cmp r8, r11
jae 0x3a98ac2ff
movzx r14d, byte [r8]
cmp byte [rax], r14b
je 0x3a98ac2e0
cmp rax, rcx
jae 0x3a98abcd0
cmp r8, r11
jae 0x3a98abcc3
movzx eax, byte [rax]
cmp byte [r8], al
jb 0x3a98abcc3
jmp 0x3a98abcd0
mov dword [rsp + 0xa0], 0
mov r15, qword [rsp + 0x58]
mov ebp, dword [rsp + 0x8c]
mov r13, qword [rsp + 0x78]
cmp r8, 0x1000
jle 0x3a98acba3
mov dword [rsp + 0xa8], edi
mov rbx, qword [rsp + 0x68]
xor esi, esi
nop
mov r14, rbx
mov rdx, qword [rsp + 0x50]
add rbx, 0x1000
mov rcx, r12
mov r9, rbx
mov r8, r14
call fcn.3a98aa700
mov rdi, qword [rsp + 0x58]
mov r11, r13
mov r10d, esi
mov eax, 0x400
sub rdi, rbx
sar rdi, 2
cmp ebp, edi
cmovge edi, ebp
cmovl r11, rbx
test sil, 1
je 0x3a98ac3fe
nop dword [rax + rax]
movsxd rdx, eax
mov qword [rsp + 0x28], r11
mov r9, r14
shl rdx, 2
mov dword [rsp + 0x30], edi
lea rcx, [r14 + rdx]
sub r14, rdx
mov rdx, qword [rsp + 0x50]
mov dword [rsp + 0x60], r10d
mov qword [rsp + 0x20], rcx
mov r8, r14
mov rcx, r12
mov dword [rsp + 0x48], eax
mov qword [rsp + 0x40], r11
call fcn.3a98a9880
mov r10d, dword [rsp + 0x60]
mov eax, dword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
sar r10d, 1
add eax, eax
test r10b, 1
jne 0x3a98ac3a8
mov rax, r15
add esi, 1
sub rax, rbx
cmp rax, 0x1000
jg 0x3a98ac360
mov rdx, qword [rsp + 0x50]
mov r9, r15
mov r8, rbx
mov rcx, r12
mov edi, dword [rsp + 0xa8]
mov r14d, 0x400
call fcn.3a98aa700
mov r9, rbx
jmp 0x3a98ac447
add r14d, r14d
sar esi, 1
je 0x3a98ac482
test sil, 1
je 0x3a98ac440
movsxd rax, r14d
mov rbx, r9
mov dword [rsp + 0x30], ebp
mov rdx, qword [rsp + 0x50]
shl rax, 2
mov qword [rsp + 0x28], r13
mov rcx, r12
add r14d, r14d
mov qword [rsp + 0x20], r15
sub rbx, rax
mov r8, rbx
call fcn.3a98a9880
sar esi, 1
mov r9, rbx
jne 0x3a98ac447
mov r9d, dword [rsp + 0xa0]
test r9d, r9d
je 0x3a98abc6b
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
mov r8, r15
mov rcx, r12
mov r9, rbx
mov rdx, rsi
call fcn.3a98aa700
mov dword [rsp + 0xc8], edi
mov r11, rsi
mov qword [rsp + 0x48], rbx
mov rbx, qword [rsp + 0x68]
nop word [rax + rax]
mov rax, qword [rsp + 0x48]
movsxd rax, dword [rax - 4]
test eax, eax
js 0x3a98ac615
lea rcx, [r11 + rax*4]
xor edx, edx
mov rax, r15
sub rax, rbx
sar rax, 2
mov esi, eax
mov edi, eax
sar esi, 1
test eax, eax
jle 0x3a98ac8a3
movsxd rax, dword [rcx]
mov dword [rsp + 0x60], edx
mov r14d, 0xffffffff
lea r13, [r12 + rax + 2]
movsxd rax, dword [rcx + 4]
lea r10, [r12 + rax + 2]
mov rax, rbx
cmp r13, r10
setb bpl
mov edx, ebp
nop
movsxd rcx, esi
lea rbp, [rax + rcx*4]
movsxd rcx, dword [rbp]
test ecx, ecx
jns 0x3a98ac534
not ecx
movsxd rcx, ecx
lea rcx, [r11 + rcx*4]
movsxd r8, dword [rcx]
movsxd rcx, dword [rcx + 4]
lea r8, [r12 + r8 + 2]
lea r9, [r12 + rcx + 2]
cmp r8, r9
jae 0x3a98ac60d
mov rcx, r13
test dl, dl
je 0x3a98ac60d
mov qword [rsp + 0x40], r9
jmp 0x3a98ac57f
mov r9, qword [rsp + 0x40]
add r8, 1
add rcx, 1
cmp r8, r9
jae 0x3a98ac5c0
cmp rcx, r10
jae 0x3a98ac588
movzx r9d, byte [rcx]
cmp byte [r8], r9b
je 0x3a98ac568
mov r9, qword [rsp + 0x40]
cmp r8, r9
jae 0x3a98ac5c0
mov r9d, 1
cmp rcx, r10
jae 0x3a98ac5a9
movzx r9d, byte [r8]
movzx ecx, byte [rcx]
sub r9d, ecx
js 0x3a98ac5fd
mov ecx, esi
sar ecx, 1
test esi, esi
jle 0x3a98ac5d0
mov edi, esi
mov r14d, r9d
mov esi, ecx
jmp 0x3a98ac520
cmp rcx, r10
jb 0x3a98ac5fd
mov ecx, esi
xor r9d, r9d
sar ecx, 1
test esi, esi
jg 0x3a98ac5b1
mov edx, dword [rsp + 0x60]
cmp rax, r15
jb 0x3a98ac642
sub qword [rsp + 0x48], 4
test edx, edx
jne 0x3a98ac627
mov rax, qword [rsp + 0x48]
cmp r15, rax
jne 0x3a98ac4c8
mov edi, dword [rsp + 0xc8]
jmp 0x3a98abc6b
not edi
lea rax, [rbp + 4]
mov r9d, r14d
and edi, 1
sub esi, edi
jmp 0x3a98ac5a9
mov rcx, r13
jmp 0x3a98ac58d
not eax
mov edx, 1
cdqe
lea rcx, [r11 + rax*4]
jmp 0x3a98ac4df
mov rax, qword [rsp + 0x48]
nop dword [rax]
mov edx, dword [rax - 4]
sub rax, 4
test edx, edx
js 0x3a98ac630
mov qword [rsp + 0x48], rax
jmp 0x3a98ac5e3
test r9d, r9d
jne 0x3a98ac649
not dword [rax]
mov rdi, qword [rsp + 0x48]
mov rsi, r15
sub rsi, rax
mov rcx, rdi
mov r10, rsi
sub rcx, r15
sar r10, 2
sar rcx, 2
mov r9d, r10d
mov r8d, ecx
test ecx, ecx
jle 0x3a98ac85b
test r10d, r10d
jle 0x3a98ac85b
cmp r10d, ecx
mov rcx, rax
je 0x3a98ac837
mov qword [rsp + 0xa0], r11
mov r10, rdi
lea r14, [r15 + 1]
lea rdi, [r15 - 4]
mov qword [rsp + 0xa8], rbx
lea rbp, [r15 - 5]
mov qword [rsp + 0xb0], rsi
mov dword [rsp + 0xb8], edx
nop word cs:[rax + rax]
cmp r9d, r8d
jge 0x3a98ac770
mov rdx, rdi
lea rsi, [r10 - 4]
xor r11d, r11d
mov qword [rsp + 0x60], r15
sub rdx, rcx
mov qword [rsp + 0x40], rsi
mov esi, dword [r10 - 4]
lea r10, [rcx - 1]
shr rdx, 2
lea r13d, [r9 + 1]
mov rbx, rdx
not rdx
neg rbx
shl rbx, 2
cmp rbp, r10
cmovb rbx, r11
shl rdx, 2
mov r11, 0xfffffffffffffffc
cmp rbp, r10
cmovb rdx, r11
mov r11, qword [rsp + 0x40]
sub rbx, 8
nop
mov qword [rsp + 0x40], rax
mov r10, rdi
mov r15, r11
nop dword [rax + rax]
mov eax, dword [r10]
sub r10, 4
sub r15, 4
mov dword [r15 + 4], eax
mov eax, dword [r15]
mov dword [r10 + 4], eax
cmp r10, rcx
jae 0x3a98ac730
lea r10, [r11 + rdx]
sub r8d, r13d
mov rax, qword [rsp + 0x40]
mov dword [r10], esi
cmp r8d, r9d
jle 0x3a98ac800
mov esi, dword [r10 - 4]
add r11, rbx
jmp 0x3a98ac720
mov rdx, r10
xor esi, esi
mov qword [rsp + 0x60], rax
mov r11d, dword [rcx]
sub rdx, r15
lea r13d, [r8 + 1]
sub rdx, 1
mov rbx, rdx
and rdx, 0xfffffffffffffffc
shr rbx, 2
cmp r10, r14
cmovb rdx, rsi
lea rbx, [rbx*4 + 4]
mov esi, 4
cmovb rbx, rsi
lea rsi, [rdx + 8]
nop
mov qword [rsp + 0x40], rcx
mov rax, r15
mov rdx, rcx
nop dword [rax + rax]
mov ecx, dword [rax]
add rax, 4
add rdx, 4
mov dword [rdx - 4], ecx
mov ecx, dword [rdx]
mov dword [rax - 4], ecx
cmp rax, r10
jb 0x3a98ac7c0
mov rcx, qword [rsp + 0x40]
sub r9d, r13d
lea rax, [rcx + rbx]
add rcx, rsi
mov dword [rax], r11d
cmp r9d, r8d
jle 0x3a98ac878
mov r11d, dword [rax + 4]
jmp 0x3a98ac7b0
mov r15, qword [rsp + 0x60]
test r9d, r9d
jle 0x3a98ac882
test r8d, r8d
jle 0x3a98ac882
cmp r9d, r8d
jne 0x3a98ac6c0
mov r11, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xb0]
mov edx, dword [rsp + 0xb8]
mov r8d, r8d
lea r10, [r15 + r8*4]
nop
mov r8d, dword [rcx]
mov r9d, dword [r15]
add r15, 4
add rcx, 4
mov dword [rcx - 4], r9d
mov dword [r15 - 4], r8d
cmp r10, r15
jne 0x3a98ac840
sub qword [rsp + 0x48], rsi
cmp rbx, rax
je 0x3a98ac5f1
mov r15, rax
jmp 0x3a98ac5d9
mov rax, qword [rsp + 0x60]
test r9d, r9d
jg 0x3a98ac80a
mov r11, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xb0]
mov edx, dword [rsp + 0xb8]
jmp 0x3a98ac85b
cmp rbx, r15
jae 0x3a98ac5d9
mov edi, dword [rsp + 0xc8]
jmp 0x3a98abc6b
mov r11d, r9d
cmp r9d, 0xfffff
jg 0x3a98aca67
cmp r9d, 0xffff
jbe 0x3a98ac9db
mov eax, r9d
cmp r9d, 0xffffff
jbe 0x3a98aca3a
shr eax, 0x18
lea rsi, [0x3a9963780]
mov eax, dword [rsi + rax*4]
add eax, 0x18
cmp eax, 0xf
jle 0x3a98aca06
mov edx, eax
lea r10, [0x3a9963380]
and edx, 0xfffffffe
lea ecx, [rdx - 6]
mov edx, r9d
sar edx, cl
mov ecx, eax
movsxd rdx, edx
sar ecx, 1
mov edx, dword [r10 + rdx*4]
sub ecx, 7
shl edx, cl
mov ecx, edx
cmp eax, 0x17
jle 0x3a98ac935
mov eax, r11d
cdq
idiv ecx
lea ecx, [rcx + rax + 1]
sar ecx, 1
mov eax, r11d
cdq
idiv ecx
lea ebp, [rcx + rax + 1]
sar ebp, 1
mov eax, ebp
imul eax, ebp
cmp eax, r9d
setg al
movzx eax, al
sub ebp, eax
cmp dword [rsp + 0x8c], ebp
jge 0x3a98ac328
mov eax, 0x400
cmp ebp, eax
cmovg ebp, eax
movsxd r13, ebp
shl r13, 2
neg r13
mov rax, qword [rsp + 0x58]
mov dword [rsp + 0xa0], ebp
add r13, rax
mov rax, qword [rsp + 0x68]
mov r8, r13
mov r15, r13
sub r8, rax
jmp 0x3a98ac344
mov ecx, edx
jmp 0x3a98ac9a5
mov r12d, dword [rax - 4]
sub rax, 4
test r12d, r12d
js 0x3a98ac9c0
movsxd r12, dword [rax]
mov r13, rax
mov dword [r9 + r12*4], ecx
sub ecx, 1
jae 0x3a98ac998
not edx
mov dword [rax], edx
jmp 0x3a98abd97
mov eax, ecx
sub eax, edx
mov dword [r13], eax
test ecx, ecx
je 0x3a98abd97
movsxd rcx, ecx
mov rdx, rcx
jmp 0x3a98abd6c
test r9d, 0xff00
je 0x3a98aca78
mov eax, r9d
lea rsi, [0x3a9963780]
sar eax, 8
cdqe
mov eax, dword [rsi + rax*4]
add eax, 8
cmp eax, 0xf
jg 0x3a98ac8fe
cmp eax, 7
jle 0x3a98aca51
mov edx, eax
sar eax, 1
and edx, 0xfffffffe
lea ecx, [rdx - 6]
mov edx, r9d
sar edx, cl
mov ecx, 7
sub ecx, eax
movsxd rdx, edx
lea rax, [0x3a9963380]
mov eax, dword [rax + rdx*4]
sar eax, cl
mov ebp, eax
add ebp, 1
jmp 0x3a98ac941
sar eax, 0x10
lea rsi, [0x3a9963780]
cdqe
mov eax, dword [rsi + rax*4]
add eax, 0x10
jmp 0x3a98ac8f5
movsxd r9, r9d
lea rax, [0x3a9963380]
mov ebp, dword [rax + r9*4]
sar ebp, 4
jmp 0x3a98ac951
mov r13, 0xfffffffffffff000
mov ebp, 0x400
jmp 0x3a98ac972
movzx eax, r9b
lea rsi, [0x3a9963780]
mov eax, dword [rsi + rax*4]
jmp 0x3a98ac8f5
test bh, 0xff
je 0x3a98acbc0
mov eax, ebx
lea rcx, [0x3a9963780]
sar eax, 8
cdqe
mov eax, dword [rcx + rax*4]
add eax, 8
jmp 0x3a98abdc3
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x20], rsi
mov rdx, rax
mov r9, rbx
mov r8, rbp
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x28], rcx
mov rcx, rdi
mov dword [rsp + 0xec], 0
call fcn.3a98a7cb0
mov edx, dword [rsp + 0xec]
mov rax, qword [rsp + 0x58]
test edx, edx
je 0x3a98acb05
add r12d, edx
mov rbx, rsi
xor ecx, ecx
jmp 0x3a98abe90
mov r9d, ebx
jmp 0x3a98ac00e
sub rbx, rsi
mov rcx, rbx
mov rbx, rsi
sar rcx, 2
jmp 0x3a98abe90
lea r9d, [rax - 1]
test eax, eax
je 0x3a98acb8b
movsxd rax, r9d
jmp 0x3a98acb2d
sub rax, 1
cmp eax, 0xffffffff
je 0x3a98acb77
mov r9d, edx
movzx edx, byte [rbx + rax]
cmp edx, r9d
jle 0x3a98acb24
mov edi, ecx
mov r9d, eax
sub edi, eax
mov eax, ecx
cmp edi, 2
not eax
mov rdi, qword [rsp + 0x148]
cmovl ecx, eax
movsxd rax, dword [r8 - 4]
sub r8, 4
mov dword [rdi + rax*4], ecx
jmp 0x3a98abf20
shr eax, 0x18
lea rcx, [0x3a9963780]
mov eax, dword [rcx + rax*4]
add eax, 0x18
jmp 0x3a98abdc3
movsxd rax, dword [r8 - 4]
mov rdi, qword [rsp + 0x148]
mov dword [rdi + rax*4], ecx
jmp 0x3a98abf4e
movsxd rax, dword [r8 - 4]
mov rdi, qword [rsp + 0x148]
mov dword [rdi + rax*4], 0
jmp 0x3a98abf4e
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x50]
mov r9, r15
mov rcx, r12
call fcn.3a98aa700
jmp 0x3a98ac482
movzx eax, bl
lea rcx, [0x3a9963780]
mov eax, dword [rcx + rax*4]
jmp 0x3a98abdc3
lea ebp, [r9 - 1]
jmp 0x3a98ab9d9