Function at 0x14007d320
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 0x14007d852
lea eax, [rcx - 0x10200001]
test eax, 0xefffffff
je 0x14007d870
lea eax, [rcx - 0x20000001]
cmp eax, 1
ja 0x14007d866
mov r9d, dword [rdx + 4]
xor ebp, ebp
test r9d, r9d
je 0x14007eb17
mov r10d, dword [rdx + 8]
test r10d, r10d
je 0x14007eb17
test ecx, ecx
je 0x14007eb17
cmp qword [rdx + 0x18], rbp
je 0x14007d3ac
cmp dword [rdx + 0x10], ebp
jne 0x14007d3d5
cmp qword [rdx + 0x28], rbp
je 0x14007d3b7
cmp dword [rdx + 0x20], ebp
jne 0x14007d3d5
cmp qword [rdx + 0x38], rbp
je 0x14007d3c2
cmp dword [rdx + 0x30], ebp
jne 0x14007d3d5
cmp qword [rdx + 0x48], rbp
je 0x14007eb17
cmp dword [rdx + 0x40], ebp
je 0x14007eb17
test r15, r15
je 0x14007eb17
mov eax, dword [r8]
test eax, eax
js 0x14007eb17
mov ecx, dword [r8 + 4]
test ecx, ecx
js 0x14007eb17
mov edx, dword [r8 + 8]
test edx, edx
jle 0x14007eb17
mov r8d, dword [r8 + 0xc]
test r8d, r8d
jle 0x14007eb17
add eax, edx
cmp eax, r9d
jg 0x14007eb17
lea eax, [r8 + rcx]
cmp eax, r10d
jg 0x14007eb17
mov r10, qword [rsp + 0x130]
test r10, r10
je 0x14007eb17
test rbx, rbx
je 0x14007eb17
mov rax, qword [rsp + 0x120]
test rax, rax
je 0x14007eb17
mov r9, qword [rsp + 0x128]
test r9, r9
je 0x14007eb17
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 0x14007d480
mov ecx, dword [r13]
sub ecx, 0x20000001
je 0x14007d4c2
cmp ecx, 1
jne 0x14007eb17
mov r11d, 1
lea edi, [rcx + 1]
mov esi, r11d
lea r14d, [rcx + 2]
mov r12, rbp
jmp 0x14007d4d6
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.14006a030
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 0x14007d660
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 0x14007d650
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 0x14007d7de
jne 0x14007d7ed
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 0x14007d5db
mov r10, qword [rsp + 0x60]
mov r9, qword [rsp + 0x30]
jmp 0x14007d5c0
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 0x14007d838
jne 0x14007d84b
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 0x14007d5b0
mov r10, qword [rsp + 0x60]
mov r9, qword [rsp + 0x30]
mov ecx, dword [rsp + 0x28]
jmp 0x14007d5b0
xor ebp, ebp
jmp 0x14007eb1c
cmp ecx, 0x30100001
je 0x14007e41e
cmp ecx, 0x30200001
je 0x14007d870
mov eax, 0xfffffffa
jmp 0x14007eb1e
mov r10d, dword [rdx + 4]
test r10d, r10d
je 0x14007eb17
mov r9d, dword [rdx + 8]
test r9d, r9d
je 0x14007eb17
test ecx, ecx
je 0x14007eb17
cmp qword [rdx + 0x18], 0
je 0x14007d89f
cmp dword [rdx + 0x10], 0
jne 0x14007d8ce
cmp qword [rdx + 0x28], 0
je 0x14007d8ac
cmp dword [rdx + 0x20], 0
jne 0x14007d8ce
cmp qword [rdx + 0x38], 0
je 0x14007d8b9
cmp dword [rdx + 0x30], 0
jne 0x14007d8ce
cmp qword [rdx + 0x48], 0
je 0x14007eb17
cmp dword [rdx + 0x40], 0
je 0x14007eb17
test r15, r15
je 0x14007eb17
mov eax, dword [r8]
test eax, eax
js 0x14007eb17
mov ecx, dword [r8 + 4]
test ecx, ecx
js 0x14007eb17
mov r8d, dword [r8 + 8]
test r8d, r8d
jle 0x14007eb17
mov edx, dword [r15 + 0xc]
test edx, edx
jle 0x14007eb17
add eax, r8d
cmp eax, r10d
jg 0x14007eb17
lea eax, [rdx + rcx]
cmp eax, r9d
jg 0x14007eb17
mov r11, qword [rsp + 0x130]
test r11, r11
je 0x14007eb17
test rbx, rbx
je 0x14007eb17
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 0x14007d942
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.14006a030
mov ecx, dword [r13]
mov r9d, eax
lea eax, [r9 + r9]
mov dword [rsp + 0x58], eax
cmp ecx, 0x10200001
je 0x14007d9a7
cmp ecx, 0x20200001
je 0x14007d9a7
cmp ecx, 0x30100001
je 0x14007d9a7
cmp ecx, 0x30200001
jne 0x14007e551
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 0x14007dac0
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 0x14007dab0
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 0x14007db66
jne 0x14007db79
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 0x14007da5b
mov rbx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
mov edi, dword [rsp + 0x24]
jmp 0x14007da40
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 0x14007dbe2
jne 0x14007dbf5
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 0x14007da30
mov rbx, qword [rsp + 0x30]
mov edi, dword [rsp + 0x24]
mov r9d, dword [rsp + 0x48]
jmp 0x14007da20
mov r15, qword [rsp + 0x108]
mov r10d, dword [r15 + 4]
test r10d, r10d
je 0x14007eb17
mov r9d, dword [r15 + 8]
test r9d, r9d
je 0x14007eb17
cmp dword [r15], 0
je 0x14007eb17
cmp qword [r15 + 0x18], 0
je 0x14007dc2f
cmp dword [r15 + 0x10], 0
jne 0x14007dc61
cmp qword [r15 + 0x28], 0
je 0x14007dc3d
cmp dword [r15 + 0x20], 0
jne 0x14007dc61
cmp qword [r15 + 0x38], 0
je 0x14007dc4b
cmp dword [r15 + 0x30], 0
jne 0x14007dc61
cmp qword [r15 + 0x48], 0
je 0x14007eb17
cmp dword [r15 + 0x40], 0
je 0x14007eb17
mov r12, qword [rsp + 0x110]
mov eax, dword [r12]
test eax, eax
js 0x14007eb17
mov ecx, dword [r12 + 4]
test ecx, ecx
js 0x14007eb17
mov r8d, dword [r12 + 8]
test r8d, r8d
jle 0x14007eb17
mov edx, dword [r12 + 0xc]
test edx, edx
jle 0x14007eb17
add eax, r8d
cmp eax, r10d
jg 0x14007eb17
lea eax, [rdx + rcx]
cmp eax, r9d
jg 0x14007eb17
mov rax, qword [rsp + 0x120]
test rax, rax
je 0x14007eb17
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 0x14007dcd0
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.14006a030
mov ecx, dword [r15]
mov r10d, eax
lea eax, [r10 + r10]
mov dword [rsp + 0x54], eax
cmp ecx, 0x10200001
je 0x14007dd97
cmp ecx, 0x20200001
je 0x14007dd66
cmp ecx, 0x30200001
jne 0x14007e551
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 0x14007ddc4
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 0x14007ddc1
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 0x14007deb0
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 0x14007deb0
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 0x14007df65
jne 0x14007df7c
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 0x14007de5c
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x60]
mov edi, dword [rsp + 0x24]
mov esi, dword [rsp + 0x20]
jmp 0x14007de40
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 0x14007dfe0
jne 0x14007dffc
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 0x14007de30
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 0x14007de30
mov rbp, qword [rsp + 0x108]
mov r10d, dword [rbp + 4]
test r10d, r10d
je 0x14007eb17
mov r9d, dword [rbp + 8]
test r9d, r9d
je 0x14007eb17
cmp dword [rbp], 0
je 0x14007eb17
cmp qword [rbp + 0x18], 0
je 0x14007e035
cmp dword [rbp + 0x10], 0
jne 0x14007e064
cmp qword [rbp + 0x28], 0
je 0x14007e042
cmp dword [rbp + 0x20], 0
jne 0x14007e064
cmp qword [rbp + 0x38], 0
je 0x14007e04f
cmp dword [rbp + 0x30], 0
jne 0x14007e064
cmp qword [rbp + 0x48], 0
je 0x14007eb17
cmp dword [rbp + 0x40], 0
je 0x14007eb17
mov r12, qword [rsp + 0x110]
mov eax, dword [r12]
test eax, eax
js 0x14007eb17
mov ecx, dword [r12 + 4]
test ecx, ecx
js 0x14007eb17
mov r8d, dword [r12 + 8]
test r8d, r8d
jle 0x14007eb17
mov edx, dword [r12 + 0xc]
test edx, edx
jle 0x14007eb17
add eax, r8d
cmp eax, r10d
jg 0x14007eb17
lea eax, [rdx + rcx]
cmp eax, r9d
jg 0x14007eb17
mov rax, qword [rsp + 0x128]
test rax, rax
je 0x14007eb17
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 0x14007e0d2
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.14006a030
mov ecx, dword [rbp]
mov r11d, eax
mov dword [rsp + 0x58], r11d
cmp ecx, 0x10200001
je 0x14007e193
cmp ecx, 0x20200001
je 0x14007e164
cmp ecx, 0x30200001
jne 0x14007e551
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 0x14007e1bd
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 0x14007e1bb
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 0x14007e2b0
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 0x14007e2a0
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 0x14007e377
jne 0x14007e392
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 0x14007e258
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 0x14007e230
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 0x14007e3fe
jne 0x14007d84b
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 0x14007e220
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 0x14007e220
mov r9d, dword [rdx + 4]
test r9d, r9d
je 0x14007eb17
mov r10d, dword [rdx + 8]
test r10d, r10d
je 0x14007eb17
cmp qword [rdx + 0x18], 0
je 0x14007e445
cmp dword [rdx + 0x10], 0
jne 0x14007e474
cmp qword [rdx + 0x28], 0
je 0x14007e452
cmp dword [rdx + 0x20], 0
jne 0x14007e474
cmp qword [rdx + 0x38], 0
je 0x14007e45f
cmp dword [rdx + 0x30], 0
jne 0x14007e474
cmp qword [rdx + 0x48], 0
je 0x14007eb17
cmp dword [rdx + 0x40], 0
je 0x14007eb17
test r15, r15
je 0x14007eb17
mov eax, dword [r8]
test eax, eax
js 0x14007eb17
mov ecx, dword [r8 + 4]
test ecx, ecx
js 0x14007eb17
mov r8d, dword [r8 + 8]
test r8d, r8d
jle 0x14007eb17
mov edx, dword [r15 + 0xc]
test edx, edx
jle 0x14007eb17
add eax, r8d
cmp eax, r9d
jg 0x14007eb17
lea eax, [rdx + rcx]
cmp eax, r10d
jg 0x14007eb17
mov r11, qword [rsp + 0x130]
mov qword [rsp + 0xa0], r11
test r11, r11
je 0x14007eb17
test rbx, rbx
je 0x14007eb17
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 0x14007e4f0
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.14006a030
mov ecx, dword [r13]
mov r10d, eax
lea eax, [r10 + r10]
mov dword [rsp + 0x58], eax
cmp ecx, 0x10200001
je 0x14007e55b
cmp ecx, 0x20200001
je 0x14007e55b
cmp ecx, 0x30100001
je 0x14007e55b
cmp ecx, 0x30200001
je 0x14007e55b
mov ebp, 0xfffffffa
jmp 0x14007eb1c
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 0x14007e670
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 0x14007e660
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 0x14007e716
jne 0x14007e729
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 0x14007e60b
mov rbx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
mov edi, dword [rsp + 0x20]
jmp 0x14007e5f0
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 0x14007e78e
jne 0x14007e7a1
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 0x14007e5e0
mov rbx, qword [rsp + 0x30]
mov edi, dword [rsp + 0x20]
mov r10d, dword [rsp + 0x28]
jmp 0x14007e5d0
mov rdi, qword [rsp + 0x110]
mov eax, dword [rdi]
test eax, eax
js 0x14007eb17
mov ecx, dword [rdi + 4]
test ecx, ecx
js 0x14007eb17
mov r8d, dword [rdi + 8]
test r8d, r8d
jle 0x14007eb17
mov edx, dword [rdi + 0xc]
test edx, edx
jle 0x14007eb17
mov rbp, qword [rsp + 0x108]
add eax, r8d
cmp eax, dword [rbp + 4]
jg 0x14007eb17
lea eax, [rdx + rcx]
cmp eax, dword [rbp + 8]
jg 0x14007eb17
mov r8, qword [rsp + 0x120]
test r8, r8
je 0x14007eb17
mov rax, qword [rsp + 0x128]
test rax, rax
je 0x14007eb17
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 0x14007e830
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.14006a030
cmp dword [rbp], 0x30100001
mov r10d, eax
lea eax, [r10 + r10]
mov dword [rsp + 0x54], eax
jne 0x14007e551
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 0x14007e9a0
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 0x14007e9a0
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 0x14007ea79
jne 0x14007ea8f
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 0x14007e94c
mov r9, qword [rsp + 0x30]
mov r8, qword [rsp + 0xa0]
mov ebx, dword [rsp + 0x20]
jmp 0x14007e930
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 0x14007eb04
jne 0x14007d84b
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 0x14007e920
mov r9, qword [rsp + 0x30]
mov ebx, dword [rsp + 0x20]
mov r11d, dword [rsp + 0x28]
jmp 0x14007e910
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