Function at 0x180081ea0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov r14d, r9d
mov r12, r8
mov r11, rdx
mov r10, rcx
mov eax, dword [rcx + 0x4018]
test rax, rax
je 0x180082797
mov rcx, qword [r10 + 0x4000]
add rcx, rax
mov edx, dword [rsp + 0x148]
mov r9d, dword [r10 + 0x4010]
lea ebp, [r9 + r14]
cmp ebp, 0x80000001
jb 0x180081f8b
mov rbp, qword [r10 + 0x4000]
add r9d, 0xffff0000
movd xmm0, r9d
pshufd xmm0, xmm0, 0
xor ebx, ebx
movdqa xmm1, xmmword [0x1800931d0]
movdqa xmm2, xmm0
pxor xmm2, xmm1
movdqu xmm3, xmmword [r10 + rbx*4]
movdqa xmm4, xmm3
pxor xmm4, xmm1
pcmpgtd xmm4, xmm2
psubd xmm3, xmm0
pand xmm3, xmm4
movdqu xmmword [r10 + rbx*4], xmm3
add rbx, 4
cmp rbx, 0x1000
jne 0x180081f20
add rbp, rax
mov dword [r10 + 0x4010], 0x10000
mov eax, dword [r10 + 0x4018]
cmp eax, 0x10001
jb 0x180081f79
mov dword [r10 + 0x4018], 0x10000
mov eax, 0x10000
mov ebx, eax
sub rbp, rbx
mov qword [r10 + 0x4000], rbp
mov r9d, 0x10000
cmp edx, 2
mov edi, 1
cmovge edi, edx
mov edx, 0x10001
cmp edi, edx
cmovae edi, edx
cmp eax, 3
ja 0x180081fd0
test r14d, r14d
jle 0x180081fd0
cmp rcx, r11
je 0x180081fd0
cmp qword [r10 + 0x4008], 0
jne 0x180081fd0
mov dword [r10 + 0x4018], 0
mov qword [r10 + 0x4000], r11
xor eax, eax
mov rcx, r11
movsxd rdx, r14d
add rdx, r11
mov rbp, qword [r10 + 0x4000]
cmp rdx, rbp
jbe 0x180082011
cmp rdx, rcx
jae 0x180082011
mov ebp, ecx
sub ebp, edx
mov eax, 0x10000
cmp ebp, eax
cmovae ebp, eax
xor eax, eax
cmp ebp, 4
cmovae eax, ebp
mov dword [r10 + 0x4018], eax
mov rbp, rcx
sub rbp, rax
mov qword [r10 + 0x4000], rbp
mov r13d, dword [rsp + 0x140]
cmp rcx, r11
mov qword [rsp + 0x78], r11
mov qword [rsp + 0x88], r10
je 0x18008279e
mov rdx, qword [r10 + 0x4008]
test rdx, rdx
mov qword [rsp + 0xc8], r14
mov qword [rsp + 0x68], r9
je 0x1800828db
cmp r14d, 0x1001
jl 0x180082a0f
mov r8d, 0x4020
mov rcx, r10
call fcn.180091e30
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
xor eax, eax
cmp r14d, 0x7e000000
ja 0x180082e6e
movabs r9, 0xcf1bbcdcbb000000
mov r8d, dword [r10 + 0x4010]
mov rsi, r11
sub rsi, r8
mov rcx, qword [r10 + 0x4000]
mov eax, dword [r10 + 0x4018]
mov rdx, qword [rsp + 0xc8]
mov ebp, edi
lea r15d, [rax + rdx]
mov rbx, rax
add rbx, rcx
mov eax, edx
mov qword [rsp + 0x30], rax
add rax, r11
mov qword [rsp + 0xc0], rax
mov rdi, rbx
sub rdi, r8
movsxd rax, r13d
mov qword [rsp + 0xa0], r12
add rax, r12
mov qword [rsp + 0x40], rax
mov dword [r10 + 0x4018], r15d
lea eax, [r8 + rdx]
mov dword [r10 + 0x4010], eax
mov dword [r10 + 0x4014], 2
mov rdx, qword [r11]
imul rdx, r9
shr rdx, 0x32
and edx, 0xfffffffc
mov r13d, ebp
shl r13d, 6
or r13d, 1
lea rax, [r11 + 2]
lea r14, [r11 + 1]
mov r15, r8
inc r15
mov r12, rcx
mov qword [rsp + 0x60], rcx
test rcx, rcx
mov rcx, qword [rsp + 0x30]
lea rcx, [r11 + rcx - 0xb]
mov qword [rsp + 0x28], rcx
cmove rdi, r12
mov r12, qword [rsp + 0xa0]
mov qword [rsp + 0x80], rdi
mov dword [r10 + rdx], r8d
mov rdx, qword [rsp + 0x30]
lea rcx, [r11 + rdx - 5]
mov qword [rsp + 0x38], rcx
cmove rbx, qword [rsp + 0x60]
mov qword [rsp + 0x90], rbx
lea rcx, [r11 + rdx - 0xc]
mov qword [rsp + 0x68], rcx
mov rdx, r11
mov rbx, r12
mov qword [rsp + 0x70], r8
mov dword [rsp + 0x54], ebp
mov qword [rsp + 0x48], rsi
mov dword [rsp + 0xa8], r13d
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x30], rdx
mov rdx, qword [rdx + 1]
mov ecx, r13d
mov r13, qword [rsp + 0x28]
mov rdi, rax
imul rdx, r9
mov rax, rdx
shr rax, 0x34
mov ebx, dword [r10 + rax*4]
mov rdx, qword [rdi]
mov dword [r10 + rax*4], r15d
lea eax, [rbx + 0xffff]
cmp eax, r15d
jb 0x1800821f6
cmp ebx, r8d
mov rax, rsi
cmovb rax, qword [rsp + 0x80]
mov esi, dword [rax + rbx]
cmp esi, dword [r14]
mov rsi, qword [rsp + 0x48]
je 0x180082218
mov r15, rdi
sub r15, rsi
mov eax, ebp
add rax, rdi
lea ebx, [rcx + 1]
shr ecx, 6
mov ebp, ecx
mov ecx, ebx
mov r14, rdi
cmp rax, r13
jbe 0x1800821b6
jmp 0x180084d49
add rax, rbx
cmp ebx, r8d
mov r12, qword [rsp + 0x78]
cmovb r12, qword [rsp + 0x60]
sub r15d, ebx
lea r8d, [r14 + 0xef]
mov ebx, r14d
shl bl, 4
mov rbp, qword [rsp + 0x30]
mov edx, ebp
shl dl, 4
sub bl, dl
mov rdx, rbp
xor edi, edi
mov r13, rdi
mov ecx, r8d
mov r11d, ebx
lea rbp, [rax + rdi]
lea rsi, [r14 + rdi]
cmp rbp, r12
jbe 0x180082282
cmp rsi, rdx
jbe 0x180082282
mov dl, byte [r14 + r13 - 1]
lea rdi, [r13 - 1]
lea r8d, [rcx - 1]
lea ebx, [r11 - 0x10]
cmp dl, byte [rax + r13 - 1]
mov rdx, qword [rsp + 0x30]
je 0x18008224a
mov qword [rsp + 0xb8], rcx
mov qword [rsp + 0x98], rsi
mov eax, r14d
sub eax, edx
lea ecx, [rax + r13]
mov eax, r14d
sub eax, edx
add rax, r13
mov qword [rsp + 0xb0], rcx
mov r8, qword [rsp + 0x58]
add rcx, r8
mov edx, eax
mov ebx, 0x80808081
imul rdx, rbx
shr rdx, 0x27
add rcx, rdx
add rcx, 9
cmp rcx, qword [rsp + 0x40]
ja 0x180084ff3
lea rcx, [r8 + 1]
cmp eax, 0xf
jb 0x1800823a5
mov edi, r14d
mov rdx, qword [rsp + 0x30]
sub edi, edx
add edi, 0xfffffff1
add rdi, r13
mov byte [r8], 0xf0
cmp edi, 0xfe
jle 0x18008238b
mov eax, 0x1fd
cmp edi, eax
cmovge edi, eax
add edi, edx
mov eax, r14d
sub eax, edi
lea esi, [rax + r13]
add esi, 0xef
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x27
lea r8, [rsi + 1]
mov dl, 0xff
call fcn.180091cf0
mov rdx, qword [rsp + 0x30]
movabs r9, 0xcf1bbcdcbb000000
mov r10, qword [rsp + 0x88]
mov rax, qword [rsp + 0x58]
lea rcx, [rax + rsi]
add rcx, 2
sub r14d, edx
mov rsi, qword [rsp + 0xb8]
sub esi, edi
mov eax, 0x80808081
imul rsi, rax
mov r8, qword [rsp + 0x58]
shr rsi, 0x27
mov eax, esi
shl eax, 8
sub esi, eax
add esi, r14d
lea edi, [rsi + r13]
add edi, 0xfffffef2
mov rsi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x28]
mov r13, qword [rsp + 0xb0]
mov byte [rcx], dil
inc rcx
jmp 0x1800823bf
mov byte [r8], r11b
mov rsi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
mov r13, qword [rsp + 0xb0]
add r13, rcx
mov rax, qword [rdx]
mov qword [rcx], rax
add rcx, 8
add rdx, 8
cmp rcx, r13
jb 0x1800823c2
mov rdx, qword [rsp + 0x98]
mov r11, qword [rsp + 0x60]
mov word [r13], r15w
cmp r12, r11
mov r12, rdx
je 0x180082593
add rbp, 4
lea rcx, [rdx + 4]
mov rbx, qword [rsp + 0x68]
cmp rbx, rcx
jbe 0x180085100
mov rax, qword [rcx]
xor rax, qword [rbp]
je 0x18008261d
bsf rdi, rax
xor edx, edx
test rax, rax
sete al
je 0x180082627
shr edi, 3
mov rdx, r12
mov eax, edi
add rdx, rax
add rdx, 4
lea eax, [rdi + 0xf0]
mov ecx, 0x80808081
imul rax, rcx
shr rax, 0x27
add rax, r13
add rax, 8
cmp rax, qword [rsp + 0x40]
ja 0x180084ff3
lea rbx, [r13 + 2]
mov al, byte [r8]
cmp edi, 0xf
jb 0x1800824fc
add al, 0xf
mov byte [r8], al
lea eax, [rdi - 0xf]
mov dword [rbx], 0xffffffff
cmp eax, 0x3fc
jb 0x1800824e3
lea rcx, [r13 + 6]
add edi, 0xfffffbf5
mov rsi, rdi
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x29
mov ebx, esi
lea r8, [rbx*4 + 4]
mov rbp, rdx
mov dl, 0xff
call fcn.180091cf0
mov rdx, rbp
movabs r9, 0xcf1bbcdcbb000000
mov r10, qword [rsp + 0x88]
imul eax, esi, 0x3fc
mov rsi, qword [rsp + 0x48]
sub edi, eax
lea rbx, [rbx*4 + 6]
add rbx, r13
mov r11, qword [rsp + 0x60]
mov eax, edi
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add rbx, rcx
inc rbx
add ecx, eax
mov byte [rbx - 1], cl
jmp 0x180082502
add al, dil
mov byte [r8], al
cmp rdx, r14
mov r8, qword [rsp + 0x70]
mov r13d, dword [rsp + 0xa8]
jae 0x180082c8e
lea rax, [rdx - 2]
mov rcx, qword [rdx - 2]
imul rcx, r9
sub eax, esi
shr rcx, 0x34
mov dword [r10 + rcx*4], eax
mov rcx, qword [rdx]
imul rcx, r9
mov r15d, edx
sub r15d, esi
shr rcx, 0x34
mov eax, dword [r10 + rcx*4]
cmp eax, r8d
mov rbp, rsi
cmovb rbp, qword [rsp + 0x80]
mov r12, qword [rsp + 0x78]
cmovb r12, r11
mov dword [r10 + rcx*4], r15d
lea ecx, [rax + 0xffff]
cmp ecx, r15d
jb 0x180082768
add rbp, rax
mov ecx, dword [rbp]
cmp ecx, dword [rdx]
jne 0x180082768
lea r13, [rbx + 1]
mov byte [rbx], 0
sub r15d, eax
mov r8, rbx
mov r14, qword [rsp + 0x28]
jmp 0x1800823e2
mov r10, qword [rsp + 0x90]
sub r10, rbp
add r10, rdx
mov rax, qword [rsp + 0x38]
cmp r10, rax
cmova r10, rax
lea rbx, [rbp + 4]
lea r9, [rdx + 4]
lea rax, [r10 - 7]
cmp rax, r9
mov r15, qword [rsp + 0x68]
jbe 0x18008518e
mov rsi, qword [r9]
xor rsi, qword [rbx]
je 0x1800826b3
bsf rdi, rsi
xor edx, edx
test rsi, rsi
sete cl
je 0x1800826bd
shr edi, 3
mov rsi, qword [rsp + 0x48]
mov r11, qword [rsp + 0x60]
mov rdx, r12
mov eax, edi
add rax, rdx
add rax, 4
cmp rax, r10
movabs r9, 0xcf1bbcdcbb000000
je 0x180082672
mov rdx, rax
mov r10, qword [rsp + 0x88]
jmp 0x180082437
mov edi, 0x40
jmp 0x18008241a
mov dl, al
lea rdi, [rcx + rdx*8]
lea rbp, [rbp + rdx*8]
mov rdx, r12
cmp rdi, rbx
jae 0x180084cd0
mov eax, edi
sub eax, edx
add eax, 0xfffffffc
mov rdx, qword [rdi]
xor rdx, qword [rbp]
jne 0x180082663
add rdi, 8
add rbp, 8
add eax, 8
cmp rdi, rbx
jb 0x180082645
jmp 0x180084cd0
bsf rdi, rdx
shr rdi, 3
add edi, eax
jmp 0x18008242b
mov rdx, r10
mov rcx, qword [rsp + 0x78]
mov rbx, rcx
cmp r15, r10
jbe 0x180082717
mov rax, qword [r10]
xor rax, qword [rcx]
je 0x180082706
bsf rdx, rax
xor ebx, ebx
test rax, rax
sete al
je 0x18008270d
shr edx, 3
mov r11, qword [rsp + 0x60]
add edi, edx
mov eax, edx
add r10, rax
mov rdx, r10
jmp 0x180082610
mov edi, 0x40
jmp 0x1800825d7
mov dl, cl
lea rdi, [r9 + rdx*8]
lea rbx, [rbx + rdx*8]
mov rdx, r12
cmp rdi, rax
jae 0x180084d5d
mov esi, edi
sub esi, edx
add esi, 0xfffffffc
mov rdx, qword [rdi]
xor rdx, qword [rbx]
jne 0x1800826f7
add rdi, 8
add rbx, 8
add esi, 8
cmp rdi, rax
jb 0x1800826da
jmp 0x180084d5d
bsf rdi, rdx
shr rdi, 3
add edi, esi
jmp 0x1800825e8
mov edx, 0x40
jmp 0x180082692
mov bl, al
lea rdx, [r10 + rbx*8]
lea rbx, [rcx + rbx*8]
cmp rdx, r15
jae 0x180084ee8
add r12, qword [rsp + 0x90]
sub r12, rbp
mov rax, qword [rsp + 0x38]
cmp r12, rax
cmovae r12, rax
mov eax, edx
sub eax, r12d
mov rbp, qword [rdx]
xor rbp, qword [rbx]
jne 0x180082759
add rdx, 8
add rbx, 8
add eax, 8
cmp rdx, r15
jb 0x18008273c
jmp 0x180084ee8
bsf rdx, rbp
shr rdx, 3
add edx, eax
jmp 0x18008269f
lea r14, [rdx + 1]
mov r15, r14
sub r15, rsi
lea rax, [rdx + 2]
cmp rax, qword [rsp + 0x28]
mov r12, qword [rsp + 0xa0]
mov ebp, dword [rsp + 0x54]
mov r11, qword [rsp + 0x78]
jbe 0x1800821a0
jmp 0x180082c9b
xor ecx, ecx
jmp 0x180081ed8
cmp eax, 0xffff
ja 0x180082b69
mov ecx, r9d
sub ecx, eax
mov dword [rsp + 0x28], ecx
jbe 0x180082b69
cmp r14d, 0x7e000000
ja 0x180082b72
test r14d, r14d
je 0x180082d4e
mov ecx, r14d
mov qword [rsp + 0xa8], rcx
movsxd r15, r13d
add r15, r12
lea ecx, [rax + r14]
mov dword [r10 + 0x4018], ecx
lea ecx, [r9 + r14]
mov dword [r10 + 0x4010], ecx
mov dword [r10 + 0x4014], 2
mov rcx, r12
mov qword [rsp + 0xa0], r12
mov rdx, r12
mov rcx, r14
mov r14, r11
cmp ecx, 0xd
jae 0x18008354c
add r11, qword [rsp + 0xa8]
sub r11, r14
mov rdi, rdx
lea rcx, [rdx + r11]
lea rax, [r11 + 0xf0]
movabs rbp, 0x8080808080808081
mul rbp
shr rdx, 7
lea rax, [rdx + rcx]
inc rax
cmp rax, r15
mov eax, 0
ja 0x180082e84
cmp r11, 0xf
jb 0x180084c7c
lea rax, [r11 - 0xf]
mov rdx, rdi
mov byte [rdi], 0xf0
lea rcx, [rdi + 1]
cmp rax, 0xff
jb 0x1800828ca
lea rax, [r11 - 0x10e]
mov rdi, rdx
mul rbp
mov rbx, rdx
shr rbx, 7
lea r8, [rbx + 1]
mov dl, 0xff
mov rsi, r11
call fcn.180091cf0
mov r11, rsi
mov rax, rbx
shl rax, 8
mov rdx, rbx
sub rdx, rax
lea rcx, [rbx + rdi]
add rcx, 2
lea rbp, [rdi + rbx]
inc rbp
lea rax, [rsi + rdx]
add rax, 0xfffffffffffffef2
mov rdx, rbp
mov byte [rcx], al
add rdx, 2
mov rax, rdx
mov rdi, rcx
jmp 0x180084c88
cmp eax, 0xffff
mov qword [rsp + 0x40], rbp
ja 0x180082b79
mov r8d, r9d
sub r8d, eax
jbe 0x180082b79
cmp r14d, 0x7e000000
ja 0x180082b86
test r14d, r14d
je 0x180082e22
mov dword [rsp + 0x54], edi
mov r15d, r9d
mov ecx, eax
add rcx, rbp
mov rdx, r14
mov esi, edx
mov qword [rsp + 0x90], rcx
sub rcx, r15
test rbp, rbp
cmove rcx, rbp
mov qword [rsp + 0x30], rcx
movsxd r14, r13d
add r14, r12
add eax, edx
mov dword [r10 + 0x4018], eax
lea eax, [r9 + rdx]
mov dword [r10 + 0x4010], eax
mov dword [r10 + 0x4014], 2
mov rdi, r12
mov rbx, r11
cmp edx, 0xd
jae 0x180083e9f
add rsi, r11
sub rsi, rbx
lea rcx, [rdi + rsi]
lea rax, [rsi + 0xf0]
movabs rbp, 0x8080808080808081
mul rbp
shr rdx, 7
lea rax, [rdx + rcx]
inc rax
cmp rax, r14
mov eax, 0
ja 0x180082e6e
cmp rsi, 0xf
jb 0x180084d29
lea rax, [rsi - 0xf]
mov byte [rdi], 0xf0
lea rcx, [rdi + 1]
cmp rax, 0xff
jb 0x1800829fe
lea rax, [rsi - 0x10e]
mul rbp
mov rbp, rdx
shr rbp, 7
lea r8, [rbp + 1]
mov dl, 0xff
call fcn.180091cf0
mov rax, rbp
shl rax, 8
mov rdx, rbp
sub rdx, rax
lea rcx, [rdi + rbp]
add rcx, 2
add rdi, rbp
inc rdi
lea rax, [rsi + rdx]
add rax, 0xfffffffffffffef2
mov byte [rcx], al
add rdi, 2
mov rax, rdi
mov rdi, rcx
jmp 0x180084d34
xor eax, eax
cmp r14d, 0x7e000000
ja 0x180082e6e
test r14d, r14d
je 0x180082e2e
mov dword [rsp + 0x54], edi
mov r15, qword [rdx + 0x4000]
mov ebp, dword [rdx + 0x4018]
mov eax, dword [rdx + 0x4010]
add rbp, r15
mov ecx, r14d
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0x58], rbp
sub rbp, rax
test r15, r15
cmove rbp, r15
mov qword [rsp + 0x30], rbp
movsxd rcx, r13d
add rcx, r12
mov qword [rsp + 0x60], rcx
mov qword [r10 + 0x4008], 0
mov dword [r10 + 0x4018], r14d
lea ecx, [r9 + r14]
mov dword [r10 + 0x4010], ecx
mov dword [r10 + 0x4014], 2
mov qword [rsp + 0xa0], r12
mov rsi, r12
mov rdi, r11
cmp r14d, 0xd
jae 0x180082e98
mov rax, rdi
mov rdi, qword [rsp + 0xc0]
add rdi, r11
mov r14, rax
sub rdi, rax
lea rcx, [rsi + rdi]
lea rax, [rdi + 0xf0]
movabs rbp, 0x8080808080808081
mul rbp
shr rdx, 7
lea rax, [rdx + rcx]
inc rax
cmp rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0xa0]
mov eax, 0
ja 0x180082e6e
cmp rdi, 0xf
jb 0x180084c56
lea rax, [rdi - 0xf]
mov byte [rsi], 0xf0
lea rcx, [rsi + 1]
cmp rax, 0xff
jb 0x180082b58
lea rax, [rdi - 0x10e]
mul rbp
mov rbp, rdx
shr rbp, 7
lea r8, [rbp + 1]
mov dl, 0xff
call fcn.180091cf0
mov rax, rbp
shl rax, 8
mov rdx, rbp
sub rdx, rax
lea rcx, [rsi + rbp]
add rcx, 2
add rsi, rbp
inc rsi
lea rax, [rdi + rdx]
add rax, 0xfffffffffffffef2
mov byte [rcx], al
add rsi, 2
mov rax, rsi
mov rsi, rcx
jmp 0x180084c61
cmp r14d, 0x7e000000
jbe 0x180082b8d
xor eax, eax
jmp 0x180082e84
cmp r14d, 0x7e000000
jbe 0x180082d6b
xor eax, eax
jmp 0x180082e6e
test r14d, r14d
je 0x180082d4e
mov ecx, r14d
mov qword [rsp + 0x70], rcx
movsxd r8, r13d
add r8, r12
lea ecx, [rax + r14]
mov dword [r10 + 0x4018], ecx
lea ecx, [r9 + r14]
mov dword [r10 + 0x4010], ecx
mov dword [r10 + 0x4014], 2
mov rcx, r12
mov qword [rsp + 0xa0], r12
mov r15, r11
cmp r14d, 0xd
jae 0x1800839f1
add r11, qword [rsp + 0x70]
sub r11, r15
lea rcx, [r12 + r11]
lea rax, [r11 + 0xf0]
movabs rbp, 0x8080808080808081
mul rbp
shr rdx, 7
lea rax, [rdx + rcx]
inc rax
cmp rax, r8
mov eax, 0
ja 0x180082e84
cmp r11, 0xf
jb 0x180084c9d
lea rax, [r11 - 0xf]
mov byte [r12], 0xf0
lea rcx, [r12 + 1]
cmp rax, 0xff
jb 0x180082c7d
lea rax, [r11 - 0x10e]
mul rbp
mov rbx, rdx
shr rbx, 7
lea r8, [rbx + 1]
mov dl, 0xff
mov rsi, r11
call fcn.180091cf0
mov r11, rsi
mov rax, rbx
shl rax, 8
mov rdx, rbx
sub rdx, rax
lea rcx, [rbx + r12]
add rcx, 2
add r12, rbx
inc r12
lea rax, [rsi + rdx]
add rax, 0xfffffffffffffef2
mov byte [rcx], al
add r12, 2
mov rax, r12
mov r12, rcx
jmp 0x180084cac
mov r12, qword [rsp + 0xa0]
mov r11, qword [rsp + 0x78]
mov rsi, qword [rsp + 0xc0]
mov rdi, rdx
sub rsi, rdx
lea rcx, [rbx + rsi]
lea rax, [rsi + 0xf0]
movabs rbp, 0x8080808080808081
mul rbp
shr rdx, 7
lea rax, [rdx + rcx]
inc rax
cmp rax, qword [rsp + 0x40]
mov eax, 0
ja 0x180082e6e
cmp rsi, 0xf
jb 0x180082e3f
lea rax, [rsi - 0xf]
mov byte [rbx], 0xf0
lea rcx, [rbx + 1]
cmp rax, 0xff
jb 0x180082d3a
lea rax, [rsi - 0x10e]
mul rbp
mov rbp, rdx
shr rbp, 7
lea r8, [rbp + 1]
mov dl, 0xff
call fcn.180091cf0
mov rax, rbp
shl rax, 8
mov rdx, rbp
sub rdx, rax
lea rcx, [rbx + rbp]
add rcx, 2
add rbx, rbp
inc rbx
lea rax, [rsi + rdx]
add rax, 0xfffffffffffffef2
mov rdx, rdi
mov byte [rcx], al
add rbx, 2
mov rax, rbx
mov rbx, rcx
jmp 0x180082e4d
test r13d, r13d
mov eax, 0
jle 0x180082e84
mov byte [r12], 0
mov eax, 1
jmp 0x180082e84
test r14d, r14d
je 0x180082e22
mov dword [rsp + 0x54], edi
mov edi, r13d
mov r13d, r9d
mov ecx, eax
add rcx, rbp
mov esi, r14d
mov qword [rsp + 0x90], rcx
mov r8, rcx
sub r8, r13
test rbp, rbp
cmove r8, rbp
movsxd rcx, edi
add rcx, r12
mov qword [rsp + 0x70], rcx
add eax, r14d
mov dword [r10 + 0x4018], eax
lea eax, [r9 + r14]
mov dword [r10 + 0x4010], eax
mov dword [r10 + 0x4014], 2
mov qword [rsp + 0xa0], r12
mov rax, r11
cmp r14d, 0xd
mov rdx, r11
jae 0x18008457c
mov rax, r12
mov r12, qword [rsp + 0xa0]
add rsi, r11
mov rdi, rdx
sub rsi, rdx
mov rbx, rax
lea rcx, [rax + rsi]
lea rax, [rsi + 0xf0]
movabs rbp, 0x8080808080808081
mul rbp
shr rdx, 7
lea rax, [rdx + rcx]
inc rax
cmp rax, qword [rsp + 0x70]
jmp 0x180082cd1
test r13d, r13d
mov eax, 0
jg 0x180082e33
jmp 0x180082e6e
test r13d, r13d
jle 0x180082e6e
mov byte [r12], 0
mov eax, 1
jmp 0x180082e6e
mov eax, esi
shl al, 4
mov byte [rbx], al
lea rax, [rbx + 1]
mov rdx, rdi
mov rcx, rax
mov r8, rsi
call fcn.180091e30
add esi, ebx
sub esi, r12d
inc esi
mov eax, esi
mov r11, qword [rsp + 0x78]
mov r10, qword [rsp + 0x88]
mov qword [r10 + 0x4000], r11
mov rcx, qword [rsp + 0xc8]
mov dword [r10 + 0x4018], ecx
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r12d, r9d
mov rcx, r11
sub rcx, r12
mov qword [rsp + 0x80], rcx
mov ecx, r9d
sub ecx, eax
mov qword [rsp + 0x28], rcx
mov rax, qword [rsp + 0xc0]
lea rcx, [r11 + rax]
add rcx, 0xfffffffffffffff5
mov qword [rsp + 0x48], rcx
lea rcx, [r11 + rax]
add rcx, 0xfffffffffffffffb
test r15, r15
movabs rbp, 0xcf1bbcdcbb000000
mov rax, qword [rsp + 0x58]
cmove rax, r15
mov qword [rsp + 0x58], rax
mov rax, qword [r11]
imul rax, rbp
shr rax, 0x32
and eax, 0xfffffffc
mov dword [r10 + rax], r9d
mov ebx, dword [rsp + 0x54]
shl ebx, 6
or ebx, 1
lea rax, [r11 + 2]
lea r14, [r11 + 1]
inc r12
mov qword [rsp + 0x98], rcx
add rcx, 0xfffffffffffffff9
mov qword [rsp + 0x90], rcx
mov rdi, r11
mov rsi, qword [rsp + 0xa0]
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0xa8], r15
mov dword [rsp + 0xd0], ebx
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0x70], rdi
mov rbp, qword [rdi + 1]
mov r8d, dword [rsp + 0x54]
mov ecx, ebx
mov rbx, qword [rsp + 0x80]
mov r13, rax
movabs rax, 0xcf1bbcdcbb000000
imul rbp, rax
mov rdi, rbp
shr rdi, 0x34
mov esi, dword [r10 + rdi*4]
cmp esi, r9d
jae 0x180082f9a
mov eax, dword [rdx + rdi*4]
mov rsi, qword [rsp + 0x28]
add esi, eax
add rax, qword [rsp + 0x30]
mov rbx, r15
jmp 0x180082fa1
lea rax, [rbx + rsi]
mov rbx, r11
mov rbp, qword [r13]
mov dword [r10 + rdi*4], r12d
lea edi, [rsi + 0xffff]
cmp edi, r12d
jb 0x180082fbb
mov edi, dword [rax]
cmp edi, dword [r14]
je 0x180082fe9
mov r12, r13
mov rbx, qword [rsp + 0x80]
sub r12, rbx
mov eax, r8d
add rax, r13
lea edi, [rcx + 1]
shr ecx, 6
mov r8d, ecx
mov ecx, edi
mov r14, r13
cmp rax, qword [rsp + 0x48]
jbe 0x180082f65
jmp 0x180084e26
mov r13, rbx
sub r12d, esi
mov r9d, r14d
mov rdx, qword [rsp + 0x70]
sub r9d, edx
lea r8d, [r9 - 0xf]
mov ecx, r14d
shl cl, 4
shl dl, 4
sub cl, dl
mov ebp, r8d
xor edi, edi
mov rsi, rdi
mov r10d, ebp
mov ebx, ecx
lea r15, [rax + rdi]
lea rcx, [r14 + rdi]
mov qword [rsp + 0x40], rcx
cmp r15, r13
jbe 0x18008304a
mov rcx, qword [rsp + 0x40]
cmp rcx, qword [rsp + 0x70]
jbe 0x18008304a
mov dl, byte [r14 + rsi - 1]
lea rdi, [rsi - 1]
lea ebp, [r10 - 1]
lea ecx, [rbx - 0x10]
cmp dl, byte [rax + rsi - 1]
je 0x18008300e
mov eax, r14d
mov rdi, qword [rsp + 0x70]
sub eax, edi
add eax, esi
add r9, rsi
mov qword [rsp + 0xb8], rax
mov rbp, qword [rsp + 0xb0]
add rax, rbp
mov ecx, r9d
mov edx, 0x80808081
imul rcx, rdx
shr rcx, 0x27
add rax, rcx
add rax, 9
cmp rax, qword [rsp + 0x60]
ja 0x180085289
lea rcx, [rbp + 1]
cmp r9d, 0xf
jb 0x18008312b
mov eax, r8d
add rax, rsi
mov byte [rbp], 0xf0
cmp eax, 0xfe
jle 0x180083107
mov eax, 0x1fd
cmp r10d, eax
cmovge r10d, eax
sub r14d, edi
mov eax, r14d
sub eax, r10d
add eax, esi
add eax, 0xef
mov edi, eax
mov eax, 0x80808081
imul rdi, rax
shr rdi, 0x27
lea r8, [rdi + 1]
mov dl, 0xff
call fcn.180091cf0
mov r11, qword [rsp + 0x78]
lea rcx, [rdi + rbp]
add rcx, 2
mov eax, edi
shl eax, 8
sub edi, eax
add edi, r14d
lea eax, [rsi + rdi]
add eax, 0xfffffef2
mov rdi, qword [rsp + 0x70]
mov r10, qword [rsp + 0x88]
mov r9, qword [rsp + 0x68]
mov r14, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xb8]
mov byte [rcx], al
inc rcx
jmp 0x18008314b
mov byte [rbp], bl
mov r10, qword [rsp + 0x88]
mov r9, qword [rsp + 0x68]
mov r14, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xb8]
add rbx, rcx
mov rax, qword [rdi]
mov qword [rcx], rax
add rcx, 8
add rdi, 8
cmp rcx, rbx
jb 0x18008314e
mov r8, rbp
mov rdi, qword [rsp + 0x40]
mov word [rbx], r12w
cmp r13, qword [rsp + 0xa8]
je 0x18008331f
add r15, 4
lea rcx, [rdi + 4]
cmp r14, rcx
jbe 0x180085256
mov rdx, qword [rcx]
xor rdx, qword [r15]
je 0x1800833a3
mov rsi, rbx
bsf rbp, rdx
xor ebx, ebx
test rdx, rdx
sete al
je 0x1800833b0
shr ebp, 3
mov r15, qword [rsp + 0x38]
mov rbx, rsi
mov eax, ebp
add rdi, rax
add rdi, 4
lea eax, [rbp + 0xf0]
mov ecx, 0x80808081
imul rax, rcx
shr rax, 0x27
add rax, rbx
add rax, 8
cmp rax, qword [rsp + 0x60]
ja 0x180082b86
lea rsi, [rbx + 2]
mov cl, byte [r8]
cmp ebp, 0xf
jb 0x18008327a
add cl, 0xf
mov byte [r8], cl
lea eax, [rbp - 0xf]
mov dword [rsi], 0xffffffff
cmp eax, 0x3fc
jb 0x180083261
lea rcx, [rbx + 6]
add ebp, 0xfffffbf5
mov rsi, rbp
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x29
mov r13, rdi
mov edi, esi
lea r8, [rdi*4 + 4]
mov dl, 0xff
call fcn.180091cf0
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
imul eax, esi, 0x3fc
sub ebp, eax
lea rsi, [rbx + rdi*4]
add rsi, 6
mov rdi, r13
mov eax, ebp
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add rsi, rcx
inc rsi
add ecx, eax
mov byte [rsi - 1], cl
jmp 0x180083280
add cl, bpl
mov byte [r8], cl
cmp rdi, qword [rsp + 0x48]
jae 0x180082aab
lea rax, [rdi - 2]
mov rcx, qword [rdi - 2]
movabs rbp, 0xcf1bbcdcbb000000
imul rcx, rbp
mov rdx, qword [rsp + 0x80]
sub eax, edx
shr rcx, 0x34
mov dword [r10 + rcx*4], eax
mov rax, qword [rdi]
imul rax, rbp
shr rax, 0x34
mov r12d, edi
sub r12d, edx
mov ecx, dword [r10 + rax*4]
cmp ecx, r9d
jae 0x1800832e8
mov r15d, dword [r15 + rax*4]
mov rcx, qword [rsp + 0x28]
add ecx, r15d
add r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0xa8]
jmp 0x1800832ef
lea r15, [rdx + rcx]
mov r13, r11
mov dword [r10 + rax*4], r12d
lea eax, [rcx + 0xffff]
cmp eax, r12d
jb 0x180083515
mov eax, dword [r15]
cmp eax, dword [rdi]
jne 0x180083515
lea rbx, [rsi + 1]
mov byte [rsi], 0
sub r12d, ecx
mov r8, rsi
jmp 0x180083169
mov r13, rbx
mov rcx, qword [rsp + 0x58]
sub rcx, r15
add rcx, rdi
mov rax, qword [rsp + 0x98]
cmp rcx, rax
cmova rcx, rax
lea rbx, [r15 + 4]
mov r12, rdi
lea r9, [rdi + 4]
lea rdi, [rcx - 7]
cmp rdi, r9
jbe 0x18008525e
mov rsi, qword [r9]
xor rsi, qword [rbx]
je 0x18008344f
bsf rbp, rsi
xor eax, eax
test rsi, rsi
sete dl
je 0x180083459
shr ebp, 3
mov rdi, r12
mov rbx, r13
mov eax, ebp
add rax, rdi
add rax, 4
cmp rax, rcx
mov r9, qword [rsp + 0x68]
je 0x1800833ff
mov rdi, rax
mov r15, qword [rsp + 0x38]
mov r14, qword [rsp + 0x90]
jmp 0x1800831c1
mov rsi, rbx
mov ebp, 0x40
jmp 0x18008319f
mov bl, al
lea rbp, [rcx + rbx*8]
lea r15, [r15 + rbx*8]
mov rbx, rsi
cmp rbp, r14
jae 0x180084d7b
mov edx, ebp
sub edx, edi
add edx, 0xfffffffc
mov rax, qword [rbp]
xor rax, qword [r15]
jne 0x1800833eb
add rbp, 8
add r15, 8
add edx, 8
cmp rbp, r14
jb 0x1800833cd
jmp 0x180084d7b
bsf rbp, rax
shr rbp, 3
add ebp, edx
mov r15, qword [rsp + 0x38]
jmp 0x1800831b8
mov rdx, rcx
mov rbx, r11
cmp qword [rsp + 0x90], rcx
jbe 0x1800834b5
mov rbx, qword [rcx]
xor rbx, qword [r11]
je 0x1800834a1
bsf rdx, rbx
mov r14, qword [rsp + 0x90]
xor eax, eax
test rbx, rbx
sete bl
je 0x1800834ab
shr edx, 3
mov r15, qword [rsp + 0x38]
mov rbx, r13
add ebp, edx
mov eax, edx
add rcx, rax
mov rdi, rcx
jmp 0x1800831c1
mov ebp, 0x40
jmp 0x180083364
mov al, dl
lea rbp, [r9 + rax*8]
lea rbx, [rbx + rax*8]
cmp rbp, rdi
jae 0x180084f41
mov esi, ebp
sub esi, r12d
add esi, 0xfffffffc
mov rax, qword [rbp]
xor rax, qword [rbx]
jne 0x180083492
add rbp, 8
add rbx, 8
add esi, 8
cmp rbp, rdi
jb 0x180083474
jmp 0x180084f41
bsf rbp, rax
shr rbp, 3
add ebp, esi
jmp 0x180083375
mov edx, 0x40
jmp 0x180083423
mov al, bl
lea rdx, [rcx + rax*8]
lea rbx, [r11 + rax*8]
mov r14, qword [rsp + 0x90]
cmp rdx, r14
jae 0x180085290
add rdi, qword [rsp + 0x58]
sub rdi, r15
mov rax, qword [rsp + 0x98]
cmp rdi, rax
cmovae rdi, rax
mov rax, rdi
mov edi, edx
sub edi, eax
mov r15, qword [rsp + 0x38]
mov rax, qword [rdx]
xor rax, qword [rbx]
jne 0x180083506
add rdx, 8
add rbx, 8
add edi, 8
cmp rdx, r14
jb 0x1800834e9
jmp 0x180085295
bsf rdx, rax
shr rdx, 3
add edx, edi
jmp 0x18008343d
lea r14, [rdi + 1]
mov r12, r14
sub r12, qword [rsp + 0x80]
lea rax, [rdi + 2]
cmp rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
mov r15, qword [rsp + 0xa8]
mov ebx, dword [rsp + 0xd0]
jbe 0x180082f45
jmp 0x180082aab
mov ecx, r9d
mov r13, r11
sub r13, rcx
mov rcx, qword [rsp + 0xa8]
lea rdx, [r11 + rcx]
add rdx, 0xfffffffffffffff5
mov qword [rsp + 0x80], rdx
lea rdx, [r11 + rcx - 5]
movabs rcx, 0xcf1bbcdcbb000000
mov eax, eax
mov rbp, r11
sub rbp, rax
mov qword [rsp + 0x60], rbp
mov rax, qword [r11]
imul rax, rcx
shr rax, 0x32
and eax, 0xfffffffc
mov dword [r10 + rax], r9d
mov ebp, edi
shl ebp, 6
or ebp, 1
lea rcx, [r11 + 2]
lea rax, [r11 + 1]
mov qword [rsp + 0x38], rdx
add rdx, 0xfffffffffffffff9
mov qword [rsp + 0x40], rdx
mov r14, r11
mov rdx, qword [rsp + 0xa0]
mov dword [rsp + 0x54], edi
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x30], r13
mov dword [rsp + 0xc8], ebp
mov qword [rsp + 0x70], rdx
mov rbx, qword [r14 + 1]
mov edx, ebp
mov r9d, dword [rsp + 0x28]
mov r15, rax
mov rax, rcx
movabs rcx, 0xcf1bbcdcbb000000
imul rbx, rcx
mov rbp, rbx
shr rbp, 0x34
mov ecx, dword [r10 + rbp*4]
mov esi, r15d
sub esi, r13d
mov rbx, qword [rax]
mov dword [r10 + rbp*4], esi
cmp ecx, r9d
jb 0x18008362e
lea ebp, [rcx + 0xffff]
cmp ebp, esi
jb 0x18008362e
mov ebp, dword [r13 + rcx]
cmp ebp, dword [r15]
je 0x18008364c
mov ecx, edi
add rcx, rax
lea ebp, [rdx + 1]
shr edx, 6
mov edi, edx
mov edx, ebp
cmp rcx, qword [rsp + 0x80]
jbe 0x1800835e9
jmp 0x180084eca
add rcx, r13
lea edx, [r15 + 0xef]
mov ebp, r15d
shl bpl, 4
mov eax, r14d
shl al, 4
sub bpl, al
xor edi, edi
mov r8, qword [rsp + 0x60]
mov r12, rdi
mov esi, edx
mov eax, ebp
lea r13, [rcx + rdi]
lea rdx, [r15 + rdi]
mov qword [rsp + 0x48], rdx
cmp r13, r8
jbe 0x1800836a4
cmp qword [rsp + 0x48], r14
jbe 0x1800836a4
mov bl, byte [r15 + r12 - 1]
lea rdi, [r12 - 1]
lea edx, [rsi - 1]
lea ebp, [rax - 0x10]
cmp bl, byte [rcx + r12 - 1]
je 0x18008366d
mov ecx, r15d
sub ecx, r14d
add ecx, r12d
mov edx, r15d
sub edx, r14d
add rdx, r12
mov rdi, qword [rsp + 0x70]
mov rbx, rcx
add rcx, rdi
mov ebp, edx
mov r8d, 0x80808081
imul rbp, r8
shr rbp, 0x27
add rcx, rbp
add rcx, 9
cmp rcx, qword [rsp + 0x68]
ja 0x180082b72
lea rcx, [rdi + 1]
cmp edx, 0xf
jb 0x180083782
mov ebp, r15d
sub ebp, r14d
add ebp, 0xfffffff1
add rbp, r12
mov byte [rdi], 0xf0
cmp ebp, 0xfe
jle 0x180083796
mov eax, 0x1fd
cmp ebp, eax
cmovge ebp, eax
add ebp, r14d
mov eax, r15d
sub eax, ebp
lea edi, [rax + r12]
add edi, 0xef
imul rdi, r8
shr rdi, 0x27
lea r8, [rdi + 1]
mov dl, 0xff
call fcn.180091cf0
mov rdx, qword [rsp + 0x70]
mov r8d, 0x80808081
mov r9d, dword [rsp + 0x28]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
lea rcx, [rdx + rdi]
add rcx, 2
sub r15d, r14d
sub esi, ebp
imul rsi, r8
shr rsi, 0x27
mov eax, esi
shl eax, 8
sub esi, eax
add esi, r15d
lea ebp, [r12 + rsi]
add ebp, 0xfffffef2
jmp 0x180083799
mov byte [rdi], al
mov r15, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x40]
mov rdx, rdi
mov r12, rbx
jmp 0x1800837ac
mov rdx, rdi
mov r15, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x40]
mov r12, rbx
mov byte [rcx], bpl
inc rcx
add r12, rcx
mov rax, qword [r14]
mov qword [rcx], rax
add rcx, 8
add r14, 8
cmp rcx, r12
jb 0x1800837af
mov rax, rdx
mov r14, qword [rsp + 0x48]
mov ecx, r14d
sub ecx, r13d
mov word [r12], cx
add r13, 4
lea rcx, [r14 + 4]
cmp rsi, rcx
jbe 0x180085246
mov rdx, qword [rcx]
xor rdx, qword [r13]
je 0x180083942
bsf rbp, rdx
xor ebx, ebx
test rdx, rdx
sete dl
je 0x18008394c
shr ebp, 3
mov rbx, qword [rsp + 0x30]
lea ecx, [rbp + 0xf0]
imul rcx, r8
shr rcx, 0x27
add rcx, r12
add rcx, 8
cmp rcx, r15
ja 0x180082b72
lea rdx, [r12 + 2]
mov cl, byte [rax]
cmp ebp, 0xf
jb 0x1800838bf
add cl, 0xf
mov byte [rax], cl
lea edi, [rbp - 0xf]
mov dword [rdx], 0xffffffff
cmp edi, 0x3fc
jb 0x1800838a6
lea rcx, [r12 + 6]
lea edi, [rbp - 0x40b]
mov rsi, rdi
imul rsi, r8
shr rsi, 0x29
mov r13d, esi
lea r8, [r13*4 + 4]
mov dl, 0xff
call fcn.180091cf0
mov r8d, 0x80808081
mov r9d, dword [rsp + 0x28]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
imul eax, esi, 0x3fc
mov rsi, qword [rsp + 0x40]
sub edi, eax
lea rdx, [r12 + r13*4]
add rdx, 6
movzx eax, di
imul eax, eax, 0x8081
shr eax, 0x17
add rdx, rax
inc rdx
add eax, edi
mov byte [rdx - 1], al
jmp 0x1800838c4
add cl, bpl
mov byte [rax], cl
mov eax, ebp
add r14, rax
add r14, 4
cmp r14, qword [rsp + 0x80]
jae 0x18008281d
mov r12, rdx
lea rax, [r14 - 2]
mov rcx, qword [r14 - 2]
movabs rdx, 0xcf1bbcdcbb000000
imul rcx, rdx
sub eax, ebx
shr rcx, 0x34
mov dword [r10 + rcx*4], eax
mov rcx, qword [r14]
imul rcx, rdx
mov eax, r14d
sub eax, ebx
shr rcx, 0x34
mov r13d, dword [r10 + rcx*4]
mov dword [r10 + rcx*4], eax
cmp r13d, r9d
jb 0x18008398f
lea ecx, [r13 + 0xffff]
cmp ecx, eax
jb 0x18008398f
add r13, qword [rsp + 0x30]
mov eax, dword [r13]
cmp eax, dword [r14]
jne 0x18008398f
mov rax, r12
inc r12
mov byte [rax], 0
jmp 0x1800837ca
mov ebp, 0x40
jmp 0x1800837f7
mov bl, dl
lea rbp, [rcx + rbx*8]
lea r13, [r13 + rbx*8]
cmp rbp, rsi
jae 0x1800839bd
mov edx, ebp
sub edx, r14d
add edx, 0xfffffffc
mov rbx, qword [rbp]
xor rbx, qword [r13]
jne 0x180083980
add rbp, 8
add r13, 8
add edx, 8
cmp rbp, rsi
jb 0x180083964
jmp 0x1800839bd
bsf rbp, rbx
shr rbp, 3
add ebp, edx
jmp 0x180083808
lea rax, [r14 + 1]
lea rcx, [r14 + 2]
cmp rcx, qword [rsp + 0x80]
mov edi, dword [rsp + 0x54]
mov r13, qword [rsp + 0x30]
mov ebp, dword [rsp + 0xc8]
mov rdx, r12
jbe 0x1800835d9
jmp 0x18008281d
mov rbx, qword [rsp + 0x38]
lea rdx, [rbx - 3]
cmp rbp, rdx
jb 0x180084e38
lea rdx, [rbx - 1]
cmp rbp, rdx
jb 0x180084e52
cmp rbp, rbx
jb 0x180084e6e
mov rbx, qword [rsp + 0x30]
sub ebp, ecx
jmp 0x18008380d
mov ebp, edi
mov ecx, r9d
mov rdx, r11
sub rdx, rcx
mov rcx, qword [rsp + 0x70]
lea r13, [r11 + rcx]
add r13, 0xfffffffffffffff5
lea rcx, [r11 + rcx - 5]
movabs rsi, 0xcf1bbcdcbb000000
mov eax, eax
mov rdi, r11
sub rdi, rax
mov qword [rsp + 0xa8], rdi
mov rax, qword [r11]
imul rax, rsi
shr rax, 0x32
and eax, 0xfffffffc
mov dword [r10 + rax], r9d
mov r9, rdx
mov edx, ebp
shl edx, 6
or edx, 1
lea rax, [r11 + 2]
lea r14, [r11 + 1]
mov qword [rsp + 0xc8], rcx
add rcx, 0xfffffffffffffff9
mov qword [rsp + 0x28], rcx
mov r15, r11
mov r12, qword [rsp + 0xa0]
mov dword [rsp + 0x54], ebp
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x48], r13
mov dword [rsp + 0x60], edx
mov qword [rsp + 0x40], r12
mov rbx, qword [r15 + 1]
mov ecx, edx
mov rdi, rax
movabs rax, 0xcf1bbcdcbb000000
imul rbx, rax
mov rdx, rbx
shr rdx, 0x34
mov eax, dword [r10 + rdx*4]
mov esi, r14d
sub esi, r9d
mov rbx, qword [rdi]
mov dword [r10 + rdx*4], esi
lea edx, [rax + 0xffff]
cmp edx, esi
jb 0x180083ac2
mov edx, dword [r9 + rax]
cmp edx, dword [r14]
je 0x180083ade
mov eax, ebp
add rax, rdi
lea edx, [rcx + 1]
shr ecx, 6
mov ebp, ecx
mov ecx, edx
mov r14, rdi
cmp rax, r13
jbe 0x180083a86
jmp 0x180084ed9
add rax, r9
lea ecx, [r14 + 0xef]
mov edi, r14d
shl dil, 4
mov edx, r15d
shl dl, 4
sub dil, dl
xor ebx, ebx
mov r8, qword [rsp + 0xa8]
mov r12, rbx
mov ebp, ecx
mov esi, edi
lea r13, [rax + rbx]
lea rcx, [r14 + rbx]
mov qword [rsp + 0x80], rcx
cmp r13, r8
jbe 0x180083b3f
cmp qword [rsp + 0x80], r15
jbe 0x180083b3f
mov dl, byte [r14 + r12 - 1]
lea rbx, [r12 - 1]
lea ecx, [rbp - 1]
lea edi, [rsi - 0x10]
cmp dl, byte [rax + r12 - 1]
je 0x180083b02
mov eax, r14d
sub eax, r15d
lea ecx, [r12 + rax]
mov eax, r14d
sub eax, r15d
add rax, r12
mov rdi, qword [rsp + 0x40]
mov qword [rsp + 0x68], rcx
add rcx, rdi
mov edx, eax
mov ebx, 0x80808081
imul rdx, rbx
shr rdx, 0x27
add rcx, rdx
add rcx, 9
mov r8, qword [rsp + 0x30]
cmp rcx, r8
ja 0x180082b72
lea rcx, [rdi + 1]
cmp eax, 0xf
jb 0x180083c34
mov esi, r14d
sub esi, r15d
add esi, 0xfffffff1
add rsi, r12
mov byte [rdi], 0xf0
cmp esi, 0xfe
jle 0x180083c46
mov eax, 0x1fd
cmp esi, eax
cmovge esi, eax
add esi, r15d
mov eax, r14d
sub eax, esi
mov rbx, rsi
lea esi, [rax + r12]
add esi, 0xef
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x27
lea r8, [rsi + 1]
mov dl, 0xff
mov rdi, r9
call fcn.180091cf0
mov r9, rdi
mov r8, qword [rsp + 0x30]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
mov rax, qword [rsp + 0x40]
lea rcx, [rax + rsi]
add rcx, 2
mov rdx, qword [rsp + 0x40]
sub r14d, r15d
sub ebp, ebx
mov eax, 0x80808081
imul rbp, rax
shr rbp, 0x27
mov eax, ebp
shl eax, 8
sub ebp, eax
add ebp, r14d
lea esi, [r12 + rbp]
add esi, 0xfffffef2
jmp 0x180083c49
mov byte [rdi], sil
mov r14, qword [rsp + 0x28]
mov rdx, rdi
mov rbx, qword [rsp + 0x68]
jmp 0x180083c59
mov rdx, rdi
mov r14, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x68]
mov byte [rcx], sil
inc rcx
add rbx, rcx
mov rax, qword [r15]
mov qword [rcx], rax
add rcx, 8
add r15, 8
cmp rcx, rbx
jb 0x180083c5c
mov rax, rdx
mov r15, qword [rsp + 0x80]
mov ecx, r15d
sub ecx, r13d
mov word [rbx], cx
add r13, 4
lea rcx, [r15 + 4]
cmp r14, rcx
jbe 0x18008524e
mov rdx, qword [rcx]
xor rdx, qword [r13]
je 0x180083df8
bsf rdi, rdx
xor ebp, ebp
test rdx, rdx
sete dl
je 0x180083e02
shr edi, 3
mov r13, qword [rsp + 0x48]
lea ecx, [rdi + 0xf0]
mov edx, 0x80808081
imul rcx, rdx
shr rcx, 0x27
add rcx, rbx
add rcx, 8
cmp rcx, r8
ja 0x180082b72
lea r12, [rbx + 2]
mov cl, byte [rax]
cmp edi, 0xf
jb 0x180083d7e
mov rdx, rbx
add cl, 0xf
mov byte [rax], cl
lea ebx, [rdi - 0xf]
mov dword [r12], 0xffffffff
cmp ebx, 0x3fc
jb 0x180083d63
mov r12, rdx
lea rcx, [rdx + 6]
lea ebx, [rdi - 0x40b]
mov rsi, rbx
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x29
mov ebp, esi
lea r8, [rbp*4 + 4]
mov dl, 0xff
mov r14, r9
call fcn.180091cf0
mov r9, r14
mov r14, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
imul eax, esi, 0x3fc
sub ebx, eax
lea r12, [r12 + rbp*4]
add r12, 6
movzx eax, bx
imul eax, eax, 0x8081
shr eax, 0x17
add r12, rax
inc r12
add eax, ebx
mov byte [r12 - 1], al
jmp 0x180083d83
add cl, dil
mov byte [rax], cl
mov eax, edi
add r15, rax
add r15, 4
cmp r15, r13
jae 0x180082bdd
lea rax, [r15 - 2]
mov rcx, qword [r15 - 2]
movabs rdx, 0xcf1bbcdcbb000000
imul rcx, rdx
sub eax, r9d
shr rcx, 0x34
mov dword [r10 + rcx*4], eax
mov rax, qword [r15]
imul rax, rdx
mov ecx, r15d
sub ecx, r9d
shr rax, 0x34
mov r13d, dword [r10 + rax*4]
mov dword [r10 + rax*4], ecx
lea eax, [r13 + 0xffff]
cmp eax, ecx
jb 0x180083e45
add r13, r9
mov eax, dword [r13]
cmp eax, dword [r15]
jne 0x180083e45
lea rbx, [r12 + 1]
mov byte [r12], 0
mov rax, r12
jmp 0x180083c7a
mov edi, 0x40
jmp 0x180083ca5
mov bpl, dl
lea rdi, [rcx + rbp*8]
lea r13, [r13 + rbp*8]
cmp rdi, r14
jae 0x180083e68
mov edx, edi
sub edx, r15d
add edx, 0xfffffffc
mov rbp, qword [rdi]
xor rbp, qword [r13]
jne 0x180083e36
add rdi, 8
add r13, 8
add edx, 8
cmp rdi, r14
jb 0x180083e1b
jmp 0x180083e68
bsf rdi, rbp
shr rdi, 3
add edi, edx
jmp 0x180083cb6
lea r14, [r15 + 1]
lea rax, [r15 + 2]
mov r13, qword [rsp + 0x48]
cmp rax, r13
mov ebp, dword [rsp + 0x54]
mov edx, dword [rsp + 0x60]
jbe 0x180083a7b
jmp 0x180082bdd
mov rsi, qword [rsp + 0xc8]
lea rdx, [rsi - 3]
cmp rdi, rdx
jb 0x180084e82
lea rdx, [rsi - 1]
cmp rdi, rdx
jb 0x180084e9b
cmp rdi, rsi
jb 0x180084eb6
mov r13, qword [rsp + 0x48]
sub edi, ecx
jmp 0x180083cbb
mov rax, r11
sub rax, r15
mov qword [rsp + 0x80], rax
lea rax, [r11 + rsi]
add rax, 0xfffffffffffffff5
mov qword [rsp + 0x48], rax
lea rdx, [r11 + rsi]
add rdx, 0xfffffffffffffffb
test rbp, rbp
movabs rcx, 0xcf1bbcdcbb000000
mov rax, qword [rsp + 0x90]
cmove rax, rbp
mov qword [rsp + 0x90], rax
mov rax, qword [r11]
imul rax, rcx
shr rax, 0x32
and eax, 0xfffffffc
mov dword [r10 + rax], r9d
mov ebp, dword [rsp + 0x54]
shl ebp, 6
or ebp, 1
lea rcx, [r11 + 2]
lea rax, [r11 + 1]
inc r15
mov qword [rsp + 0x58], rdx
add rdx, 0xfffffffffffffff9
mov qword [rsp + 0xa8], rdx
mov rbx, r11
mov rdi, r12
mov dword [rsp + 0x60], r8d
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0x38], r14
mov dword [rsp + 0xc0], ebp
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0x28], rbx
mov rbx, qword [rbx + 1]
mov edi, dword [rsp + 0x54]
mov edx, ebp
mov r14, rax
mov rax, rcx
movabs rcx, 0xcf1bbcdcbb000000
imul rbx, rcx
mov rcx, rbx
shr rcx, 0x34
mov esi, dword [r10 + rcx*4]
mov rbx, qword [rax]
mov dword [r10 + rcx*4], r15d
cmp esi, r8d
jb 0x180083fa8
lea ecx, [rsi + 0xffff]
cmp ecx, r15d
jb 0x180083fa8
cmp esi, r9d
mov rcx, qword [rsp + 0x80]
cmovb rcx, qword [rsp + 0x30]
mov ebp, dword [rcx + rsi]
cmp ebp, dword [r14]
je 0x180083fce
mov r15, rax
sub r15, qword [rsp + 0x80]
mov ecx, edi
add rcx, rax
lea ebp, [rdx + 1]
shr edx, 6
mov edi, edx
mov edx, ebp
cmp rcx, qword [rsp + 0x48]
jbe 0x180083f59
jmp 0x180084fff
add rcx, rsi
cmp esi, r9d
mov rax, r11
cmovb rax, qword [rsp + 0x40]
mov qword [rsp + 0x70], rax
sub r15d, esi
lea edx, [r14 + 0xef]
mov esi, r14d
shl sil, 4
mov rax, qword [rsp + 0x28]
shl al, 4
sub sil, al
xor ebx, ebx
mov r13, rbx
mov r12d, edx
mov r8d, esi
lea rdi, [rcx + rbx]
lea rbp, [r14 + rbx]
cmp rdi, qword [rsp + 0x70]
jbe 0x180084038
cmp rbp, qword [rsp + 0x28]
jbe 0x180084038
mov al, byte [r14 + r13 - 1]
lea rbx, [r13 - 1]
lea edx, [r12 - 1]
lea esi, [r8 - 0x10]
cmp al, byte [rcx + r13 - 1]
je 0x180084000
mov qword [rsp + 0xb0], rbp
mov eax, r14d
mov rcx, qword [rsp + 0x28]
sub eax, ecx
lea esi, [rax + r13]
mov edx, r14d
sub edx, ecx
add rdx, r13
mov rax, qword [rsp + 0x98]
mov rbp, rax
add rax, rsi
mov ecx, edx
mov ebx, 0x80808081
imul rcx, rbx
shr rcx, 0x27
add rax, rcx
add rax, 9
mov rcx, qword [rsp + 0x38]
cmp rax, rcx
ja 0x180082b86
mov rbx, rcx
mov rax, rbp
lea rcx, [rbp + 1]
cmp edx, 0xf
jb 0x18008415f
mov ebp, r14d
mov rdx, qword [rsp + 0x28]
sub ebp, edx
add ebp, 0xfffffff1
add rbp, r13
mov byte [rax], 0xf0
cmp ebp, 0xfe
jle 0x18008414f
mov eax, 0x1fd
cmp ebp, eax
cmovge ebp, eax
add ebp, edx
mov eax, r14d
sub eax, ebp
mov qword [rsp + 0xd0], rsi
lea esi, [rax + r13]
add esi, 0xef
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x27
lea r8, [rsi + 1]
mov dl, 0xff
call fcn.180091cf0
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
mov rax, qword [rsp + 0x98]
lea rcx, [rax + rsi]
add rcx, 2
mov rsi, qword [rsp + 0xd0]
sub r14d, dword [rsp + 0x28]
sub r12d, ebp
mov eax, 0x80808081
imul r12, rax
mov rdx, qword [rsp + 0x28]
shr r12, 0x27
mov eax, r12d
shl eax, 8
sub r12d, eax
add r12d, r14d
lea ebp, [r12 + r13]
add ebp, 0xfffffef2
mov r14, rbx
mov r12, qword [rsp + 0x70]
mov byte [rcx], bpl
inc rcx
jmp 0x18008416f
mov byte [rax], r8b
mov rdx, qword [rsp + 0x28]
mov r14, rbx
mov r12, qword [rsp + 0x70]
add rsi, rcx
mov r13, qword [rsp + 0x40]
mov rax, qword [rdx]
mov qword [rcx], rax
add rcx, 8
add rdx, 8
cmp rcx, rsi
jb 0x180084177
mov r8, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xb0]
mov word [rsi], r15w
cmp r12, r13
je 0x180084356
mov r15, rsi
add rdi, 4
mov rsi, rbx
lea rcx, [rbx + 4]
mov rbx, qword [rsp + 0xa8]
cmp rbx, rcx
jbe 0x180085266
mov rax, qword [rcx]
xor rax, qword [rdi]
je 0x18008442a
bsf rbp, rax
xor edx, edx
test rax, rax
sete al
je 0x180084434
shr ebp, 3
mov rbx, rsi
mov rsi, r15
mov eax, ebp
add rbx, rax
add rbx, 4
lea eax, [rbp + 0xf0]
mov ecx, 0x80808081
imul rax, rcx
shr rax, 0x27
add rax, rsi
add rax, 8
cmp rax, r14
ja 0x180082b86
lea rdi, [rsi + 2]
mov al, byte [r8]
cmp ebp, 0xf
jb 0x1800842ae
add al, 0xf
mov byte [r8], al
lea eax, [rbp - 0xf]
mov dword [rdi], 0xffffffff
cmp eax, 0x3fc
jb 0x180084295
lea rcx, [rsi + 6]
add ebp, 0xfffffbf5
mov r15, rsi
mov rsi, rbp
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x29
mov edi, esi
lea r8, [rdi*4 + 4]
mov dl, 0xff
call fcn.180091cf0
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
imul eax, esi, 0x3fc
mov r13, qword [rsp + 0x40]
sub ebp, eax
lea rdi, [r15 + rdi*4]
add rdi, 6
mov eax, ebp
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add rdi, rcx
inc rdi
add ecx, eax
mov byte [rdi - 1], cl
jmp 0x1800842b4
add al, bpl
mov byte [r8], al
cmp rbx, qword [rsp + 0x48]
mov r8d, dword [rsp + 0x60]
jae 0x180084c34
mov r12, r11
mov r11, rdi
lea rax, [rbx - 2]
mov rcx, qword [rbx - 2]
movabs rdx, 0xcf1bbcdcbb000000
imul rcx, rdx
mov rdi, qword [rsp + 0x80]
sub eax, edi
shr rcx, 0x34
mov dword [r10 + rcx*4], eax
mov rcx, qword [rbx]
imul rcx, rdx
mov r15d, ebx
sub r15d, edi
shr rcx, 0x34
mov eax, dword [r10 + rcx*4]
cmp eax, r9d
cmovb rdi, qword [rsp + 0x30]
mov rdx, r12
cmovb r12, r13
mov dword [r10 + rcx*4], r15d
cmp eax, r8d
jb 0x18008453c
lea ecx, [rax + 0xffff]
cmp ecx, r15d
jb 0x18008453c
add rdi, rax
mov ecx, dword [rdi]
cmp ecx, dword [rbx]
jne 0x18008453c
lea rsi, [r11 + 1]
mov byte [r11], 0
sub r15d, eax
mov r8, r11
mov r11, rdx
jmp 0x18008419a
mov rcx, qword [rsp + 0x90]
sub rcx, rdi
add rcx, rbx
mov rax, qword [rsp + 0x58]
cmp rcx, rax
cmova rcx, rax
mov rax, rbx
lea rbx, [rdi + 4]
mov rdx, rax
mov qword [rsp + 0x28], rax
lea r9, [rax + 4]
lea rax, [rcx - 7]
cmp rax, r9
mov r15, qword [rsp + 0xa8]
jbe 0x180085276
mov rdx, qword [r9]
xor rdx, qword [rbx]
je 0x18008447b
mov r12, rsi
bsf rbp, rdx
xor esi, esi
test rdx, rdx
sete dl
je 0x180084488
shr ebp, 3
mov r13, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x28]
mov rsi, r12
mov eax, ebp
lea rbx, [rax + rdx]
add rbx, 4
cmp rbx, rcx
mov r9, qword [rsp + 0x68]
jne 0x1800841f6
mov rdx, rcx
mov rbx, r11
cmp r15, rcx
jbe 0x1800844e6
mov rax, qword [rcx]
xor rax, qword [r11]
je 0x1800844d2
bsf rdx, rax
xor ebx, ebx
test rax, rax
sete al
je 0x1800844dc
shr edx, 3
mov r14, qword [rsp + 0x38]
add ebp, edx
mov eax, edx
add rcx, rax
mov rbx, rcx
jmp 0x1800841f6
mov ebp, 0x40
jmp 0x1800841d6
mov dl, al
lea rbp, [rcx + rdx*8]
lea rdi, [rdi + rdx*8]
cmp rbp, rbx
jae 0x180084f69
mov eax, ebp
sub eax, esi
add eax, 0xfffffffc
mov rdx, qword [rbp]
xor rdx, qword [rdi]
jne 0x18008446c
add rbp, 8
add rdi, 8
add eax, 8
cmp rbp, rbx
jb 0x18008444e
jmp 0x180084f69
bsf rbp, rdx
shr rbp, 3
add ebp, eax
jmp 0x1800841e7
mov r12, rsi
mov ebp, 0x40
jmp 0x1800843ab
mov sil, dl
lea rbp, [r9 + rsi*8]
lea rbx, [rbx + rsi*8]
cmp rbp, rax
jae 0x180085030
mov edx, ebp
sub edx, dword [rsp + 0x28]
add edx, 0xfffffffc
mov rsi, qword [rbp]
xor rsi, qword [rbx]
jne 0x1800844c3
add rbp, 8
add rbx, 8
add edx, 8
cmp rbp, rax
jb 0x1800844a5
jmp 0x180085030
bsf rbp, rsi
shr rbp, 3
add ebp, edx
jmp 0x1800843bc
mov edx, 0x40
jmp 0x180084405
mov bl, al
lea rdx, [rcx + rbx*8]
lea rbx, [r11 + rbx*8]
cmp rdx, r15
jae 0x180085196
mov r12, qword [rsp + 0x28]
add r12, qword [rsp + 0x90]
sub r12, rdi
mov rax, qword [rsp + 0x58]
cmp r12, rax
cmovae r12, rax
mov eax, edx
sub eax, r12d
mov rdi, qword [rdx]
xor rdi, qword [rbx]
jne 0x18008452d
add rdx, 8
add rbx, 8
add eax, 8
cmp rdx, r15
jb 0x180084510
jmp 0x180085196
bsf rdx, rdi
shr rdx, 3
add edx, eax
jmp 0x180084416
lea rax, [rbx + 1]
mov r15, rax
sub r15, qword [rsp + 0x80]
lea rcx, [rbx + 2]
cmp rcx, qword [rsp + 0x48]
mov r12, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xb8]
mov ebp, dword [rsp + 0xc0]
mov rdi, r11
mov r11, rdx
jbe 0x180083f42
jmp 0x180082969
mov r14, r11
sub r14, r13
lea rax, [r11 + rsi]
add rax, 0xfffffffffffffff5
mov qword [rsp + 0x80], rax
lea rcx, [r11 + rsi]
add rcx, 0xfffffffffffffffb
test rbp, rbp
movabs rdx, 0xcf1bbcdcbb000000
mov rax, qword [rsp + 0x90]
cmove rax, rbp
mov qword [rsp + 0x90], rax
mov rax, qword [r11]
imul rax, rdx
shr rax, 0x32
and eax, 0xfffffffc
mov dword [r10 + rax], r9d
mov ebx, dword [rsp + 0x54]
shl ebx, 6
or ebx, 1
lea rax, [r11 + 2]
lea r15, [r11 + 1]
inc r13
mov qword [rsp + 0x58], rcx
add rcx, 0xfffffffffffffff9
mov qword [rsp + 0x60], rcx
mov rdx, r11
mov r12, qword [rsp + 0xa0]
mov qword [rsp + 0x38], r8
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0xa8], r14
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x30], rdx
mov rdx, qword [rdx + 1]
mov ebp, dword [rsp + 0x54]
mov ecx, ebx
mov rsi, rax
movabs rax, 0xcf1bbcdcbb000000
imul rdx, rax
mov rax, rdx
shr rax, 0x34
mov ebx, dword [r10 + rax*4]
mov rdx, qword [rsi]
mov dword [r10 + rax*4], r13d
lea eax, [rbx + 0xffff]
cmp eax, r13d
jb 0x180084663
cmp ebx, r9d
mov rax, r14
cmovb rax, r8
mov edi, dword [rax + rbx]
cmp edi, dword [r15]
je 0x18008468a
mov r13, rsi
sub r13, r14
mov eax, ebp
add rax, rsi
lea ebx, [rcx + 1]
shr ecx, 6
mov ebp, ecx
mov ecx, ebx
mov r15, rsi
cmp rax, qword [rsp + 0x80]
jbe 0x180084623
jmp 0x18008501e
mov qword [rsp + 0x98], r12
add rax, rbx
cmp ebx, r9d
mov r14, r11
cmovb r14, qword [rsp + 0x40]
sub r13d, ebx
lea ecx, [r15 + 0xef]
mov ebx, r15d
shl bl, 4
mov rbp, qword [rsp + 0x30]
mov edx, ebp
shl dl, 4
sub bl, dl
mov rdx, rbp
xor esi, esi
mov r12, rsi
mov qword [rsp + 0x48], rcx
mov edi, ebx
lea rbp, [rax + rsi]
lea r8, [r15 + rsi]
cmp rbp, r14
jbe 0x1800846fe
cmp r8, rdx
jbe 0x1800846fe
mov dl, byte [r15 + r12 - 1]
lea rsi, [r12 - 1]
mov rcx, qword [rsp + 0x48]
dec ecx
lea ebx, [rdi - 0x10]
cmp dl, byte [rax + r12 - 1]
mov rdx, qword [rsp + 0x30]
je 0x1800846c2
mov eax, r15d
sub eax, edx
lea ecx, [r12 + rax]
mov eax, r15d
sub eax, edx
add rax, r12
mov qword [rsp + 0xb0], rcx
mov rsi, qword [rsp + 0x98]
add rcx, rsi
mov edx, eax
mov ebx, 0x80808081
imul rdx, rbx
shr rdx, 0x27
add rcx, rdx
add rcx, 9
cmp rcx, qword [rsp + 0x70]
ja 0x180082b86
lea rcx, [rsi + 1]
cmp eax, 0xf
mov rax, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x28]
mov qword [rsp + 0xb8], r8
jb 0x18008480c
mov ebx, r15d
mov rdx, qword [rsp + 0x30]
sub ebx, edx
add ebx, 0xfffffff1
add rbx, r12
mov byte [rsi], 0xf0
cmp ebx, 0xfe
jle 0x180084824
mov eax, 0x1fd
cmp ebx, eax
cmovge ebx, eax
add ebx, edx
mov eax, r15d
sub eax, ebx
lea edi, [rax + r12]
add edi, 0xef
mov eax, 0x80808081
imul rdi, rax
shr rdi, 0x27
lea r8, [rdi + 1]
mov dl, 0xff
call fcn.180091cf0
mov rdx, qword [rsp + 0x30]
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
lea rcx, [rsi + rdi]
add rcx, 2
mov rsi, qword [rsp + 0x40]
sub r15d, edx
mov rdi, qword [rsp + 0x48]
sub edi, ebx
mov eax, 0x80808081
imul rdi, rax
shr rdi, 0x27
mov eax, edi
shl eax, 8
sub edi, eax
add edi, r15d
lea ebx, [r12 + rdi]
add ebx, 0xfffffef2
mov rdi, qword [rsp + 0xb0]
jmp 0x18008482f
mov byte [rsi], dil
mov rdx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0xb0]
mov r8, rsi
mov rsi, rax
jmp 0x180084840
mov rdi, qword [rsp + 0xb0]
mov rsi, rax
mov byte [rcx], bl
inc rcx
mov r8, qword [rsp + 0x98]
mov ebx, dword [rsp + 0x28]
add rdi, rcx
mov rax, qword [rdx]
mov qword [rcx], rax
add rcx, 8
add rdx, 8
cmp rcx, rdi
jb 0x180084843
mov rdx, qword [rsp + 0xb8]
mov r15, rdi
mov word [rdi], r13w
cmp r14, rsi
mov r12, rdx
je 0x180084a23
add rbp, 4
lea rcx, [rdx + 4]
mov rdi, qword [rsp + 0x60]
cmp rdi, rcx
jbe 0x18008526e
mov rdx, qword [rcx]
xor rdx, qword [rbp]
je 0x180084aa1
bsf r14, rdx
xor ebx, ebx
test rdx, rdx
sete al
je 0x180084aac
shr r14d, 3
mov ebx, dword [rsp + 0x28]
mov rdx, r12
mov eax, r14d
add rdx, rax
add rdx, 4
lea eax, [r14 + 0xf0]
mov ecx, 0x80808081
imul rax, rcx
shr rax, 0x27
add rax, r15
add rax, 8
cmp rax, qword [rsp + 0x70]
ja 0x180082b86
lea r12, [r15 + 2]
mov cl, byte [r8]
cmp r14d, 0xf
jb 0x180084983
add cl, 0xf
mov byte [r8], cl
lea eax, [r14 - 0xf]
mov dword [r12], 0xffffffff
cmp eax, 0x3fc
jb 0x180084968
lea rcx, [r15 + 6]
add r14d, 0xfffffbf5
mov rsi, r14
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x29
mov edi, esi
lea r8, [rdi*4 + 4]
mov rbp, rdx
mov dl, 0xff
call fcn.180091cf0
mov rdx, rbp
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
imul eax, esi, 0x3fc
mov rsi, qword [rsp + 0x40]
sub r14d, eax
lea r12, [r15 + rdi*4]
add r12, 6
mov eax, r14d
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add r12, rcx
inc r12
add ecx, eax
mov byte [r12 - 1], cl
jmp 0x180084989
add cl, r14b
mov byte [r8], cl
cmp rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x38]
mov rbp, qword [rsp + 0xa8]
jae 0x180084c49
lea rax, [rdx - 2]
mov rcx, qword [rdx - 2]
mov rdi, rdx
movabs rdx, 0xcf1bbcdcbb000000
imul rcx, rdx
sub eax, ebp
shr rcx, 0x34
mov dword [r10 + rcx*4], eax
mov rcx, qword [rdi]
imul rcx, rdx
mov rdx, rdi
mov r13d, edx
sub r13d, ebp
shr rcx, 0x34
mov eax, dword [r10 + rcx*4]
cmp eax, r9d
cmovb rbp, r8
mov r14, r11
cmovb r14, rsi
mov dword [r10 + rcx*4], r13d
lea ecx, [rax + 0xffff]
cmp ecx, r13d
jb 0x180084c03
add rbp, rax
mov ecx, dword [rbp]
cmp ecx, dword [rdx]
jne 0x180084c03
lea rdi, [r12 + 1]
mov byte [r12], 0
sub r13d, eax
mov r8, r12
jmp 0x18008485e
mov rcx, qword [rsp + 0x90]
sub rcx, rbp
add rcx, rdx
mov rax, qword [rsp + 0x58]
cmp rcx, rax
cmova rcx, rax
lea rbx, [rbp + 4]
lea r9, [rdx + 4]
lea rdi, [rcx - 7]
cmp rdi, r9
mov r13, qword [rsp + 0x60]
jbe 0x180085281
mov rsi, qword [r9]
xor rsi, qword [rbx]
je 0x180084b3f
bsf r14, rsi
xor eax, eax
test rsi, rsi
sete dl
je 0x180084b4a
shr r14d, 3
mov rsi, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x28]
mov rdx, r12
mov eax, r14d
add rax, rdx
add rax, 4
cmp rax, rcx
mov r9, qword [rsp + 0x68]
je 0x180084afb
mov rdx, rax
jmp 0x1800848bb
mov r14d, 0x40
jmp 0x180084898
mov bl, al
lea r14, [rcx + rbx*8]
lea rbp, [rbp + rbx*8]
mov ebx, dword [rsp + 0x28]
cmp r14, rdi
jae 0x180084f96
mov edx, r14d
sub edx, r12d
add edx, 0xfffffffc
mov rax, qword [r14]
xor rax, qword [rbp]
jne 0x180084aeb
add r14, 8
add rbp, 8
add edx, 8
cmp r14, rdi
jb 0x180084acd
jmp 0x180084f96
bsf r14, rax
shr r14, 3
add r14d, edx
jmp 0x1800848ae
mov rdx, rcx
mov rbx, r11
cmp r13, rcx
jbe 0x180084bb2
mov rbx, qword [rcx]
xor rbx, qword [r11]
je 0x180084b9e
bsf rdx, rbx
xor eax, eax
test rbx, rbx
sete bl
je 0x180084ba8
shr edx, 3
mov ebx, dword [rsp + 0x28]
add r14d, edx
mov eax, edx
add rcx, rax
mov rdx, rcx
jmp 0x1800848bb
mov r14d, 0x40
jmp 0x180084a67
mov al, dl
lea r14, [r9 + rax*8]
lea rbx, [rbx + rax*8]
mov rdx, r12
cmp r14, rdi
jae 0x18008505d
mov esi, r14d
sub esi, edx
add esi, 0xfffffffc
mov rax, qword [r14]
xor rax, qword [rbx]
jne 0x180084b85
add r14, 8
add rbx, 8
add esi, 8
cmp r14, rdi
jb 0x180084b68
jmp 0x18008505d
bsf r14, rax
shr r14, 3
add r14d, esi
mov rsi, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x28]
jmp 0x180084a85
mov edx, 0x40
jmp 0x180084b1a
mov al, bl
lea rdx, [rcx + rax*8]
lea rbx, [r11 + rax*8]
cmp rdx, r13
jae 0x1800851ee
add r12, qword [rsp + 0x90]
sub r12, rbp
mov rax, qword [rsp + 0x58]
cmp r12, rax
cmovae r12, rax
mov ebp, edx
sub ebp, r12d
mov rax, qword [rdx]
xor rax, qword [rbx]
jne 0x180084bf4
add rdx, 8
add rbx, 8
add ebp, 8
cmp rdx, r13
jb 0x180084bd7
jmp 0x1800851ee
bsf rdx, rax
shr rdx, 3
add edx, ebp
jmp 0x180084b2b
lea r15, [rdx + 1]
mov r13, r15
mov r14, qword [rsp + 0xa8]
sub r13, r14
lea rax, [rdx + 2]
cmp rax, qword [rsp + 0x80]
mov rsi, qword [rsp + 0xc0]
jbe 0x180084614
jmp 0x180082dde
mov r12, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xb8]
jmp 0x180082969
mov rsi, qword [rsp + 0xc0]
jmp 0x180082dde
mov eax, edi
shl al, 4
mov byte [rsi], al
lea rax, [rsi + 1]
mov rcx, rax
mov rdx, r14
mov r8, rdi
call fcn.180091e30
add edi, esi
sub edi, ebx
inc edi
mov eax, edi
jmp 0x180082e61
mov eax, r11d
shl al, 4
mov byte [rdi], al
lea rax, [rdi + 1]
mov rcx, rax
mov rdx, r14
mov r8, r11
mov rsi, r11
call fcn.180091e30
add esi, edi
jmp 0x180084cc0
mov eax, r11d
shl al, 4
mov byte [r12], al
lea rax, [r12 + 1]
mov rcx, rax
mov rdx, r15
mov r8, r11
mov rsi, r11
call fcn.180091e30
add esi, r12d
sub esi, dword [rsp + 0xa0]
inc esi
mov eax, esi
jmp 0x180082e84
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffffd
cmp rdi, rax
jae 0x180084ced
mov eax, dword [rbp]
cmp eax, dword [rdi]
jne 0x180084ced
add rdi, 4
add rbp, 4
mov rax, qword [rsp + 0x38]
dec rax
cmp rdi, rax
jae 0x180084d0b
movzx eax, word [rbp]
cmp ax, word [rdi]
jne 0x180084d0b
add rdi, 2
add rbp, 2
cmp rdi, qword [rsp + 0x38]
jae 0x180084d1f
mov al, byte [rbp]
xor edx, edx
cmp al, byte [rdi]
sete dl
add rdi, rdx
mov rdx, r12
sub edi, ecx
jmp 0x18008242e
mov eax, esi
shl al, 4
mov byte [rdi], al
lea rax, [rdi + 1]
mov rcx, rax
mov rdx, rbx
mov r8, rsi
call fcn.180091e30
add esi, edi
jmp 0x180082e5a
mov r11, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x58]
jmp 0x180082c9b
lea rax, [r10 - 3]
cmp rdi, rax
jae 0x180084de2
mov eax, dword [rbx]
cmp eax, dword [rdi]
mov rsi, qword [rsp + 0x48]
jne 0x180084de7
add rdi, 4
add rbx, 4
jmp 0x180084de7
mov rax, qword [rsp + 0x98]
add rax, 0xfffffffffffffffd
cmp rbp, rax
jae 0x180084d9c
mov eax, dword [r15]
cmp eax, dword [rbp]
jne 0x180084d9c
add rbp, 4
add r15, 4
mov rax, qword [rsp + 0x98]
dec rax
cmp rbp, rax
jae 0x180084dbe
movzx eax, word [r15]
cmp ax, word [rbp]
jne 0x180084dbe
add rbp, 2
add r15, 2
cmp rbp, qword [rsp + 0x98]
jae 0x180084dd6
mov al, byte [r15]
xor edx, edx
cmp al, byte [rbp]
sete dl
add rbp, rdx
mov r15, qword [rsp + 0x38]
sub ebp, ecx
jmp 0x1800831b8
mov rsi, qword [rsp + 0x48]
lea rax, [r10 - 1]
cmp rdi, rax
jae 0x180084e05
movzx eax, word [rbx]
cmp ax, word [rdi]
mov rdx, r12
jne 0x180084e08
add rdi, 2
add rbx, 2
jmp 0x180084e08
mov rdx, r12
cmp rdi, r10
jae 0x180084e19
mov al, byte [rbx]
xor ecx, ecx
cmp al, byte [rdi]
sete cl
add rdi, rcx
mov r11, qword [rsp + 0x60]
sub edi, r9d
jmp 0x1800825f5
mov rdi, qword [rsp + 0x70]
mov rsi, qword [rsp + 0xb0]
jmp 0x180082aab
mov edx, dword [r13]
cmp edx, dword [rbp]
jne 0x1800839cf
add rbp, 4
add r13, 4
jmp 0x1800839cf
movzx edx, word [r13]
cmp dx, word [rbp]
jne 0x1800839dc
add rbp, 2
add r13, 2
jmp 0x1800839dc
mov dl, byte [r13]
xor ebx, ebx
cmp dl, byte [rbp]
sete bl
add rbp, rbx
jmp 0x1800839e5
mov edx, dword [r13]
cmp edx, dword [rdi]
jne 0x180083e7d
add rdi, 4
add r13, 4
jmp 0x180083e7d
movzx edx, word [r13]
cmp dx, word [rdi]
jne 0x180083e8a
add rdi, 2
add r13, 2
jmp 0x180083e8a
mov dl, byte [r13]
xor ebp, ebp
cmp dl, byte [rdi]
sete bpl
add rdi, rbp
jmp 0x180083e93
mov r15, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
jmp 0x18008281d
mov r8, qword [rsp + 0x30]
mov r12, qword [rsp + 0x40]
jmp 0x180082bdd
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffffd
cmp rdx, rax
jae 0x180084f04
mov eax, dword [rbx]
cmp eax, dword [rdx]
jne 0x180084f04
add rdx, 4
add rbx, 4
mov rax, qword [rsp + 0x38]
dec rax
cmp rdx, rax
jae 0x180084f21
movzx eax, word [rbx]
cmp ax, word [rdx]
jne 0x180084f21
add rdx, 2
add rbx, 2
cmp rdx, qword [rsp + 0x38]
jae 0x180084f34
mov al, byte [rbx]
xor ecx, ecx
cmp al, byte [rdx]
sete cl
add rdx, rcx
mov r11, qword [rsp + 0x60]
sub edx, r10d
jmp 0x1800826a4
lea rax, [rcx - 3]
cmp rbp, rax
jae 0x180085087
mov eax, dword [rbx]
cmp eax, dword [rbp]
mov rdi, r12
jne 0x18008508a
add rbp, 4
add rbx, 4
jmp 0x18008508a
mov rax, qword [rsp + 0x58]
add rax, 0xfffffffffffffffd
cmp rbp, rax
jae 0x1800850c1
mov eax, dword [rdi]
cmp eax, dword [rbp]
mov rbx, rsi
jne 0x1800850c4
add rbp, 4
add rdi, 4
jmp 0x1800850c4
mov rax, qword [rsp + 0x58]
add rax, 0xfffffffffffffffd
cmp r14, rax
jae 0x180084fb4
mov eax, dword [rbp]
cmp eax, dword [r14]
jne 0x180084fb4
add r14, 4
add rbp, 4
mov rax, qword [rsp + 0x58]
dec rax
cmp r14, rax
jae 0x180084fd3
movzx eax, word [rbp]
cmp ax, word [r14]
jne 0x180084fd3
add r14, 2
add rbp, 2
cmp r14, qword [rsp + 0x58]
jae 0x180084fe8
mov al, byte [rbp]
xor edx, edx
cmp al, byte [r14]
sete dl
add r14, rdx
mov rdx, r12
sub r14d, ecx
jmp 0x1800848b1
xor eax, eax
mov r11, qword [rsp + 0x78]
jmp 0x180082e6e
mov rsi, qword [rsp + 0xb8]
mov r14, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x98]
jmp 0x180082969
mov rsi, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0x30]
jmp 0x180082dde
lea rax, [rcx - 3]
cmp rbp, rax
jae 0x180085108
mov eax, dword [rbx]
cmp eax, dword [rbp]
mov r13, qword [rsp + 0x40]
mov rsi, r12
jne 0x180085110
add rbp, 4
add rbx, 4
jmp 0x180085110
lea rax, [rcx - 3]
cmp r14, rax
jae 0x18008514e
mov eax, dword [rbx]
cmp eax, dword [r14]
mov rsi, qword [rsp + 0x40]
jne 0x180085153
add r14, 4
add rbx, 4
jmp 0x180085153
mov rdi, r12
lea rax, [rcx - 1]
cmp rbp, rax
jae 0x1800850a4
movzx eax, word [rbx]
cmp ax, word [rbp]
jne 0x1800850a4
add rbp, 2
add rbx, 2
cmp rbp, rcx
jae 0x1800850b6
mov al, byte [rbx]
xor edx, edx
cmp al, byte [rbp]
sete dl
add rbp, rdx
mov rbx, r13
sub ebp, r9d
jmp 0x18008337b
mov rbx, rsi
mov rsi, r15
mov rax, qword [rsp + 0x58]
dec rax
cmp rbp, rax
jae 0x1800850e5
movzx eax, word [rdi]
cmp ax, word [rbp]
jne 0x1800850e5
add rbp, 2
add rdi, 2
cmp rbp, qword [rsp + 0x58]
jae 0x1800850f9
mov al, byte [rdi]
xor edx, edx
cmp al, byte [rbp]
sete dl
add rbp, rdx
sub ebp, ecx
jmp 0x1800841ed
mov rdi, rcx
jmp 0x180082635
mov r13, qword [rsp + 0x40]
mov rsi, r12
lea rax, [rcx - 1]
cmp rbp, rax
jae 0x18008512a
movzx eax, word [rbx]
cmp ax, word [rbp]
jne 0x18008512a
add rbp, 2
add rbx, 2
cmp rbp, rcx
jae 0x18008513c
mov al, byte [rbx]
xor edx, edx
cmp al, byte [rbp]
sete dl
add rbp, rdx
mov r14, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x28]
sub ebp, r9d
jmp 0x1800843ce
mov rsi, qword [rsp + 0x40]
lea rax, [rcx - 1]
cmp r14, rax
jae 0x18008516d
movzx eax, word [rbx]
cmp ax, word [r14]
jne 0x18008516d
add r14, 2
add rbx, 2
cmp r14, rcx
jae 0x180085182
mov al, byte [rbx]
xor edx, edx
cmp al, byte [r14]
sete dl
add r14, rdx
mov rdx, r12
mov ebx, dword [rsp + 0x28]
sub r14d, r9d
jmp 0x180084a85
mov rdi, r9
jmp 0x1800826ca
mov rax, qword [rsp + 0x58]
add rax, 0xfffffffffffffffd
cmp rdx, rax
jae 0x1800851b2
mov eax, dword [rbx]
cmp eax, dword [rdx]
jne 0x1800851b2
add rdx, 4
add rbx, 4
mov rax, qword [rsp + 0x58]
dec rax
cmp rdx, rax
jae 0x1800851cf
movzx eax, word [rbx]
cmp ax, word [rdx]
jne 0x1800851cf
add rdx, 2
add rbx, 2
cmp rdx, qword [rsp + 0x58]
jae 0x1800851e2
mov al, byte [rbx]
xor ebx, ebx
cmp al, byte [rdx]
sete bl
add rdx, rbx
mov r14, qword [rsp + 0x38]
sub edx, ecx
jmp 0x18008441b
mov rax, qword [rsp + 0x58]
add rax, 0xfffffffffffffffd
cmp rdx, rax
jae 0x18008520a
mov eax, dword [rbx]
cmp eax, dword [rdx]
jne 0x18008520a
add rdx, 4
add rbx, 4
mov rax, qword [rsp + 0x58]
dec rax
cmp rdx, rax
jae 0x180085227
movzx eax, word [rbx]
cmp ax, word [rdx]
jne 0x180085227
add rdx, 2
add rbx, 2
cmp rdx, qword [rsp + 0x58]
jae 0x18008523b
mov al, byte [rbx]
xor ebp, ebp
cmp al, byte [rdx]
sete bpl
add rdx, rbp
mov ebx, dword [rsp + 0x28]
sub edx, ecx
jmp 0x180084b2f
mov rbp, rcx
jmp 0x180083957
mov rdi, rcx
jmp 0x180083e0e
mov rbp, rcx
jmp 0x1800833bd
mov rbp, r9
jmp 0x180083463
mov rbp, rcx
jmp 0x18008443e
mov r14, rcx
jmp 0x180084abb
mov r12, rsi
mov rbp, r9
jmp 0x180084493
mov r14, r9
jmp 0x180084b57
xor eax, eax
jmp 0x180082e66
mov r15, qword [rsp + 0x38]
mov rax, qword [rsp + 0x98]
add rax, 0xfffffffffffffffd
cmp rdx, rax
jae 0x1800852b4
mov eax, dword [rbx]
cmp eax, dword [rdx]
jne 0x1800852b4
add rdx, 4
add rbx, 4
mov rax, qword [rsp + 0x98]
dec rax
cmp rdx, rax
jae 0x1800852d4
movzx eax, word [rbx]
cmp ax, word [rdx]
jne 0x1800852d4
add rdx, 2
add rbx, 2
cmp rdx, qword [rsp + 0x98]
jae 0x1800852ea
mov al, byte [rbx]
xor ebx, ebx
cmp al, byte [rdx]
sete bl
add rdx, rbx
mov rbx, r13
sub edx, ecx
jmp 0x180083440