Function at 0x14007daf0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc0
mov ecx, dword [rdx]
mov rbx, r9
mov r15, r8
mov r13, rdx
cmp ecx, 0x20200001
ja 0x14007e022
lea eax, [rcx - 0x10200001]
test eax, 0xefffffff
je 0x14007e040
lea eax, [rcx - 0x20000001]
cmp eax, 1
ja 0x14007e036
mov r9d, dword [rdx + 4]
xor ebp, ebp
test r9d, r9d
je 0x14007f2e7
mov r10d, dword [rdx + 8]
test r10d, r10d
je 0x14007f2e7
test ecx, ecx
je 0x14007f2e7
cmp qword [rdx + 0x18], rbp
je 0x14007db7c
cmp dword [rdx + 0x10], ebp
jne 0x14007dba5
cmp qword [rdx + 0x28], rbp
je 0x14007db87
cmp dword [rdx + 0x20], ebp
jne 0x14007dba5
cmp qword [rdx + 0x38], rbp
je 0x14007db92
cmp dword [rdx + 0x30], ebp
jne 0x14007dba5
cmp qword [rdx + 0x48], rbp
je 0x14007f2e7
cmp dword [rdx + 0x40], ebp
je 0x14007f2e7
test r15, r15
je 0x14007f2e7
mov eax, dword [r8]
test eax, eax
js 0x14007f2e7
mov ecx, dword [r8 + 4]
test ecx, ecx
js 0x14007f2e7
mov edx, dword [r8 + 8]
test edx, edx
jle 0x14007f2e7
mov r8d, dword [r8 + 0xc]
test r8d, r8d
jle 0x14007f2e7
add eax, edx
cmp eax, r9d
jg 0x14007f2e7
lea eax, [r8 + rcx]
cmp eax, r10d
jg 0x14007f2e7
mov r10, qword [rsp + 0x130]
test r10, r10
je 0x14007f2e7
test rbx, rbx
je 0x14007f2e7
mov rax, qword [rsp + 0x120]
test rax, rax
je 0x14007f2e7
mov r9, qword [rsp + 0x128]
test r9, r9
je 0x14007f2e7
mov r8, rbx
lea rdx, [rax + 0xff]
sub r8, rax
mov cl, 0xff
sub r9, rax
nop dword [rax]
nop dword [rax + rax]
sub byte [r8 + rdx], cl
movzx eax, cl
sub byte [rdx], cl
sub byte [r9 + rdx], cl
lea rdx, [rdx - 1]
add cl, 0xff
test al, al
jne 0x14007dc50
mov ecx, dword [r13]
sub ecx, 0x20000001
je 0x14007dc92
cmp ecx, 1
jne 0x14007f2e7
mov r11d, 1
lea edi, [rcx + 1]
mov esi, r11d
lea r14d, [rcx + 2]
mov r12, rbp
jmp 0x14007dca6
mov r11d, 1
mov rsi, rbp
mov r12d, r11d
lea edi, [r11 + 2]
lea r14d, [r11 + 1]
mov ebp, dword [r15 + 8]
xor edx, edx
mov r9d, dword [rsp + 0x138]
mov eax, ebp
div r9d
mov qword [rsp + 0x40], r12
mov ebx, eax
mov dword [rsp + 0x6c], eax
imul eax, eax
mov ecx, ebx
mov dword [rsp + 0x68], eax
mov eax, ebx
shr eax, 1
mov dword [rsp + 0xb0], eax
call fcn.14006a800
mov edx, dword [r13 + 0x10]
mov r15d, eax
mov dword [rsp + 0x48], eax
mov r8d, edx
sub rsi, r12
sub rdi, r12
lea ecx, [rax + 1]
mov qword [rsp + 0xa8], rsi
shl r11d, cl
sub r14, r12
mov ecx, eax
mov qword [rsp + 0x98], rdi
lea eax, [rbx + rbx]
sar ebp, cl
sub r8d, eax
mov dword [rsp + 0x58], ebp
mov rax, qword [rsp + 0x110]
add r9, r10
mov qword [rsp + 0x80], r14
mov eax, dword [rax + 0xc]
sar eax, cl
lea ecx, [rbp - 1]
dec eax
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x110]
imul edx, dword [rax + 4]
mov eax, dword [rax]
add eax, eax
cdqe
movsxd rbx, edx
add rbx, rax
mov eax, r8d
add rbx, qword [r13 + 0x18]
mov qword [rsp + 0x88], rax
mov eax, r11d
mov qword [rsp + 0x90], rax
mov eax, ebp
imul eax, r11d
mov qword [rsp + 0x78], rbx
mov dword [rsp + 0x54], eax
nop
mov dword [rsp + 0x24], ecx
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r10]
inc r10
movzx edx, byte [r9]
inc r9
movzx r13d, byte [r10]
movzx ecx, byte [r9]
sub r13d, eax
sub ecx, edx
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x60], r10
nop dword [rax]
mov r9d, dword [rsp + 0x6c]
mov ebp, eax
imul ebp, dword [rsp + 0x68]
mov r14d, r13d
imul r14d, r9d
mov rdi, rbx
imul eax, r9d
mov r15d, r9d
imul edx, r9d
mov esi, r14d
mov r8d, r14d
imul esi, r9d
neg r8d
mov dword [rsp + 0x70], r8d
mov ebx, r8d
mov dword [rsp + 0xa0], eax
mov dword [rsp + 0xb4], edx
neg esi
imul ecx, r9d
mov r9d, dword [rsp + 0x48]
mov dword [rsp + 0x50], ecx
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rsp + 0xb0]
add r12, rdi
mov dword [rsp + 0x20], eax
nop
movzx r8d, byte [r12]
lea ecx, [r9 + r9]
mov rax, qword [rsp + 0xa8]
lea r12, [r12 + 4]
mov r10d, ebp
add rdi, 4
sar r10d, cl
add ebp, r14d
mov rcx, qword [rsp + 0x118]
movzx edx, byte [rax + r12 - 4]
mov rax, qword [rsp + 0x80]
movsx ecx, byte [rdx + rcx]
movzx r11d, byte [rax + r12 - 4]
mov rax, qword [rsp + 0x98]
imul ecx, r10d
movzx r9d, byte [rax + r12 - 4]
mov rax, qword [rsp + 0xa8]
sar ecx, 8
add cl, dl
mov byte [rax + r12 - 4], cl
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x120]
movsx ecx, byte [r8 + rcx]
imul ecx, r10d
sar ecx, 8
add cl, r8b
mov byte [r12 - 4], cl
mov rcx, qword [rsp + 0x128]
movsx ecx, byte [r9 + rcx]
imul ecx, r10d
sar ecx, 8
add cl, r9b
mov r9d, dword [rsp + 0x48]
mov byte [rax + r12 - 4], cl
mov eax, ebp
mov rcx, qword [rsp + 0x118]
add ebp, r14d
movsx edx, byte [r11 + rcx]
lea ecx, [r9 + r9]
sar eax, cl
imul edx, eax
mov rax, qword [rsp + 0x80]
sar edx, 8
add dl, r11b
mov byte [rax + r12 - 4], dl
mov eax, dword [rsp + 0x20]
dec eax
mov dword [rsp + 0x20], eax
test eax, eax
jg 0x14007de30
sub ebx, dword [rsp + 0x38]
dec r15d
mov eax, dword [rsp + 0xb4]
add ebx, r13d
add rdi, qword [rsp + 0x88]
add eax, esi
sub eax, dword [rsp + 0xa0]
mov r12, qword [rsp + 0x40]
add ebp, eax
mov eax, dword [rsp + 0x38]
sub eax, r13d
add r14d, eax
mov eax, dword [rsp + 0x70]
add eax, dword [rsp + 0x50]
sub esi, eax
test r15d, r15d
jg 0x14007de20
mov rbx, qword [rsp + 0x78]
mov r8d, dword [rsp + 0x24]
add rbx, qword [rsp + 0x90]
dec r8d
mov qword [rsp + 0x78], rbx
mov dword [rsp + 0x24], r8d
test r8d, r8d
jg 0x14007dfae
jne 0x14007dfbd
mov r10, qword [rsp + 0x60]
mov r9, qword [rsp + 0x30]
movzx eax, byte [r10]
inc r10
movzx edx, byte [r9]
inc r9
xor r8d, r8d
mov ecx, r8d
mov r13d, r8d
jmp 0x14007ddab
mov r10, qword [rsp + 0x60]
mov r9, qword [rsp + 0x30]
jmp 0x14007dd90
mov ebp, dword [rsp + 0x4c]
mov ecx, r9d
mov r13, qword [rsp + 0x108]
dec ebp
mov dword [rsp + 0x4c], ebp
mov eax, dword [r13 + 0x10]
shl eax, cl
sub eax, dword [rsp + 0x54]
add rbx, rax
mov qword [rsp + 0x78], rbx
test ebp, ebp
jg 0x14007e008
jne 0x14007e01b
movsxd rax, dword [rsp + 0x58]
mov r10, qword [rsp + 0x60]
mov r9, qword [rsp + 0x30]
sub r10, rax
mov ecx, dword [rsp + 0x28]
sub r9, rax
jmp 0x14007dd80
mov r10, qword [rsp + 0x60]
mov r9, qword [rsp + 0x30]
mov ecx, dword [rsp + 0x28]
jmp 0x14007dd80
xor ebp, ebp
jmp 0x14007f2ec
cmp ecx, 0x30100001
je 0x14007ebee
cmp ecx, 0x30200001
je 0x14007e040
mov eax, 0xfffffffa
jmp 0x14007f2ee
mov r10d, dword [rdx + 4]
test r10d, r10d
je 0x14007f2e7
mov r9d, dword [rdx + 8]
test r9d, r9d
je 0x14007f2e7
test ecx, ecx
je 0x14007f2e7
cmp qword [rdx + 0x18], 0
je 0x14007e06f
cmp dword [rdx + 0x10], 0
jne 0x14007e09e
cmp qword [rdx + 0x28], 0
je 0x14007e07c
cmp dword [rdx + 0x20], 0
jne 0x14007e09e
cmp qword [rdx + 0x38], 0
je 0x14007e089
cmp dword [rdx + 0x30], 0
jne 0x14007e09e
cmp qword [rdx + 0x48], 0
je 0x14007f2e7
cmp dword [rdx + 0x40], 0
je 0x14007f2e7
test r15, r15
je 0x14007f2e7
mov eax, dword [r8]
test eax, eax
js 0x14007f2e7
mov ecx, dword [r8 + 4]
test ecx, ecx
js 0x14007f2e7
mov r8d, dword [r8 + 8]
test r8d, r8d
jle 0x14007f2e7
mov edx, dword [r15 + 0xc]
test edx, edx
jle 0x14007f2e7
add eax, r8d
cmp eax, r10d
jg 0x14007f2e7
lea eax, [rdx + rcx]
cmp eax, r9d
jg 0x14007f2e7
mov r11, qword [rsp + 0x130]
test r11, r11
je 0x14007f2e7
test rbx, rbx
je 0x14007f2e7
mov cl, 0xff
lea rdx, [rbx + 0xff]
sub byte [rdx], cl
lea rdx, [rdx - 1]
movzx eax, cl
add cl, 0xff
test al, al
jne 0x14007e112
mov eax, dword [r15 + 8]
xor edx, edx
mov esi, dword [rsp + 0x138]
div esi
mov edi, eax
mov r12d, eax
imul edi, eax
mov ecx, eax
mov dword [rsp + 0x24], edi
call fcn.14006a800
mov ecx, dword [r13]
mov r9d, eax
lea eax, [r9 + r9]
mov dword [rsp + 0x58], eax
cmp ecx, 0x10200001
je 0x14007e177
cmp ecx, 0x20200001
je 0x14007e177
cmp ecx, 0x30100001
je 0x14007e177
cmp ecx, 0x30200001
jne 0x14007ed21
mov ecx, dword [r13 + 0x10]
lea rbx, [r11 + rsi]
mov eax, dword [r15 + 4]
mov r8d, ecx
imul eax, ecx
sub r8d, r12d
mov edx, ecx
mov qword [rsp + 0x98], r9
imul edx, r12d
lea r9d, [rsi - 1]
mov qword [rsp + 0x40], r11
mov dword [rsp + 0x48], r9d
movsxd r10, eax
movsxd rax, dword [r15]
add r10, rax
mov eax, dword [rsp + 0x140]
add r10, qword [r13 + 0x18]
dec eax
mov qword [rsp + 0x80], r10
mov dword [rsp + 0x4c], eax
xor ebp, ebp
mov eax, r8d
mov qword [rsp + 0x90], rax
mov eax, edx
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x78], r10
nop word [rax + rax]
mov rdx, qword [rsp + 0x40]
nop word [rax + rax]
mov dword [rsp + 0x28], r9d
nop word [rax + rax]
movzx r13d, byte [rdx]
inc rdx
movzx eax, byte [rbx]
inc rbx
movzx r14d, byte [rdx]
movzx r15d, byte [rbx]
sub r14d, r13d
sub r15d, eax
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x40], rdx
nop word [rax + rax]
imul eax, r12d
mov r11d, r13d
imul r11d, edi
mov ebp, r12d
mov edi, r14d
imul r13d, r12d
imul edi, r12d
mov dword [rsp + 0x54], eax
mov eax, r15d
mov esi, edi
mov ecx, edi
neg ecx
imul esi, r12d
mov dword [rsp + 0x50], ecx
mov r9d, ecx
neg esi
imul eax, r12d
mov dword [rsp + 0x70], eax
nop dword [rax + rax]
mov ecx, dword [rsp + 0x58]
mov ebx, r12d
nop word [rax + rax]
movzx r8d, byte [r10]
mov eax, r11d
mov rdx, qword [rsp + 0x118]
add r11d, edi
sar eax, cl
dec ebx
movsx edx, byte [r8 + rdx]
imul edx, eax
sar edx, 8
add dl, r8b
mov byte [r10], dl
inc r10
test ebx, ebx
jg 0x14007e290
mov eax, dword [rsp + 0x54]
sub r9d, r15d
add r10, qword [rsp + 0x90]
add eax, esi
sub eax, r13d
add r9d, r14d
add r11d, eax
dec ebp
mov eax, r15d
sub eax, r14d
add edi, eax
mov eax, dword [rsp + 0x50]
add eax, dword [rsp + 0x70]
sub esi, eax
test ebp, ebp
jg 0x14007e280
mov r10, qword [rsp + 0x78]
mov ecx, dword [rsp + 0x28]
add r10, r12
dec ecx
mov qword [rsp + 0x78], r10
mov dword [rsp + 0x28], ecx
test ecx, ecx
jg 0x14007e336
jne 0x14007e349
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x30]
mov edi, dword [rsp + 0x24]
movzx r13d, byte [rdx]
inc rdx
movzx eax, byte [rbx]
inc rbx
xor r8d, r8d
mov r15d, r8d
mov r14d, r8d
jmp 0x14007e22b
mov rbx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
mov edi, dword [rsp + 0x24]
jmp 0x14007e210
mov rsi, qword [rsp + 0x80]
add rsi, qword [rsp + 0x88]
mov r11d, dword [rsp + 0x4c]
mov r10, rsi
dec r11d
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x78], rsi
mov dword [rsp + 0x4c], r11d
test r11d, r11d
jg 0x14007e3b2
jne 0x14007e3c5
mov r15, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x30]
movsxd rax, dword [r15 + 8]
mov edi, dword [rsp + 0x24]
mov r9d, dword [rsp + 0x48]
sar rax, cl
sub rdx, rax
sub rbx, rax
jmp 0x14007e200
mov rbx, qword [rsp + 0x30]
mov edi, dword [rsp + 0x24]
mov r9d, dword [rsp + 0x48]
jmp 0x14007e1f0
mov r15, qword [rsp + 0x108]
mov r10d, dword [r15 + 4]
test r10d, r10d
je 0x14007f2e7
mov r9d, dword [r15 + 8]
test r9d, r9d
je 0x14007f2e7
cmp dword [r15], 0
je 0x14007f2e7
cmp qword [r15 + 0x18], 0
je 0x14007e3ff
cmp dword [r15 + 0x10], 0
jne 0x14007e431
cmp qword [r15 + 0x28], 0
je 0x14007e40d
cmp dword [r15 + 0x20], 0
jne 0x14007e431
cmp qword [r15 + 0x38], 0
je 0x14007e41b
cmp dword [r15 + 0x30], 0
jne 0x14007e431
cmp qword [r15 + 0x48], 0
je 0x14007f2e7
cmp dword [r15 + 0x40], 0
je 0x14007f2e7
mov r12, qword [rsp + 0x110]
mov eax, dword [r12]
test eax, eax
js 0x14007f2e7
mov ecx, dword [r12 + 4]
test ecx, ecx
js 0x14007f2e7
mov r8d, dword [r12 + 8]
test r8d, r8d
jle 0x14007f2e7
mov edx, dword [r12 + 0xc]
test edx, edx
jle 0x14007f2e7
add eax, r8d
cmp eax, r10d
jg 0x14007f2e7
lea eax, [rdx + rcx]
cmp eax, r9d
jg 0x14007f2e7
mov rax, qword [rsp + 0x120]
test rax, rax
je 0x14007f2e7
mov cl, 0xff
lea rdx, [rax + 0xff]
nop
sub byte [rdx], cl
lea rdx, [rdx - 1]
movzx eax, cl
add cl, 0xff
test al, al
jne 0x14007e4a0
mov eax, dword [r12 + 8]
xor edx, edx
mov ebp, dword [rsp + 0x138]
div ebp
mov esi, eax
mov dword [rsp + 0x58], eax
imul esi, eax
mov ecx, eax
mov r11d, eax
mov dword [rsp + 0x20], esi
call fcn.14006a800
mov ecx, dword [r15]
mov r10d, eax
lea eax, [r10 + r10]
mov dword [rsp + 0x54], eax
cmp ecx, 0x10200001
je 0x14007e567
cmp ecx, 0x20200001
je 0x14007e536
cmp ecx, 0x30200001
jne 0x14007ed21
mov ecx, dword [r15 + 0x20]
mov edi, r11d
mov eax, dword [r12 + 4]
mov r8d, ecx
sar eax, 1
imul eax, ecx
shr edi, 1
mov r9d, edi
sub r8d, edi
imul r9d, ecx
mov ebx, edi
movsxd r14, eax
movsxd rax, dword [r12]
sar rax, 1
add r14, rax
add r14, qword [r15 + 0x28]
jmp 0x14007e594
mov ecx, dword [r15 + 0x20]
mov ebx, r11d
mov eax, dword [r12 + 4]
mov r8d, ecx
imul eax, ecx
mov r9d, r11d
shr ebx, 1
sub r8d, ebx
imul r9d, ecx
movsxd r14, eax
movsxd rax, dword [r12]
sar rax, 1
add r14, rax
add r14, qword [r15 + 0x28]
jmp 0x14007e591
mov ecx, dword [r15 + 0x20]
mov ebx, r11d
mov eax, dword [r12 + 4]
mov r8d, ecx
imul eax, ecx
mov r9d, ecx
sub r8d, r11d
imul r9d, r11d
movsxd r14, eax
add r14, qword [r15 + 0x28]
movsxd rax, dword [r12]
add r14, rax
mov edi, r11d
mov eax, dword [rsp + 0x140]
mov rcx, rbp
mov rdx, qword [rsp + 0x130]
dec eax
mov dword [rsp + 0x4c], eax
mov r11, r14
mov eax, r8d
add rcx, rdx
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], r10
lea r10d, [rbp - 1]
mov eax, ebx
mov r8d, r9d
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x24], edi
mov dword [rsp + 0x38], ebx
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x78], r14
mov dword [rsp + 0x48], r10d
mov qword [rsp + 0x80], r8
nop word [rax + rax]
mov dword [rsp + 0x28], r10d
nop word [rax + rax]
movzx r12d, byte [rdx]
inc rdx
movzx r13d, byte [rcx]
inc rcx
movzx r14d, byte [rdx]
movzx r15d, byte [rcx]
sub r14d, r12d
sub r15d, r13d
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x60], rdx
nop word [rax + rax]
mov ecx, dword [rsp + 0x58]
mov ebp, edi
mov r10, r11
imul r13d, ecx
mov r11d, r12d
mov edi, r14d
imul r11d, esi
imul edi, ecx
imul r12d, ecx
mov esi, edi
mov eax, edi
neg eax
imul esi, ecx
mov dword [rsp + 0x50], eax
mov r9d, eax
mov eax, r15d
neg esi
imul eax, ecx
mov dword [rsp + 0x70], eax
nop word [rax + rax]
movzx r8d, byte [r10]
mov eax, r11d
mov rcx, qword [rsp + 0x120]
add r11d, edi
dec ebx
movsx edx, byte [r8 + rcx]
mov ecx, dword [rsp + 0x54]
sar eax, cl
imul edx, eax
sar edx, 8
add dl, r8b
mov byte [r10], dl
inc r10
test ebx, ebx
jg 0x14007e680
add r10, qword [rsp + 0x90]
lea eax, [rsi + r13]
mov ebx, dword [rsp + 0x38]
sub eax, r12d
add r11d, eax
sub r9d, r15d
mov eax, r15d
add r9d, r14d
sub eax, r14d
dec ebp
add edi, eax
mov eax, dword [rsp + 0x50]
add eax, dword [rsp + 0x70]
sub esi, eax
test ebp, ebp
jg 0x14007e680
mov r11, qword [rsp + 0x78]
mov eax, dword [rsp + 0x28]
add r11, qword [rsp + 0x88]
dec eax
mov qword [rsp + 0x78], r11
mov dword [rsp + 0x28], eax
test eax, eax
jg 0x14007e735
jne 0x14007e74c
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x30]
mov edi, dword [rsp + 0x24]
mov esi, dword [rsp + 0x20]
movzx r12d, byte [rdx]
inc rdx
movzx r13d, byte [rcx]
inc rcx
xor eax, eax
mov r15d, eax
mov r14d, eax
jmp 0x14007e62c
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x60]
mov edi, dword [rsp + 0x24]
mov esi, dword [rsp + 0x20]
jmp 0x14007e610
mov r14, qword [rsp + 0x40]
add r14, qword [rsp + 0x80]
mov ebp, dword [rsp + 0x4c]
mov r11, r14
dec ebp
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x78], r14
mov dword [rsp + 0x4c], ebp
test ebp, ebp
jg 0x14007e7b0
jne 0x14007e7cc
mov rcx, qword [rsp + 0x98]
mov r12, qword [rsp + 0x110]
mov rdx, qword [rsp + 0x60]
mov edi, dword [rsp + 0x24]
mov esi, dword [rsp + 0x20]
movsxd rax, dword [r12 + 8]
mov r10d, dword [rsp + 0x48]
sar rax, cl
mov rcx, qword [rsp + 0x30]
sub rdx, rax
sub rcx, rax
jmp 0x14007e600
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x60]
mov edi, dword [rsp + 0x24]
mov esi, dword [rsp + 0x20]
mov r10d, dword [rsp + 0x48]
jmp 0x14007e600
mov rbp, qword [rsp + 0x108]
mov r10d, dword [rbp + 4]
test r10d, r10d
je 0x14007f2e7
mov r9d, dword [rbp + 8]
test r9d, r9d
je 0x14007f2e7
cmp dword [rbp], 0
je 0x14007f2e7
cmp qword [rbp + 0x18], 0
je 0x14007e805
cmp dword [rbp + 0x10], 0
jne 0x14007e834
cmp qword [rbp + 0x28], 0
je 0x14007e812
cmp dword [rbp + 0x20], 0
jne 0x14007e834
cmp qword [rbp + 0x38], 0
je 0x14007e81f
cmp dword [rbp + 0x30], 0
jne 0x14007e834
cmp qword [rbp + 0x48], 0
je 0x14007f2e7
cmp dword [rbp + 0x40], 0
je 0x14007f2e7
mov r12, qword [rsp + 0x110]
mov eax, dword [r12]
test eax, eax
js 0x14007f2e7
mov ecx, dword [r12 + 4]
test ecx, ecx
js 0x14007f2e7
mov r8d, dword [r12 + 8]
test r8d, r8d
jle 0x14007f2e7
mov edx, dword [r12 + 0xc]
test edx, edx
jle 0x14007f2e7
add eax, r8d
cmp eax, r10d
jg 0x14007f2e7
lea eax, [rdx + rcx]
cmp eax, r9d
jg 0x14007f2e7
mov rax, qword [rsp + 0x128]
test rax, rax
je 0x14007f2e7
mov cl, 0xff
lea rdx, [rax + 0xff]
sub byte [rdx], cl
lea rdx, [rdx - 1]
movzx eax, cl
add cl, 0xff
test al, al
jne 0x14007e8a2
mov eax, dword [r12 + 8]
xor edx, edx
mov r15d, dword [rsp + 0x138]
div r15d
mov esi, eax
mov dword [rsp + 0x20], eax
imul esi, eax
mov ecx, eax
mov ebx, eax
mov dword [rsp + 0x38], esi
call fcn.14006a800
mov ecx, dword [rbp]
mov r11d, eax
mov dword [rsp + 0x58], r11d
cmp ecx, 0x10200001
je 0x14007e963
cmp ecx, 0x20200001
je 0x14007e934
cmp ecx, 0x30200001
jne 0x14007ed21
mov ecx, dword [rbp + 0x30]
mov edi, ebx
mov eax, dword [r12 + 4]
mov r9d, ecx
sar eax, 1
imul eax, ecx
shr edi, 1
mov r10d, edi
sub r9d, edi
imul r10d, ecx
mov edx, edi
movsxd r14, eax
movsxd rax, dword [r12]
sar rax, 1
add r14, rax
add r14, qword [rbp + 0x38]
jmp 0x14007e98d
mov ecx, dword [rbp + 0x30]
mov edx, ebx
mov eax, dword [r12 + 4]
mov r9d, ecx
imul eax, ecx
mov r10d, ebx
shr edx, 1
sub r9d, edx
imul r10d, ecx
movsxd r14, eax
movsxd rax, dword [r12]
sar rax, 1
add r14, rax
add r14, qword [rbp + 0x38]
jmp 0x14007e98b
mov ecx, dword [rbp + 0x30]
mov r10d, ebx
mov eax, dword [r12 + 4]
mov r9d, ecx
imul eax, ecx
sub r9d, ebx
imul r10d, ecx
mov edx, ebx
movsxd r14, eax
add r14, qword [rbp + 0x38]
movsxd rax, dword [r12]
add r14, rax
mov edi, ebx
mov eax, dword [rsp + 0x140]
mov r8, r14
mov rbp, qword [rsp + 0x130]
dec eax
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x48], r9d
mov qword [rsp + 0x80], r11
lea r11d, [r15 - 1]
mov eax, edx
lea rcx, [r15 + rbp]
mov r9d, r10d
mov qword [rsp + 0x90], rax
mov dword [rsp + 0x24], edi
mov dword [rsp + 0x108], edx
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x78], r14
mov dword [rsp + 0x6c], r11d
mov qword [rsp + 0x88], r9
nop dword [rax]
mov dword [rsp + 0x28], r11d
nop word [rax + rax]
movzx r12d, byte [rbp]
inc rbp
movzx r13d, byte [rcx]
inc rcx
mov qword [rsp + 0x60], rbp
movzx r14d, byte [rbp]
movzx r15d, byte [rcx]
sub r14d, r12d
mov dword [rsp + 0x4c], r14d
sub r15d, r13d
mov qword [rsp + 0x30], rcx
nop dword [rax]
mov ebp, edi
imul r13d, ebx
mov r11d, r12d
mov edi, r14d
imul r11d, esi
mov r10, r8
imul edi, ebx
imul r12d, ebx
mov esi, edi
mov eax, edi
neg eax
imul esi, ebx
mov dword [rsp + 0x54], eax
mov r9d, eax
mov eax, r15d
neg esi
imul eax, ebx
mov dword [rsp + 0x50], eax
nop word [rax + rax]
mov r14d, dword [rsp + 0x58]
mov ebx, edx
nop word [rax + rax]
movzx r8d, byte [r10]
mov eax, r11d
mov rcx, qword [rsp + 0x128]
add r11d, edi
dec ebx
movsx edx, byte [r8 + rcx]
lea ecx, [r14 + r14]
sar eax, cl
imul edx, eax
sar edx, 8
add dl, r8b
mov byte [r10], dl
inc r10
test ebx, ebx
jg 0x14007ea80
mov ecx, dword [rsp + 0x48]
lea eax, [rsi + r13]
mov edx, dword [rsp + 0x108]
sub eax, r12d
add r11d, eax
sub r9d, r15d
add r9d, dword [rsp + 0x4c]
mov eax, r15d
sub eax, dword [rsp + 0x4c]
add r10, rcx
add edi, eax
dec ebp
mov eax, dword [rsp + 0x54]
add eax, dword [rsp + 0x50]
sub esi, eax
test ebp, ebp
jg 0x14007ea70
mov r8, qword [rsp + 0x78]
mov eax, dword [rsp + 0x28]
add r8, qword [rsp + 0x90]
dec eax
mov qword [rsp + 0x78], r8
mov dword [rsp + 0x28], eax
test eax, eax
jg 0x14007eb47
jne 0x14007eb62
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x30]
mov ebx, dword [rsp + 0x20]
mov edi, dword [rsp + 0x24]
movzx r12d, byte [rax]
inc rax
movzx r13d, byte [rcx]
inc rcx
mov esi, dword [rsp + 0x38]
mov qword [rsp + 0x60], rax
xor eax, eax
mov r15d, eax
mov dword [rsp + 0x4c], eax
mov r14d, eax
jmp 0x14007ea28
mov rcx, qword [rsp + 0x30]
mov ebx, dword [rsp + 0x20]
mov edi, dword [rsp + 0x24]
mov esi, dword [rsp + 0x38]
mov rbp, qword [rsp + 0x60]
jmp 0x14007ea00
mov r14, qword [rsp + 0x40]
add r14, qword [rsp + 0x88]
mov ebp, dword [rsp + 0x68]
mov r8, r14
dec ebp
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x78], r14
mov dword [rsp + 0x68], ebp
test ebp, ebp
jg 0x14007ebce
jne 0x14007e01b
mov rcx, qword [rsp + 0x80]
mov r12, qword [rsp + 0x110]
mov rbp, qword [rsp + 0x60]
mov ebx, dword [rsp + 0x20]
mov edi, dword [rsp + 0x24]
movsxd rax, dword [r12 + 8]
mov esi, dword [rsp + 0x38]
mov r11d, dword [rsp + 0x6c]
sar rax, cl
mov rcx, qword [rsp + 0x30]
sub rbp, rax
sub rcx, rax
jmp 0x14007e9f0
mov rcx, qword [rsp + 0x30]
mov ebx, dword [rsp + 0x20]
mov edi, dword [rsp + 0x24]
mov esi, dword [rsp + 0x38]
mov r11d, dword [rsp + 0x6c]
mov rbp, qword [rsp + 0x60]
jmp 0x14007e9f0
mov r9d, dword [rdx + 4]
test r9d, r9d
je 0x14007f2e7
mov r10d, dword [rdx + 8]
test r10d, r10d
je 0x14007f2e7
cmp qword [rdx + 0x18], 0
je 0x14007ec15
cmp dword [rdx + 0x10], 0
jne 0x14007ec44
cmp qword [rdx + 0x28], 0
je 0x14007ec22
cmp dword [rdx + 0x20], 0
jne 0x14007ec44
cmp qword [rdx + 0x38], 0
je 0x14007ec2f
cmp dword [rdx + 0x30], 0
jne 0x14007ec44
cmp qword [rdx + 0x48], 0
je 0x14007f2e7
cmp dword [rdx + 0x40], 0
je 0x14007f2e7
test r15, r15
je 0x14007f2e7
mov eax, dword [r8]
test eax, eax
js 0x14007f2e7
mov ecx, dword [r8 + 4]
test ecx, ecx
js 0x14007f2e7
mov r8d, dword [r8 + 8]
test r8d, r8d
jle 0x14007f2e7
mov edx, dword [r15 + 0xc]
test edx, edx
jle 0x14007f2e7
add eax, r8d
cmp eax, r9d
jg 0x14007f2e7
lea eax, [rdx + rcx]
cmp eax, r10d
jg 0x14007f2e7
mov r11, qword [rsp + 0x130]
mov qword [rsp + 0xa0], r11
test r11, r11
je 0x14007f2e7
test rbx, rbx
je 0x14007f2e7
mov cl, 0xff
lea rdx, [rbx + 0xff]
sub byte [rdx], cl
lea rdx, [rdx - 1]
movzx eax, cl
add cl, 0xff
test al, al
jne 0x14007ecc0
mov eax, dword [r15 + 8]
xor edx, edx
mov esi, dword [rsp + 0x138]
div esi
mov edi, eax
mov r12d, eax
imul edi, eax
mov ecx, eax
mov dword [rsp + 0x20], edi
call fcn.14006a800
mov ecx, dword [r13]
mov r10d, eax
lea eax, [r10 + r10]
mov dword [rsp + 0x58], eax
cmp ecx, 0x10200001
je 0x14007ed2b
cmp ecx, 0x20200001
je 0x14007ed2b
cmp ecx, 0x30100001
je 0x14007ed2b
cmp ecx, 0x30200001
je 0x14007ed2b
mov ebp, 0xfffffffa
jmp 0x14007f2ec
mov ecx, dword [r13 + 0x10]
lea rbx, [r11 + rsi]
mov eax, dword [r15 + 4]
mov r8d, ecx
imul eax, ecx
sub r8d, r12d
mov edx, r12d
mov qword [rsp + 0x98], r10
imul edx, ecx
lea r10d, [rsi - 1]
mov qword [rsp + 0x40], r11
mov dword [rsp + 0x28], r10d
movsxd r9, eax
movsxd rax, dword [r15]
add r9, rax
mov eax, dword [rsp + 0x140]
add r9, qword [r13 + 0x18]
dec eax
mov qword [rsp + 0x80], r9
mov dword [rsp + 0x68], eax
xor ebp, ebp
mov eax, r8d
mov qword [rsp + 0x90], rax
mov eax, edx
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x78], r9
nop word [rax + rax]
mov rdx, qword [rsp + 0x40]
nop word [rax + rax]
mov dword [rsp + 0x6c], r10d
nop word [rax + rax]
movzx r13d, byte [rdx]
inc rdx
movzx eax, byte [rbx]
inc rbx
movzx r14d, byte [rdx]
movzx r15d, byte [rbx]
sub r14d, r13d
sub r15d, eax
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x40], rdx
nop word [rax + rax]
imul eax, r12d
mov r11d, r13d
imul r11d, edi
mov r10, r9
mov edi, r14d
imul r13d, r12d
imul edi, r12d
mov ebp, r12d
mov dword [rsp + 0x54], eax
mov eax, r15d
mov esi, edi
mov ecx, edi
neg ecx
imul esi, r12d
mov dword [rsp + 0x50], ecx
mov r9d, ecx
neg esi
imul eax, r12d
mov dword [rsp + 0x70], eax
nop
mov ecx, dword [rsp + 0x58]
mov ebx, r12d
nop word [rax + rax]
movzx r8d, byte [r10]
mov eax, r11d
mov rdx, qword [rsp + 0x118]
add r11d, edi
sar eax, cl
dec ebx
movsx edx, byte [r8 + rdx]
imul edx, eax
sar edx, 8
add dl, r8b
mov byte [r10], dl
inc r10
test ebx, ebx
jg 0x14007ee40
mov eax, dword [rsp + 0x54]
sub r9d, r15d
add r10, qword [rsp + 0x90]
add eax, esi
sub eax, r13d
add r9d, r14d
add r11d, eax
dec ebp
mov eax, r15d
sub eax, r14d
add edi, eax
mov eax, dword [rsp + 0x50]
add eax, dword [rsp + 0x70]
sub esi, eax
test ebp, ebp
jg 0x14007ee30
mov r9, qword [rsp + 0x78]
mov ecx, dword [rsp + 0x6c]
add r9, r12
dec ecx
mov qword [rsp + 0x78], r9
mov dword [rsp + 0x6c], ecx
test ecx, ecx
jg 0x14007eee6
jne 0x14007eef9
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x30]
mov edi, dword [rsp + 0x20]
movzx r13d, byte [rdx]
inc rdx
movzx eax, byte [rbx]
inc rbx
xor r8d, r8d
mov r15d, r8d
mov r14d, r8d
jmp 0x14007eddb
mov rbx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
mov edi, dword [rsp + 0x20]
jmp 0x14007edc0
mov rbp, qword [rsp + 0x80]
add rbp, qword [rsp + 0x88]
mov esi, dword [rsp + 0x68]
mov r9, rbp
dec esi
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x78], rbp
mov dword [rsp + 0x68], esi
test esi, esi
jg 0x14007ef5e
jne 0x14007ef71
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x30]
movsxd rax, dword [rax + 8]
mov edi, dword [rsp + 0x20]
mov r10d, dword [rsp + 0x28]
sar rax, cl
sub rdx, rax
sub rbx, rax
jmp 0x14007edb0
mov rbx, qword [rsp + 0x30]
mov edi, dword [rsp + 0x20]
mov r10d, dword [rsp + 0x28]
jmp 0x14007eda0
mov rdi, qword [rsp + 0x110]
mov eax, dword [rdi]
test eax, eax
js 0x14007f2e7
mov ecx, dword [rdi + 4]
test ecx, ecx
js 0x14007f2e7
mov r8d, dword [rdi + 8]
test r8d, r8d
jle 0x14007f2e7
mov edx, dword [rdi + 0xc]
test edx, edx
jle 0x14007f2e7
mov rbp, qword [rsp + 0x108]
add eax, r8d
cmp eax, dword [rbp + 4]
jg 0x14007f2e7
lea eax, [rdx + rcx]
cmp eax, dword [rbp + 8]
jg 0x14007f2e7
mov r8, qword [rsp + 0x120]
test r8, r8
je 0x14007f2e7
mov rax, qword [rsp + 0x128]
test rax, rax
je 0x14007f2e7
mov cl, 0xff
lea rdx, [rax + 0xff]
sub r8, rax
nop dword [rax]
nop dword [rax + rax]
sub byte [r8 + rdx], cl
movzx eax, cl
sub byte [rdx], cl
lea rdx, [rdx - 1]
add cl, 0xff
test al, al
jne 0x14007f000
mov eax, dword [rdi + 8]
xor edx, edx
mov r11d, dword [rsp + 0x138]
div r11d
mov ebx, eax
mov dword [rsp + 0x58], eax
imul ebx, eax
mov ecx, eax
mov r9d, eax
mov dword [rsp + 0x20], ebx
call fcn.14006a800
cmp dword [rbp], 0x30100001
mov r10d, eax
lea eax, [r10 + r10]
mov dword [rsp + 0x54], eax
jne 0x14007ed21
mov ecx, dword [rbp + 0x20]
mov esi, r9d
mov eax, dword [rdi + 4]
mov r8d, ecx
sub r8d, r9d
sar eax, 1
mov r9d, dword [rsp + 0x140]
imul eax, ecx
shr esi, 1
mov edx, esi
mov qword [rsp + 0xa8], r10
imul edx, ecx
mov r10d, r8d
movsxd rcx, eax
add rcx, qword [rbp + 0x28]
movsxd rax, dword [rdi]
add rcx, rax
mov r8d, edx
dec r9d
mov dword [rsp + 0x108], esi
mov dword [rsp + 0x68], r9d
lea eax, [rsi + rsi]
mov r9d, r11d
mov qword [rsp + 0x80], rcx
add r9, qword [rsp + 0x130]
dec r11d
mov qword [rsp + 0x60], rcx
mov dword [rsp + 0x28], r11d
mov qword [rsp + 0x90], r10
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x98], r8
nop dword [rax + rax]
mov r8, qword [rsp + 0xa0]
nop dword [rax + rax]
mov dword [rsp + 0x6c], r11d
nop word [rax + rax]
movzx r15d, byte [r8]
inc r8
movzx r13d, byte [r9]
inc r9
movzx ebp, byte [r8]
movzx r14d, byte [r9]
sub ebp, r15d
sub r14d, r13d
mov qword [rsp + 0x30], r9
mov qword [rsp + 0xa0], r8
nop dword [rax]
mov edx, dword [rsp + 0x58]
mov rax, rcx
mov r11d, r15d
imul r13d, edx
imul r11d, ebx
mov edi, ebp
imul edi, edx
mov r12d, esi
imul r15d, edx
mov ebx, edi
mov ecx, edi
neg ecx
imul ebx, edx
mov dword [rsp + 0x50], ecx
mov r10d, ecx
mov ecx, r14d
neg ebx
imul ecx, edx
mov dword [rsp + 0x70], ecx
nop word [rax + rax]
movzx r8d, byte [rax]
mov r9d, r11d
mov rdx, qword [rsp + 0x120]
add r11d, edi
mov ecx, dword [rsp + 0x54]
sar r9d, cl
movsx edx, byte [r8 + rdx]
imul edx, r9d
sar edx, 8
add dl, r8b
movzx r8d, byte [rax + 1]
mov byte [rax], dl
mov rdx, qword [rsp + 0x128]
movsx edx, byte [r8 + rdx]
imul edx, r9d
sar edx, 8
add dl, r8b
mov byte [rax + 1], dl
add rax, 2
add esi, 0xffffffff
jne 0x14007f170
add rax, qword [rsp + 0x90]
lea ecx, [rbx + r13]
mov esi, dword [rsp + 0x108]
sub ecx, r15d
add r11d, ecx
sub r10d, r14d
mov ecx, r14d
add r10d, ebp
sub ecx, ebp
add edi, ecx
mov ecx, dword [rsp + 0x50]
add ecx, dword [rsp + 0x70]
sub ebx, ecx
add r12d, 0xffffffff
jne 0x14007f170
mov rcx, qword [rsp + 0x60]
mov eax, dword [rsp + 0x6c]
add rcx, qword [rsp + 0x88]
dec eax
mov qword [rsp + 0x60], rcx
mov dword [rsp + 0x6c], eax
test eax, eax
jg 0x14007f249
jne 0x14007f25f
mov r8, qword [rsp + 0xa0]
mov r9, qword [rsp + 0x30]
mov ebx, dword [rsp + 0x20]
movzx r15d, byte [r8]
inc r8
movzx r13d, byte [r9]
inc r9
xor eax, eax
mov r14d, eax
mov ebp, eax
jmp 0x14007f11c
mov r9, qword [rsp + 0x30]
mov r8, qword [rsp + 0xa0]
mov ebx, dword [rsp + 0x20]
jmp 0x14007f100
mov rdi, qword [rsp + 0x80]
add rdi, qword [rsp + 0x98]
mov r11d, dword [rsp + 0x68]
mov rcx, rdi
dec r11d
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x80], rdi
mov dword [rsp + 0x68], r11d
test r11d, r11d
jg 0x14007f2d4
jne 0x14007e01b
mov rcx, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0x110]
mov r8, qword [rsp + 0xa0]
mov r9, qword [rsp + 0x30]
mov ebx, dword [rsp + 0x20]
movsxd rax, dword [rdi + 8]
mov r11d, dword [rsp + 0x28]
sar rax, cl
mov rcx, qword [rsp + 0x60]
sub r8, rax
sub r9, rax
jmp 0x14007f0f0
mov r9, qword [rsp + 0x30]
mov ebx, dword [rsp + 0x20]
mov r11d, dword [rsp + 0x28]
jmp 0x14007f0e0
mov ebp, 0xfffffffc
mov eax, ebp
mov rbx, qword [rsp + 0x100]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret