Function at 0x140140290
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x138
mov r13, r9
mov r15, r8
mov r12, rdx
mov r14, rcx
movsxd rsi, dword [rsp + 0x1a0]
xor eax, eax
mov qword [rsp + 0x30], rax
mov r8d, 0x400
mov rcx, r15
xor edx, edx
call fcn.14038d2f0
mov r8d, 0x40000
mov rcx, r13
xor edx, edx
call fcn.14038d2f0
lea rax, [rsi - 1]
mov qword [rsp + 0xf0], rax
mov ecx, esi
mov r8d, esi
mov qword [rsp + 0xb8], rsi
test rsi, rsi
mov qword [rsp + 0x28], rcx
jle 0x14014039b
mov rbx, qword [rsp + 0xf0]
movzx eax, byte [r14 + rbx]
mov r8, rcx
movzx edi, al
mov ebp, ebx
lea esi, [rbx - 1]
add ebx, 0xfffffffe
mov r10, rbp
mov edx, edi
inc dword [r15 + rdx*4]
sub rbp, 1
jb 0x14014039b
mov eax, edi
mov ecx, esi
mov r9d, ebx
movzx edi, byte [r14 + r10 - 1]
lea esi, [rcx - 1]
lea ebx, [r9 - 1]
cmp eax, edi
jbe 0x140140320
mov edx, edi
shl edx, 8
add edx, eax
inc dword [r13 + rdx*4]
mov dword [r12 + r8*4 - 4], ebp
dec r8
cmp r10d, 2
jl 0x14014039b
mov ebp, r9d
add rbp, r14
nop word [rax + rax]
movzx eax, byte [rbp]
movzx ebx, al
cmp edi, ebx
jb 0x140140392
shl edi, 8
or edi, ebx
inc dword [r13 + rdi*4]
dec ecx
dec rbp
mov edi, ebx
test ecx, ecx
jg 0x140140370
jmp 0x14014039b
dec ecx
mov ebx, ecx
jmp 0x140140315
mov qword [rsp + 0xc0], r15
mov rax, qword [rsp + 0xb8]
sub eax, r8d
mov qword [rsp + 0x108], rax
cdqe
lea rcx, [r12 + rax*4]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0xe8], rax
lea rax, [r12 + rax*4]
add rax, 0x300
mov qword [rsp + 0xa8], rax
xor ebx, ebx
xor r15d, r15d
xor r11d, r11d
jmp 0x140140400
mov rbx, r9
cmp r9, 0x100
je 0x14014062b
lea ebp, [r11 + r15]
mov rcx, qword [rsp + 0xc0]
add r15d, dword [rcx + rbx*4]
mov dword [rcx + rbx*4], ebp
mov r10, rbx
shl r10, 8
mov esi, r10d
or esi, ebx
add r15d, dword [r13 + rsi*4]
lea r9, [rbx + 1]
cmp rbx, 0xfe
ja 0x1401403f0
mov rbp, r9
or rbp, r10
test rbx, rbx
je 0x140140549
mov eax, ebx
mov ebp, ebp
mov edi, dword [r13 + rbp*4]
add r11d, edi
test edi, edi
je 0x14014048f
mov r8, qword [rsp + 0x30]
movsxd rdi, r8d
mov esi, dword [r13 + r10*4 - 4]
movzx esi, si
mov rdx, qword [rsp + 0x60]
mov word [rdx + rdi*4 + 0x700], si
mov word [rdx + rdi*4 + 0x702], r11w
movzx edi, r11w
sub edi, esi
xor esi, esi
cmp edi, 2
setge sil
add esi, r8d
mov edx, esi
mov qword [rsp + 0x30], rdx
mov dword [r13 + rbp*4], r11d
mov rbp, r9
shl rbp, 8
or rbp, rbx
add r15d, dword [r13 + rbp*4]
mov rbp, rbx
add rbp, 2
mov ebx, 0xff
cmp rbp, 0x100
je 0x140140400
lea ebx, [r10 + 0x200]
jmp 0x1401404f2
mov dword [r13 + rdi*4], r11d
mov edx, ebx
or edx, eax
add r15d, dword [r13 + rdx*4]
inc ebp
add ebx, 0x100
cmp ebp, 0x100
je 0x1401403f0
mov edi, ebp
or edi, r10d
mov edx, dword [r13 + rdi*4]
add r11d, edx
test edx, edx
je 0x1401404d0
mov rcx, qword [rsp + 0x30]
movsxd rcx, ecx
lea edx, [rbp - 1]
or edx, r10d
movsxd rdx, edx
mov edx, dword [r13 + rdx*4]
movzx edx, dx
mov rsi, qword [rsp + 0x60]
mov word [rsi + rcx*4 + 0x700], dx
mov word [rsi + rcx*4 + 0x702], r11w
movzx esi, r11w
sub esi, edx
xor edx, edx
cmp esi, 2
setge dl
add ecx, edx
mov qword [rsp + 0x30], rcx
jmp 0x1401404d0
mov eax, dword [r13 + rbp*4]
add r11d, eax
test eax, eax
je 0x140140588
mov rbx, qword [rsp + 0x30]
movsxd rax, ebx
mov rdx, qword [rsp + 0x60]
mov word [rdx + rax*4 + 0x700], 0
mov word [rdx + rax*4 + 0x702], r11w
mov eax, r11d
and eax, 0xfffe
cmp eax, 1
sbb ebx, 0xffffffff
mov qword [rsp + 0x30], rbx
mov dword [r13 + rbp*4], r11d
mov eax, r9d
shl eax, 8
add r15d, dword [r13 + rax*4]
mov edi, 2
mov ebp, 0x800
movabs rbx, 0x100000001
jmp 0x1401405d4
mov dword [r13 + rax*4], r11d
add r15d, dword [r13 + rbp]
inc rdi
inc rbx
add rbp, 0x400
cmp rbp, 0x40000
je 0x1401403f0
mov eax, edi
or eax, r10d
mov esi, dword [r13 + rax*4]
add r11d, esi
test esi, esi
je 0x1401405b0
mov rcx, qword [rsp + 0x30]
movsxd rcx, ecx
mov esi, ebx
or esi, r10d
movsxd rsi, esi
mov esi, dword [r13 + rsi*4]
movzx esi, si
mov rdx, qword [rsp + 0x60]
mov word [rdx + rcx*4 + 0x700], si
mov word [rdx + rcx*4 + 0x702], r11w
movzx edx, r11w
sub edx, esi
xor esi, esi
cmp edx, 2
setge sil
add ecx, esi
mov qword [rsp + 0x30], rcx
jmp 0x1401405b0
mov rsi, qword [rsp + 0x60]
lea rdi, [rsi + 0x180]
xor ebx, ebx
mov r8d, 0x300
mov rcx, rsi
xor edx, edx
call fcn.14038d2f0
mov r11, rsi
mov rcx, qword [rsp + 0xb8]
lea eax, [rcx + 0xff]
lea edx, [rcx + 0x1fe]
test eax, eax
cmovns edx, eax
test ecx, ecx
mov r15, qword [rsp + 0xc0]
mov qword [rsp + 0x40], r14
mov qword [rsp + 0xd8], r13
mov qword [rsp + 0xc8], rdi
jle 0x140141577
mov r8, rdi
sar edx, 8
movsxd rax, edx
mov qword [rsp + 0x128], rax
mov rax, qword [rsp + 0xe8]
lea rax, [r12 + rax*4]
add rax, 0x310
mov qword [rsp + 0xf8], rax
lea rax, [r14 + 0x103]
mov qword [rsp + 0x118], rax
lea rax, [r14 + 6]
mov qword [rsp + 0x68], rax
lea rax, [r14 + 3]
mov qword [rsp + 0x110], rax
mov dword [rsp + 0x104], edx
jmp 0x14014070f
mov rbx, qword [rsp + 0x130]
mov edx, dword [rsp + 0x104]
cmp ebx, edx
mov r13, qword [rsp + 0xd8]
jge 0x140141577
mov r13d, ebx
movsxd r9, ebx
lea ecx, [r9 + 1]
cmp edx, ecx
cmovg ecx, edx
lea rdx, [r9 + 1]
mov rdi, qword [rsp + 0x1b0]
mov rsi, qword [rsp + 0x128]
nop word cs:[rax + rax]
cmp rdx, rsi
jge 0x140140760
movzx eax, byte [rdi + rdx]
lea rbp, [rdx + 1]
inc ebx
cmp al, byte [rdi + rdx - 1]
mov rdx, rbp
je 0x140140740
jmp 0x140140762
mov ebx, ecx
mov qword [rsp + 0x130], rbx
mov r10d, ebx
sub r10d, r13d
cmp r10d, 2
jl 0x1401406f0
mov rcx, qword [rsp + 0x1b0]
movzx eax, byte [rcx + r9]
mov rdx, qword [rsp + 0x1a8]
movzx ecx, byte [rdx + rax*2]
movzx ebx, byte [rdx + rax*2 + 1]
mov eax, r10d
mov qword [rsp + 0xa0], rax
cmp rcx, 1
mov qword [rsp + 0xb0], rbx
jbe 0x1401408f7
mov eax, r13d
shl eax, 8
mov rdx, qword [rsp + 0xa8]
mov dword [rdx], eax
mov rbp, qword [rsp + 0xa0]
lea rdx, [rbp - 1]
lea rdi, [rbp - 2]
mov ebx, edx
and ebx, 3
mov ebp, 1
cmp rdi, 3
mov dword [rsp + 0xe4], r10d
mov qword [rsp + 0x120], r13
jae 0x140140804
mov rsi, qword [rsp + 0xf8]
test rbx, rbx
jne 0x140140857
jmp 0x140140880
and rdx, 0xfffffffffffffffc
xor ebp, ebp
mov rsi, qword [rsp + 0xf8]
nop word cs:[rax + rax]
lea edi, [rax + 0x100]
mov dword [rsi + rbp*4 - 0xc], edi
lea edi, [rax + 0x200]
mov dword [rsi + rbp*4 - 8], edi
lea edi, [rax + 0x300]
mov dword [rsi + rbp*4 - 4], edi
add eax, 0x400
mov dword [rsi + rbp*4], eax
add rbp, 4
cmp rdx, rbp
jne 0x140140820
inc rbp
test rbx, rbx
je 0x140140880
add eax, 0x100
lea rdx, [rsi + rbp*4]
add rdx, 0xfffffffffffffff0
xor ebp, ebp
nop word cs:[rax + rax]
mov dword [rdx + rbp*4], eax
inc rbp
add eax, 0x100
cmp rbx, rbp
jne 0x140140870
mov rax, qword [rsp + 0xa0]
lea r15, [r11 + rax*4]
add r15, 0x300
cmp dword [rsp + 0xe4], 2
mov rdx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x118]
jae 0x140140a1c
mov al, 1
mov rdx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xb0]
mov r10d, dword [rsp + 0xe4]
mov r13, qword [rsp + 0x120]
nop dword [rax + rax]
mov ebp, dword [rdx]
sar ebp, 8
movsxd rbp, ebp
mov byte [r11 + rbp], al
inc al
add rdx, 4
cmp rdx, r15
jb 0x1401408e0
cmp bl, 0xfc
mov r15, qword [rsp + 0xc0]
ja 0x1401406f0
shl r13d, 8
lea edx, [r13 + 0xfd]
mov rax, qword [rsp + 0xa8]
mov dword [rax], edx
mov rbp, qword [rsp + 0xa0]
lea rax, [rbp - 1]
lea rdi, [rbp - 2]
mov ebx, eax
and ebx, 3
mov ebp, 1
cmp rdi, 3
mov rsi, qword [rsp + 0xf8]
jb 0x140140998
and rax, 0xfffffffffffffffc
add r13d, 0x4fd
xor ebp, ebp
nop word cs:[rax + rax]
mov edx, r13d
lea edi, [rdx - 0x300]
mov dword [rsi + rbp*4 - 0xc], edi
lea edi, [rdx - 0x200]
mov dword [rsi + rbp*4 - 8], edi
lea edi, [rdx - 0x100]
mov dword [rsi + rbp*4 - 4], edi
mov dword [rsi + rbp*4], r13d
add rbp, 4
lea r13d, [rdx + 0x400]
cmp rax, rbp
jne 0x140140960
inc rbp
test rbx, rbx
je 0x1401409c1
add edx, 0x100
lea rax, [rsi + rbp*4]
add rax, 0xfffffffffffffff0
xor ebp, ebp
nop dword [rax]
mov dword [rax + rbp*4], edx
inc rbp
add edx, 0x100
cmp rbx, rbp
jne 0x1401409b0
mov rax, qword [rsp + 0xa0]
lea r13, [r11 + rax*4]
add r13, 0x300
cmp r10d, 2
mov rdx, qword [rsp + 0x28]
jae 0x140140fa0
mov al, 1
mov rcx, qword [rsp + 0xa8]
mov r15, qword [rsp + 0xc0]
nop word cs:[rax + rax]
mov edx, dword [rcx]
sar edx, 8
movsxd rdx, edx
mov byte [r8 + rdx], al
inc al
add rcx, 4
cmp rcx, r13
jb 0x140140a00
jmp 0x1401406f0
mov rax, qword [rsp + 0xa0]
add rax, 0xbe
mov rbp, qword [rsp + 0xb0]
cmp bpl, cl
jb 0x140140d8a
inc rbp
mov qword [rsp + 0x80], rbp
jmp 0x140140a71
mov eax, dword [rsp + 0x88]
mov dword [r8 - 4], eax
mov rbp, qword [rsp + 0x50]
lea rax, [rbp - 1]
cmp rbp, 0xc0
jle 0x1401408ae
mov ebp, dword [r11 + rax*4]
mov r13d, dword [r11 + rax*4 + 4]
mov qword [rsp + 0x50], rax
lea r8, [r11 + rax*4]
add r8, 4
mov dword [rsp + 0x88], ebp
movsxd r9, ebp
lea rax, [r14 + r9]
mov qword [rsp + 0xd0], rax
movsxd rbp, r13d
lea r10, [r14 + rbp]
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x48], rbp
xor r11d, r11d
mov qword [rsp + 0x98], rbp
mov qword [rsp + 0x78], r11
mov r14, r11
shl r14, 8
mov r11, r9
lea rax, [r14 + r9]
mov qword [rsp + 0x90], rax
add r14, rbp
mov rsi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x48]
mov qword [rsp + 0x70], r10
mov r9, qword [rsp + 0x80]
nop dword [rax + rax]
lea rax, [rcx + rsi]
cmp rax, rdx
jge 0x140140cd0
lea rax, [rcx + rdi]
cmp rax, rdx
jge 0x140140cd0
movzx eax, byte [rbx + rcx]
movzx edx, byte [r10 + rcx]
cmp al, dl
jne 0x140140ce0
dec r9
inc r10
inc rdi
inc rbx
inc rsi
cmp rcx, r9
mov rdx, qword [rsp + 0x28]
jne 0x140140b00
mov rax, qword [rsp + 0x90]
add rax, 0xff
cmp rax, rdx
mov r9, r11
mov rbp, qword [rsp + 0x98]
mov r10, qword [rsp + 0x70]
mov r11, qword [rsp + 0x78]
jge 0x140140d2e
lea rdi, [r14 + 0xff]
cmp rdi, rdx
jge 0x140140d2e
mov rbx, qword [rsp + 0x40]
movzx esi, byte [rbx + rax]
movzx ebx, byte [rbx + rdi]
cmp sil, bl
jne 0x140140caf
mov rax, qword [rsp + 0x90]
add rax, 0x100
cmp rax, rdx
jge 0x140140d2e
lea rdi, [r14 + 0x100]
cmp rdi, rdx
jge 0x140140d2e
mov rbx, qword [rsp + 0x40]
movzx esi, byte [rbx + rax]
movzx ebx, byte [rbx + rdi]
cmp sil, bl
jne 0x140140caf
mov rax, qword [rsp + 0x90]
add rax, 0x101
cmp rax, rdx
jge 0x140140d2e
lea rdi, [r14 + 0x101]
cmp rdi, rdx
jge 0x140140d2e
mov rbx, qword [rsp + 0x40]
movzx esi, byte [rbx + rax]
movzx ebx, byte [rbx + rdi]
cmp sil, bl
jne 0x140140caf
mov rax, qword [rsp + 0x90]
add rax, 0x102
cmp rax, rdx
jge 0x140140d2e
lea rdi, [r14 + 0x102]
cmp rdi, rdx
jge 0x140140d2e
mov rbx, qword [rsp + 0x40]
movzx esi, byte [rbx + rax]
movzx ebx, byte [rbx + rdi]
cmp sil, bl
jne 0x140140caf
mov rax, qword [rsp + 0x90]
add rax, 0x103
cmp rax, rdx
jge 0x140140d2e
add r14, 0x103
cmp r14, rdx
jge 0x140140d2e
mov rsi, rax
mov rax, qword [rsp + 0x40]
movzx esi, byte [rax + rsi]
movzx ebx, byte [rax + r14]
inc r11
add r10, 0x100
add qword [rsp + 0x48], 0x100
add qword [rsp + 0x38], 0x100
add qword [rsp + 0x58], 0x100
cmp sil, bl
je 0x140140abe
movzx edx, bl
movzx eax, sil
sub eax, edx
mov rdx, qword [rsp + 0x28]
test eax, eax
mov r14, qword [rsp + 0x40]
mov r11, qword [rsp + 0x60]
jg 0x140140cf8
jmp 0x140140d55
mov eax, r13d
sub eax, dword [rsp + 0x88]
jmp 0x140140ce7
sub eax, edx
mov rdx, qword [rsp + 0x28]
mov r9, r11
test eax, eax
mov r14, qword [rsp + 0x40]
mov r11, qword [rsp + 0x60]
jle 0x140140d55
add r8, 4
mov rax, qword [rsp + 0xd0]
nop word cs:[rax + rax]
mov dword [r8 - 8], r13d
cmp r8, r15
jae 0x140140d50
mov r13d, dword [r8]
add r8, 4
test r13d, r13d
js 0x140140d10
add r8, 0xfffffffffffffffc
jmp 0x140140a9d
mov eax, r13d
sub eax, dword [rsp + 0x88]
test eax, eax
mov r14, qword [rsp + 0x40]
mov r11, qword [rsp + 0x60]
jg 0x140140cf8
jmp 0x140140d55
mov eax, 1
test eax, eax
jne 0x140140a50
not dword [r8]
jmp 0x140140a50
mov r11, qword [rsp + 0x60]
mov dword [rbp - 4], r8d
lea rax, [r13 - 1]
cmp r13, 0xc1
jl 0x1401408ae
mov rdx, rax
mov r8d, dword [r11 + rax*4]
mov eax, dword [r11 + rax*4 + 4]
mov r13, rdx
lea rbp, [r11 + rdx*4]
add rbp, 4
movsxd r10, r8d
lea rdx, [r10 + 0xff]
cmp rdx, qword [rsp + 0x28]
jge 0x140140f50
lea r9, [rsi + r10]
movsxd rdi, eax
lea r11, [rsi + rdi]
xor esi, esi
lea rdx, [rdi + rsi]
add rdx, 0xff
cmp rdx, qword [rsp + 0x28]
jge 0x140140ef0
movzx ebx, byte [r9 + rsi - 4]
movzx edx, byte [r11 + rsi - 4]
cmp bl, dl
jne 0x140140f10
lea rdx, [r10 + rsi]
add rdx, 0x100
cmp rdx, qword [rsp + 0x28]
jge 0x140140ef0
lea rdx, [rdi + rsi]
add rdx, 0x100
cmp rdx, qword [rsp + 0x28]
jge 0x140140ef0
movzx ebx, byte [r9 + rsi - 3]
movzx edx, byte [r11 + rsi - 3]
cmp bl, dl
jne 0x140140f10
lea rdx, [r10 + rsi]
add rdx, 0x101
cmp rdx, qword [rsp + 0x28]
jge 0x140140ef0
lea rdx, [rdi + rsi]
add rdx, 0x101
cmp rdx, qword [rsp + 0x28]
jge 0x140140ef0
movzx ebx, byte [r9 + rsi - 2]
movzx edx, byte [r11 + rsi - 2]
cmp bl, dl
jne 0x140140f10
lea rdx, [r10 + rsi]
add rdx, 0x102
cmp rdx, qword [rsp + 0x28]
jge 0x140140ef0
lea rdx, [rdi + rsi]
add rdx, 0x102
cmp rdx, qword [rsp + 0x28]
jge 0x140140ef0
movzx ebx, byte [r9 + rsi - 1]
movzx edx, byte [r11 + rsi - 1]
cmp bl, dl
jne 0x140140f10
lea rdx, [r10 + rsi]
add rdx, 0x103
cmp rdx, qword [rsp + 0x28]
jge 0x140140ef0
lea rdx, [rdi + rsi]
add rdx, 0x103
cmp rdx, qword [rsp + 0x28]
jge 0x140140ef0
movzx ebx, byte [r9 + rsi]
movzx edx, byte [r11 + rsi]
cmp bl, dl
jne 0x140140f10
lea rdx, [r10 + rsi]
add rdx, 0x1ff
add rsi, 0x100
cmp rdx, qword [rsp + 0x28]
jl 0x140140dc3
mov ebx, eax
sub ebx, r8d
test ebx, ebx
mov rsi, qword [rsp + 0x118]
jg 0x140140f24
jmp 0x140140f83
movzx edx, dl
movzx ebx, bl
sub ebx, edx
test ebx, ebx
mov rsi, qword [rsp + 0x118]
jle 0x140140f83
add rbp, 4
nop dword [rax + rax]
mov dword [rbp - 8], eax
cmp rbp, r15
jae 0x140140d70
mov eax, dword [rbp]
add rbp, 4
test eax, eax
js 0x140140f30
add rbp, 0xfffffffffffffffc
jmp 0x140140dba
mov ebx, eax
sub ebx, r8d
jle 0x140140f90
mov rdx, rbp
add rdx, 4
nop
mov rbp, rdx
mov dword [rdx - 8], eax
cmp rdx, r15
jae 0x140140f90
mov eax, dword [rbp]
lea rdx, [rbp + 4]
test eax, eax
js 0x140140f60
add rdx, 0xfffffffffffffffc
mov ebx, eax
sub ebx, r8d
jg 0x140140f5a
jmp 0x140140f90
mov r11, qword [rsp + 0x60]
nop dword [rax + rax]
test ebx, ebx
jne 0x140140d75
not dword [rbp]
jmp 0x140140d75
add rax, 0xbe
cmp cl, byte [rsp + 0xb0]
jae 0x140141392
jmp 0x140140fe9
test esi, esi
je 0x140141368
mov rdx, qword [rsp + 0x28]
mov dword [rax - 4], ebx
mov r15, qword [rsp + 0xa0]
lea rax, [r15 - 1]
cmp r15, 0xc1
jl 0x1401409e3
mov ebx, dword [r11 + rax*4]
mov ebp, dword [r11 + rax*4 + 4]
mov qword [rsp + 0xa0], rax
lea rax, [r11 + rax*4]
add rax, 4
movsxd r10, ebx
lea r9, [r10 + 2]
cmp r9, rdx
jge 0x140141320
mov dword [rsp + 0x88], ebx
mov r8, qword [rsp + 0x110]
lea rdx, [r8 + r10]
lea rsi, [r10 + 3]
mov qword [rsp + 0xd0], r9
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x80], rsi
movsxd rbx, ebp
lea rdi, [r8 + rbx]
mov qword [rsp + 0x58], rdi
lea rdi, [rbx + 3]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x90], rdx
mov r8, r9
mov qword [rsp + 0x78], rbx
mov r15, r10
xor edx, edx
mov qword [rsp + 0x70], rdx
mov rdi, qword [rsp + 0x28]
lea rdx, [rbx + 2]
cmp rdx, rdi
jge 0x140141250
movzx r9d, byte [r14 + r8]
movzx edx, byte [r14 + rdx]
cmp r9b, dl
jne 0x1401412a6
lea rdx, [r10 + 3]
mov rsi, qword [rsp + 0x28]
cmp rdx, rsi
mov r14, qword [rsp + 0x40]
jge 0x140141250
lea rdi, [rbx + 3]
cmp rdi, rsi
jge 0x140141250
movzx r9d, byte [r14 + rdx]
movzx edx, byte [r14 + rdi]
cmp r9b, dl
jne 0x1401412a6
lea rdx, [r10 + 4]
mov rsi, qword [rsp + 0x28]
cmp rdx, rsi
mov r14, qword [rsp + 0x40]
jge 0x140141250
lea rdi, [rbx + 4]
cmp rdi, rsi
jge 0x140141250
movzx r9d, byte [r14 + rdx]
movzx edx, byte [r14 + rdi]
cmp r9b, dl
jne 0x1401412a6
lea rdx, [r10 + 5]
mov rsi, qword [rsp + 0x28]
cmp rdx, rsi
mov r14, qword [rsp + 0x40]
jge 0x140141250
lea rdi, [rbx + 5]
cmp rdi, rsi
jge 0x140141250
movzx r9d, byte [r14 + rdx]
movzx edx, byte [r14 + rdi]
cmp r9b, dl
jne 0x1401412a6
add r10, 6
mov rdx, qword [rsp + 0x28]
cmp r10, rdx
mov r14, qword [rsp + 0x40]
jge 0x140141250
add rbx, 6
cmp rbx, rdx
jge 0x140141250
movzx r9d, byte [r14 + r10]
movzx edx, byte [r14 + rbx]
mov rbx, qword [rsp + 0x48]
mov r14, qword [rsp + 0x90]
mov r10, qword [rsp + 0x38]
mov r8, qword [rsp + 0x58]
mov r11, qword [rsp + 0xb0]
cmp r9b, dl
jne 0x1401412a6
mov rdi, qword [rsp + 0x28]
nop word [rax + rax]
lea rdx, [rcx + rbx]
cmp rdx, rdi
jge 0x140141280
lea rdx, [rcx + r10]
cmp rdx, rdi
jge 0x140141280
movzx esi, byte [r14 + rcx]
movzx edx, byte [r8 + rcx]
cmp sil, dl
jne 0x1401412ad
dec r11
inc r8
inc r10
inc r14
inc rbx
cmp rcx, r11
jne 0x1401411a0
mov rbx, qword [rsp + 0x70]
inc rbx
mov rdx, rbx
mov qword [rsp + 0x70], rbx
shl rbx, 8
mov rdx, r15
lea r10, [rbx + r15]
lea r8, [rbx + r15]
add r8, 2
add rbx, qword [rsp + 0x78]
add qword [rsp + 0x58], 0x100
add qword [rsp + 0x38], 0x100
add qword [rsp + 0x90], 0x100
add qword [rsp + 0x48], 0x100
mov rdi, qword [rsp + 0x28]
cmp r8, rdi
mov r14, qword [rsp + 0x40]
jl 0x14014107a
nop word cs:[rax + rax]
mov esi, ebp
mov ebx, dword [rsp + 0x88]
sub esi, ebx
test esi, esi
mov r11, qword [rsp + 0x60]
mov r8, qword [rsp + 0xc8]
jg 0x1401412d0
jmp 0x140140fc0
mov esi, ebp
mov ebx, dword [rsp + 0x88]
sub esi, ebx
mov r14, qword [rsp + 0x40]
test esi, esi
mov r11, qword [rsp + 0x60]
mov r8, qword [rsp + 0xc8]
jg 0x1401412d0
jmp 0x140140fc0
movzx edx, dl
movzx esi, r9b
sub esi, edx
mov r14, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x88]
test esi, esi
mov r11, qword [rsp + 0x60]
mov r8, qword [rsp + 0xc8]
jle 0x140140fc0
add rax, 4
mov r10, r15
mov r9, qword [rsp + 0xd0]
nop
mov dword [rax - 8], ebp
cmp rax, r13
jae 0x140140fc8
mov ebp, dword [rax]
add rax, 4
test ebp, ebp
js 0x1401412e0
add rax, 0xfffffffffffffffc
mov r8, qword [rsp + 0x110]
mov rdx, qword [rsp + 0x98]
mov rsi, qword [rsp + 0x80]
jmp 0x140141041
mov esi, ebp
sub esi, ebx
jle 0x140140fc0
mov rdx, rax
add rdx, 4
nop word cs:[rax + rax]
mov rax, rdx
mov dword [rdx - 8], ebp
cmp rdx, r13
jae 0x140140fc0
mov ebp, dword [rax]
lea rdx, [rax + 4]
test ebp, ebp
js 0x140141340
add rdx, 0xfffffffffffffffc
mov esi, ebp
sub esi, ebx
jg 0x14014132d
jmp 0x140140fc0
not dword [rax]
jmp 0x140140fc8
mov rcx, rdi
mov dword [rcx - 4], r8d
mov rcx, rax
dec rax
cmp rcx, 0xc0
mov r8, qword [rsp + 0xc8]
jle 0x1401409e3
mov r8d, dword [r11 + rax*4]
mov ebp, dword [r11 + rax*4 + 4]
mov r15, rax
lea rdi, [r11 + rax*4]
add rdi, 4
movsxd r10, r8d
lea rax, [r10 + 2]
cmp rax, rdx
jge 0x140141530
mov rcx, qword [rsp + 0x68]
lea r9, [rcx + r10]
movsxd rax, ebp
lea rbx, [rcx + rax]
xor esi, esi
lea rcx, [rax + rsi]
add rcx, 2
cmp rcx, rdx
jge 0x1401414e0
movzx ecx, byte [r9 + rsi - 4]
movzx edx, byte [rbx + rsi - 4]
cmp cl, dl
jne 0x1401414f0
lea rcx, [r10 + rsi]
add rcx, 3
mov rdx, qword [rsp + 0x28]
cmp rcx, rdx
jge 0x1401414e0
lea rcx, [rax + rsi]
add rcx, 3
cmp rcx, rdx
jge 0x1401414e0
movzx ecx, byte [r9 + rsi - 3]
movzx edx, byte [rbx + rsi - 3]
cmp cl, dl
jne 0x1401414f0
lea rcx, [r10 + rsi]
add rcx, 4
mov rdx, qword [rsp + 0x28]
cmp rcx, rdx
jge 0x1401414e0
lea rcx, [rax + rsi]
add rcx, 4
cmp rcx, rdx
jge 0x1401414e0
movzx ecx, byte [r9 + rsi - 2]
movzx edx, byte [rbx + rsi - 2]
cmp cl, dl
jne 0x1401414f0
lea rcx, [r10 + rsi]
add rcx, 5
mov rdx, qword [rsp + 0x28]
cmp rcx, rdx
jge 0x1401414e0
lea rcx, [rax + rsi]
add rcx, 5
cmp rcx, rdx
jge 0x1401414e0
movzx ecx, byte [r9 + rsi - 1]
movzx edx, byte [rbx + rsi - 1]
cmp cl, dl
jne 0x1401414f0
lea rcx, [r10 + rsi]
add rcx, 6
mov rdx, qword [rsp + 0x28]
cmp rcx, rdx
jge 0x1401414e0
lea rcx, [rax + rsi]
add rcx, 6
cmp rcx, rdx
jge 0x1401414e0
movzx ecx, byte [r9 + rsi]
movzx edx, byte [rbx + rsi]
cmp cl, dl
jne 0x1401414f0
lea rcx, [r10 + rsi]
add rcx, 0x102
add rsi, 0x100
mov rdx, qword [rsp + 0x28]
cmp rcx, rdx
jl 0x1401413c8
nop word [rax + rax]
mov eax, ebp
sub eax, r8d
test eax, eax
jg 0x140141501
jmp 0x14014156e
movzx edx, dl
movzx eax, cl
sub eax, edx
mov rdx, qword [rsp + 0x28]
test eax, eax
jle 0x14014156e
add rdi, 4
mov rcx, qword [rsp + 0x68]
mov rax, r15
nop dword [rax]
mov dword [rdi - 8], ebp
cmp rdi, r13
jae 0x140141370
mov ebp, dword [rdi]
add rdi, 4
test ebp, ebp
js 0x140141510
add rdi, 0xfffffffffffffffc
jmp 0x1401413bf
mov eax, ebp
mov rcx, rdi
sub eax, r8d
jle 0x140141560
add rdi, 4
nop
mov rcx, rdi
mov dword [rdi - 8], ebp
cmp rdi, r13
jae 0x140141560
mov ebp, dword [rcx]
lea rdi, [rcx + 4]
test ebp, ebp
js 0x140141540
add rdi, 0xfffffffffffffffc
mov eax, ebp
sub eax, r8d
jg 0x14014153a
test eax, eax
jne 0x140141566
not dword [rcx]
mov rax, r15
jmp 0x140141373
mov rcx, rdi
test eax, eax
jne 0x140141566
jmp 0x140141564
movsxd rax, dword [rsp + 0xb8]
mov qword [rsp + 0x48], rax
mov rbx, qword [rsp + 0x108]
test ebx, ebx
jle 0x140142d06
mov rax, qword [rsp + 0x48]
lea rcx, [r12 + rax*4]
mov rax, qword [rsp + 0xe8]
lea rax, [rax*4]
sub rcx, rax
cmp ebx, 1
mov qword [rsp + 0x28], rcx
je 0x1401415ee
lea eax, [rbx - 2]
nop dword [rax]
movsxd rcx, dword [rcx + rax*4]
movzx ecx, word [r14 + rcx]
rol cx, 8
movzx ecx, cx
movsxd rdx, dword [r13 + rcx*4]
lea rbp, [rdx - 1]
mov dword [r13 + rcx*4], ebp
mov dword [r12 + rdx*4 - 4], eax
mov rcx, qword [rsp + 0x28]
add rax, 0xffffffffffffffff
jb 0x1401415c0
mov rbp, r13
lea r13d, [rbx - 1]
movsxd rax, dword [rcx + r13*4]
movzx eax, word [r14 + rax]
rol ax, 8
movzx eax, ax
movsxd rcx, dword [rbp + rax*4]
lea rdx, [rcx - 1]
mov dword [rbp + rax*4], edx
mov dword [r12 + rcx*4 - 4], r13d
mov rdx, qword [rsp + 0x30]
test edx, edx
jle 0x14014298e
movsxd rax, dword [rsp + 0x1c0]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x40]
lea rsi, [rax + 2]
mov rcx, qword [rsp + 0x48]
add rax, rcx
add rax, 2
add rax, 0xfffffffffffffffe
mov qword [rsp + 0xd0], rax
mov eax, edx
mov qword [rsp + 0x88], rax
movsxd rax, r13d
mov qword [rsp + 0xa0], rax
xor eax, eax
mov qword [rsp + 0x58], rsi
jmp 0x1401416a7
mov dword [r15 - 4], r13d
mov rax, qword [rsp + 0x90]
inc rax
cmp rax, qword [rsp + 0x88]
mov r11, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x58]
je 0x14014298e
movzx r14d, word [r11 + rax*4 + 0x700]
lea r15, [r12 + r14*4]
mov r8d, dword [r12 + r14*4]
movzx r11d, word [r11 + rax*4 + 0x702]
lea rcx, [r12 + r11*4]
cmp r8d, r13d
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x90], rax
jne 0x1401418d0
add r15, 4
lea r11, [rcx - 8]
cmp r11, r15
mov rdx, qword [rsp + 0x28]
jae 0x140141720
cmp r15, rcx
jae 0x140141680
mov rax, qword [rsp + 0xa0]
movsxd rax, dword [rdx + rax*4]
lea r8, [rsi + rax]
mov rdi, qword [rsp + 0xd0]
jmp 0x140141a39
not dword [rbp]
mov dword [rbp - 4], r10d
add r11, 0xfffffffffffffffc
cmp r11, r15
jb 0x1401416ed
mov r14, r15
movsxd r10, dword [r11]
lea rbp, [r11 + 4]
mov eax, dword [r11 + 4]
movsxd r15, dword [rdx + r10*4]
movsxd r8, dword [rdx + r10*4 + 4]
lea r9, [rsi + r15]
add r8, rsi
cmp r9, r8
jae 0x140141860
movsxd rcx, eax
movsxd rdi, dword [rdx + rcx*4]
movsxd rdx, dword [rdx + rcx*4 + 4]
lea rcx, [rsi + rdi]
add rdx, rsi
mov rsi, r9
cmp rcx, rdx
jae 0x1401417bf
mov rcx, qword [rsp + 0x40]
nop word [rax + rax]
mov rsi, qword [rcx + r15 + 2]
cmp rsi, qword [rcx + rdi + 2]
jne 0x1401417b0
lea rsi, [rcx + r15]
add rsi, 0xa
lea rbx, [rcx + 8]
cmp rsi, r8
jae 0x14014179d
lea rsi, [rcx + rdi]
add rsi, 0xa
mov rcx, rbx
cmp rsi, rdx
jb 0x140141770
lea rsi, [rbx + r15]
add rsi, 2
lea rcx, [rbx + rdi]
add rcx, 2
jmp 0x1401417bf
lea rsi, [rcx + r15]
add rsi, 2
add rcx, rdi
add rcx, 2
cmp rdx, rcx
seta bl
cmp r8, rsi
jbe 0x140141880
inc rcx
nop word cs:[rax + rax]
test bl, 1
je 0x140141810
movzx edi, byte [rsi]
movzx ebx, byte [rcx - 1]
cmp dil, bl
jne 0x140141820
inc rsi
cmp rcx, rdx
setb bl
inc rcx
cmp rsi, r8
jb 0x1401417e0
jmp 0x140141880
mov edi, 1
jmp 0x140141828
sub edi, ebx
jle 0x1401418c0
add rbp, 4
mov rdx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x30]
nop dword [rax + rax]
mov dword [rbp - 8], eax
cmp rbp, rcx
jae 0x1401418b0
mov eax, dword [rbp]
add rbp, 4
test eax, eax
js 0x140141840
add rbp, 0xfffffffffffffffc
jmp 0x140141747
cdqe
movsxd rcx, dword [rdx + rax*4]
movsxd rax, dword [rdx + rax*4 + 4]
add rcx, rsi
add rax, rsi
cmp rax, rcx
seta bl
jmp 0x140141885
mov rdx, qword [rsp + 0x28]
movzx edi, bl
neg edi
mov rsi, qword [rsp + 0x58]
mov r15, r14
mov rcx, qword [rsp + 0x30]
test edi, edi
jne 0x140141713
jmp 0x140141710
mov r15, r14
test edi, edi
jne 0x140141713
jmp 0x140141710
mov rdx, qword [rsp + 0x28]
jmp 0x14014188a
movsxd r9, r8d
mov rdx, qword [rsp + 0x28]
mov r10d, dword [rdx + r9*4]
cmp r10d, dword [rsp + 0x1b8]
mov qword [rsp + 0x38], r15
jge 0x140141960
mov ebp, r10d
sar ebp, 8
movsxd rbp, ebp
mov rax, qword [rsp + 0x1b0]
movzx r15d, byte [rax + rbp]
movsxd rbp, dword [rcx - 4]
mov ebp, dword [rdx + rbp*4]
sar ebp, 8
movsxd rbp, ebp
cmp r15b, byte [rax + rbp]
jne 0x140141997
mov rax, qword [rsp + 0x30]
lea rdi, [rax - 4]
mov edx, r10d
mov rsi, qword [rsp + 0x38]
nop dword [rax]
cmp rsi, rdi
jae 0x140141e80
movsxd rbx, dword [rsi + 4]
add rsi, 4
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + rbx*4]
mov ebp, eax
sub ebp, edx
mov edx, eax
cmp ebp, 0x100
je 0x140141930
jmp 0x140141997
lea rbx, [rcx - 4]
mov ebp, r10d
mov rdi, r15
nop word [rax + rax]
cmp rdi, rbx
jae 0x140141afb
movsxd rax, dword [rdi + 4]
add rdi, 4
mov rdx, qword [rsp + 0x28]
mov eax, dword [rdx + rax*4]
mov edx, eax
sub edx, ebp
mov ebp, eax
cmp edx, 0x100
je 0x140141970
movsxd rcx, r10d
mov rax, qword [rsp + 0x30]
mov rbp, rax
mov rdx, qword [rsp + 0x38]
sub rbp, rdx
cmp rbp, 0xc
je 0x140141bd6
cmp rbp, 8
jne 0x140141ce8
movsxd rdi, dword [rdx + 4]
mov rax, qword [rsp + 0x28]
movsxd rdx, dword [rax + rdi*4]
mov ebx, dword [rax + r9*4 + 4]
sub ebx, r10d
mov ebp, dword [rax + rdi*4 + 4]
sub ebp, edx
cmp ebx, ebp
mov eax, ebp
cmovl eax, ebx
mov esi, r8d
movsxd r8, eax
mov rax, qword [rsp + 0x58]
add rdx, rax
add rcx, rax
call fcn.14038cb40
test eax, eax
js 0x140141684
mov ecx, esi
jne 0x140141a0a
cmp ebx, ebp
jle 0x140142129
mov rax, qword [rsp + 0x38]
mov dword [rax], edi
mov dword [rax + 4], ecx
jmp 0x140141684
jbe 0x140141680
mov dword [r15 - 4], r9d
add r15, 4
cmp r15, qword [rsp + 0x30]
jae 0x140141680
mov r9d, dword [r15]
test r9d, r9d
js 0x140141a26
mov rcx, qword [rsp + 0x28]
movsxd rsi, dword [rcx + r9*4]
movsxd rbp, dword [rcx + r9*4 + 4]
mov rcx, qword [rsp + 0x58]
lea rbx, [rcx + rsi]
add rbp, rcx
mov rcx, r8
cmp r8, rdi
jae 0x140141abe
cmp rbx, rbp
jae 0x140141abe
mov rbx, qword [rsp + 0x40]
nop dword [rax]
mov rcx, qword [rbx + rax + 2]
cmp rcx, qword [rbx + rsi + 2]
jne 0x140141aaf
lea rcx, [rbx + rax]
add rcx, 0xa
lea rdx, [rbx + 8]
cmp rcx, rdi
jae 0x140141a9d
lea rcx, [rbx + rsi]
add rcx, 0xa
mov rbx, rdx
cmp rcx, rbp
jb 0x140141a70
lea rcx, [rdx + rax]
add rcx, 2
lea rbx, [rdx + rsi]
add rbx, 2
jmp 0x140141abe
lea rcx, [rbx + rax]
add rcx, 2
add rbx, rsi
add rbx, 2
cmp rdi, rcx
jbe 0x140141680
cmp rbp, rbx
seta dl
inc rbx
test dl, 1
je 0x140141a26
movzx edx, byte [rbx - 1]
cmp byte [rcx], dl
jne 0x140141a20
inc rcx
cmp rbx, rbp
setb dl
inc rbx
cmp rcx, rdi
jb 0x140141ad0
jmp 0x140141680
mov r8, qword [rsp + 0x30]
sub r8, qword [rsp + 0x38]
cmp r8, 4
je 0x140141684
mov rax, r8
sar rax, 2
mov edx, r10d
sar edx, 8
movsxd rdx, edx
mov rbp, qword [rsp + 0x1b0]
movzx edx, byte [rbp + rdx]
mov rbp, qword [rsp + 0x1a8]
movzx esi, byte [rbp + rdx*2]
movzx edi, r10b
mov ebx, esi
sub ebx, edi
movzx r9d, byte [rbp + rdx*2 + 1]
test esi, esi
je 0x140141f38
cmp ebx, 2
jl 0x140141f38
cmp edi, esi
jae 0x140141f38
cmp rax, qword [rsp + 0xb0]
jl 0x140141f38
cmp r14w, r11w
mov rsi, qword [rsp + 0x60]
mov r9, qword [rsp + 0x28]
mov r15, qword [rsp + 0x38]
mov r10, qword [rsp + 0x30]
jae 0x140141fce
mov rax, r15
nop
movsxd rcx, dword [rax]
mov edx, dword [r9 + rcx*4]
sar edx, 8
movsxd rdx, edx
movsx edx, byte [rsi + rdx]
movsxd rdx, edx
lea ebp, [rdx - 1]
mov rbx, 0xfffffffffffffffe
sub rbx, rdx
xor edi, edi
test edx, edx
setle dil
cmovle rbp, rbx
neg edi
xor edi, ecx
mov dword [rsi + rbp*4 + 0x300], edi
add rax, 4
cmp rax, r10
jb 0x140141b90
jmp 0x140141fce
movsxd rbp, dword [rdx + 8]
mov rbx, qword [rsp + 0x28]
movsxd rsi, dword [rbx + rbp*4]
mov qword [rsp + 0x70], rsi
mov eax, dword [rbx + r9*4 + 4]
sub eax, r10d
mov qword [rsp + 0x68], rbp
mov edi, dword [rbx + rbp*4 + 4]
sub edi, esi
xor r15d, r15d
cmp eax, edi
setl r15b
neg r15d
cmp eax, edi
movsxd rdx, dword [rdx + 4]
movsxd r9, dword [rbx + rdx*4]
mov qword [rsp + 0x50], rdx
mov ebp, dword [rbx + rdx*4 + 4]
mov ebx, edi
cmovl ebx, eax
mov edx, 1
cmovg r15d, edx
sub ebp, r9d
xor r14d, r14d
cmp eax, ebp
setl r14b
neg r14d
cmp eax, ebp
cmovge eax, ebp
mov dword [rsp + 0x30], r8d
movsxd r8, eax
movsxd rax, ebx
mov qword [rsp + 0x98], rax
cmovg r14d, edx
mov rsi, qword [rsp + 0x58]
mov rdx, r9
add rdx, rsi
mov qword [rsp + 0x80], rdx
add rcx, rsi
mov rbx, rcx
call fcn.14038cb40
mov dword [rsp + 0x78], eax
mov rdx, qword [rsp + 0x70]
add rdx, rsi
mov rcx, rbx
mov rsi, rdx
mov r8, qword [rsp + 0x98]
call fcn.14038cb40
mov ebx, eax
cmp ebp, edi
mov eax, edi
cmovl eax, ebp
movsxd r8, eax
mov rcx, qword [rsp + 0x80]
mov rdx, rsi
call fcn.14038cb40
mov r9d, dword [rsp + 0x30]
mov edx, dword [rsp + 0x78]
test edx, edx
cmovne r14d, edx
test ebx, ebx
cmovne r15d, ebx
test eax, eax
jne 0x140141fe7
xor eax, eax
cmp ebp, edi
setl dl
jle 0x140141fe3
mov ebp, r14d
shr ebp, 0x1f
mov eax, 1
xor edx, edx
jmp 0x140141fff
lea r11, [rax - 8]
cmp r11, rdx
jae 0x140141d13
jmp 0x140141684
mov dword [rbp - 4], r10d
add r11, 0xfffffffffffffffc
cmp r11, qword [rsp + 0x38]
jb 0x140141684
movsxd r10, dword [r11]
lea rbp, [r11 + 4]
mov edx, dword [r11 + 4]
mov rsi, qword [rsp + 0x28]
movsxd r8, dword [rsi + r10*4]
movsxd r9, dword [rsi + r10*4 + 4]
mov rdi, qword [rsp + 0x58]
lea r14, [rdi + r8]
add r9, rdi
cmp r14, r9
jae 0x140141e50
movsxd rax, edx
mov rcx, qword [rsp + 0x28]
movsxd rbx, dword [rcx + rax*4]
movsxd rax, dword [rcx + rax*4 + 4]
mov rsi, qword [rsp + 0x58]
lea rcx, [rsi + rbx]
add rax, rsi
mov rdi, r14
cmp rcx, rax
jae 0x140141dbf
mov rcx, qword [rsp + 0x40]
nop dword [rax + rax]
mov rsi, qword [rcx + r8 + 2]
cmp rsi, qword [rcx + rbx + 2]
jne 0x140141db0
lea rdi, [rcx + r8]
add rdi, 0xa
lea rsi, [rcx + 8]
cmp rdi, r9
jae 0x140141d9d
lea rdi, [rcx + rbx]
add rdi, 0xa
mov rcx, rsi
cmp rdi, rax
jb 0x140141d70
lea rdi, [rsi + r8]
add rdi, 2
lea rcx, [rsi + rbx]
add rcx, 2
jmp 0x140141dbf
lea rdi, [rcx + r8]
add rdi, 2
add rcx, rbx
add rcx, 2
cmp rax, rcx
seta bl
cmp r9, rdi
jbe 0x140141e68
inc rcx
nop word cs:[rax + rax]
test bl, 1
je 0x140141e10
movzx r15d, byte [rdi]
movzx esi, byte [rcx - 1]
cmp r15b, sil
jne 0x140141e20
inc rdi
cmp rcx, rax
setb bl
inc rcx
cmp rdi, r9
jb 0x140141de0
jmp 0x140141e68
mov r15d, 1
jmp 0x140141e25
sub r15d, esi
jle 0x140141e6f
add rbp, 4
mov rax, qword [rsp + 0x30]
nop
mov dword [rbp - 8], edx
cmp rbp, rax
jae 0x140141e6f
mov edx, dword [rbp]
add rbp, 4
test edx, edx
js 0x140141e30
add rbp, 0xfffffffffffffffc
jmp 0x140141d41
movsxd rax, edx
movsxd rcx, dword [rsi + rax*4]
movsxd rax, dword [rsi + rax*4 + 4]
add rcx, rdi
add rax, rdi
cmp rax, rcx
seta bl
movzx r15d, bl
neg r15d
test r15d, r15d
jne 0x140141d00
not dword [rbp]
jmp 0x140141d00
mov r8, qword [rsp + 0x30]
sub r8, qword [rsp + 0x38]
cmp r8, 4
je 0x140141684
mov rax, qword [rsp + 0x1a8]
movzx r9d, byte [rax + r15*2]
movzx esi, r10b
mov edi, r9d
sub edi, esi
movzx ebx, byte [rax + r15*2 + 1]
test r9d, r9d
je 0x140142045
cmp edi, 2
jl 0x140142045
cmp esi, r9d
jae 0x140142045
cmp r14w, r11w
mov r10, qword [rsp + 0x60]
mov r9, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
mov r11, qword [rsp + 0x30]
jae 0x140141fd1
mov rax, rcx
nop dword [rax]
movsxd rdx, dword [rax]
mov ebp, dword [r9 + rdx*4]
sar ebp, 8
movsxd rbp, ebp
movsx ebp, byte [r10 + rbp]
movsxd rbp, ebp
lea ebx, [rbp - 1]
mov rdi, 0xfffffffffffffffe
sub rdi, rbp
xor esi, esi
test ebp, ebp
setle sil
cmovle rbx, rdi
neg esi
xor esi, edx
mov dword [r10 + rbx*4 + 0x300], esi
add rax, 4
cmp rax, r11
jb 0x140141ef0
jmp 0x140141fd1
cmp edi, 0xfc
mov r15, qword [rsp + 0x38]
ja 0x1401420d3
cmp r9b, r10b
jae 0x1401420d3
cmp rax, qword [rsp + 0xb0]
jl 0x1401420d3
cmp r14w, r11w
mov r9, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
jae 0x140141fce
mov rax, r15
nop word cs:[rax + rax]
movsxd rcx, dword [rax]
mov edx, dword [r9 + rcx*4]
sar edx, 8
movsxd rdx, edx
mov rbp, qword [rsp + 0xc8]
movsx edx, byte [rbp + rdx]
movsxd rdx, edx
lea ebp, [rdx - 1]
mov rbx, 0xfffffffffffffffe
sub rbx, rdx
xor edi, edi
test edx, edx
setle dil
cmovle rbp, rbx
neg edi
xor edi, ecx
mov rcx, qword [rsp + 0xa8]
mov dword [rcx + rbp*4], edi
add rax, 4
cmp rax, rsi
jb 0x140141f80
mov rcx, r15
mov rdx, qword [rsp + 0xa8]
call fcn.14038cc40
jmp 0x140141684
mov al, dl
neg eax
mov ebp, r14d
shr ebp, 0x1f
mov edx, eax
shr edx, 0x1f
test r14d, r14d
jns 0x140141fff
test eax, eax
js 0x140141684
test r14d, r14d
jle 0x14014201e
test r15d, r15d
jns 0x14014201e
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
mov dword [rax], ecx
mov dword [rax + 4], r9d
jmp 0x140141684
test r14d, r14d
mov r8, qword [rsp + 0x38]
jle 0x140142109
test eax, eax
jle 0x140142109
mov rax, qword [rsp + 0x68]
mov dword [r8], eax
mov dword [r8 + 8], r9d
jmp 0x140141684
cmp esi, 0xfd
mov rcx, qword [rsp + 0x38]
ja 0x14014213e
cmp bl, r10b
jae 0x14014213e
cmp r14w, r11w
mov r9, qword [rsp + 0x28]
mov r11, qword [rsp + 0x30]
jae 0x140141fd1
mov rdx, rcx
nop word cs:[rax + rax]
movsxd r10, dword [rdx]
mov ebp, dword [r9 + r10*4]
sar ebp, 8
movsxd rbp, ebp
mov rax, qword [rsp + 0xc8]
movsx ebp, byte [rax + rbp]
movsxd rbp, ebp
lea ebx, [rbp - 1]
mov rdi, 0xfffffffffffffffe
sub rdi, rbp
xor esi, esi
test ebp, ebp
setle sil
cmovle rbx, rdi
neg esi
xor esi, r10d
mov rax, qword [rsp + 0xa8]
mov dword [rax + rbx*4], esi
add rdx, 4
cmp rdx, r11
jb 0x140142080
jmp 0x140141fd1
mov eax, edi
not al
movzx edx, al
lea ebp, [rdx + 5]
cmp edi, esi
jae 0x140142160
sub r9d, esi
mov eax, ebp
lea ebp, [r9 + rbx]
inc ebp
mov edi, edx
mov edx, ebx
mov rcx, qword [rsp + 0x30]
lea r15, [rcx - 8]
cmp r15, qword [rsp + 0x38]
jb 0x140141684
jmp 0x1401421ee
test eax, eax
jle 0x140142186
test r15d, r15d
jns 0x140142186
mov rax, qword [rsp + 0x68]
mov dword [r8 + 4], eax
mov rax, qword [rsp + 0x50]
mov dword [r8 + 8], eax
jmp 0x140141684
jl 0x140141684
not edi
mov rax, qword [rsp + 0x38]
mov dword [rax + 4], edi
jmp 0x140141684
mov eax, esi
not al
movzx edx, al
lea eax, [rdx + 5]
cmp esi, r9d
jae 0x1401421b1
sub ebx, r9d
mov esi, eax
lea eax, [rbx + rdi]
inc eax
mov ebp, edx
mov edx, edi
jmp 0x140142547
cmp edi, r9d
jbe 0x1401421c9
lea edi, [rsi + rdx]
inc edi
lea eax, [r9 + rdx]
inc eax
mov rcx, qword [rsp + 0x30]
lea r15, [rcx - 8]
cmp r15, qword [rsp + 0x38]
jb 0x140141684
jmp 0x1401421ee
test r15d, r15d
setg bl
and dl, bl
cmp dl, 1
jne 0x140142516
mov rax, qword [rsp + 0x50]
mov dword [r8], eax
mov rax, qword [rsp + 0x68]
mov dword [r8 + 4], eax
mov dword [r8 + 8], r9d
jmp 0x140141684
cmp esi, ebx
jbe 0x140142539
lea ebp, [r9 + rdx]
inc ebp
lea esi, [rbx + rdx]
inc esi
jmp 0x140142547
sub r9d, edi
inc r9d
mov eax, ebp
mov ebp, r9d
mov edi, edx
mov dx, 2
mov rcx, qword [rsp + 0x30]
lea r15, [rcx - 8]
cmp r15, qword [rsp + 0x38]
jb 0x140141684
cmp di, ax
setb bl
movzx esi, di
movzx eax, ax
mov qword [rsp + 0x80], rax
cmp dx, bp
mov qword [rsp + 0x78], rsi
jae 0x1401423c4
movzx eax, dx
movzx ecx, bp
test bl, 1
mov qword [rsp + 0x98], rax
je 0x140142704
sub rcx, rax
mov qword [rsp + 0x70], rcx
sub qword [rsp + 0x80], rsi
jmp 0x140142257
mov rax, qword [rsp + 0x50]
mov dword [rbp - 4], eax
add r15, 0xfffffffffffffffc
cmp r15, qword [rsp + 0x38]
jb 0x140141684
movsxd rax, dword [r15]
lea rbp, [r15 + 4]
mov rbx, qword [rsp + 0x28]
mov qword [rsp + 0x50], rax
movsxd r9, dword [rbx + rax*4]
mov edx, dword [r15 + 4]
mov rdi, qword [rsp + 0x98]
mov rax, rsi
lea r14, [rdi + r9]
mov r11, r9
add r11, rsi
mov rcx, qword [rsp + 0x48]
movsxd rax, edx
movsxd r10, dword [rbx + rax*4]
add rdi, r10
mov rax, r14
mov rbx, qword [rsp + 0x70]
nop dword [rax]
cmp rax, rcx
jg 0x140142310
cmp rdi, rcx
jg 0x140142310
mov rcx, qword [rsp + 0x40]
movzx r8d, byte [rcx + rax]
movzx esi, byte [rcx + rdi]
cmp r8b, sil
jne 0x140142320
inc rdi
inc rax
dec rbx
mov rcx, qword [rsp + 0x48]
jne 0x1401422a0
mov rax, qword [rsp + 0x78]
add rax, r10
mov rdi, r11
mov r8, qword [rsp + 0x80]
cmp rdi, rcx
jg 0x140142310
cmp rax, rcx
jg 0x140142310
mov rcx, qword [rsp + 0x40]
movzx ebx, byte [rcx + rdi]
movzx ecx, byte [rcx + rax]
cmp bl, cl
jne 0x140142369
inc rax
inc rdi
dec r8
mov rcx, qword [rsp + 0x48]
jne 0x1401422e0
jmp 0x14014239e
sub r10d, r9d
test r10d, r10d
mov rax, qword [rsp + 0x30]
jg 0x140142335
jmp 0x140142386
sub r8d, esi
mov r10d, r8d
mov rcx, qword [rsp + 0x48]
test r10d, r10d
mov rax, qword [rsp + 0x30]
jle 0x140142386
add rbp, 4
nop dword [rax]
mov dword [rbp - 8], edx
cmp rbp, rax
jae 0x140142380
mov edx, dword [rbp]
add rbp, 4
test edx, edx
js 0x140142340
add rbp, 0xfffffffffffffffc
mov rbx, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x98]
jmp 0x14014228a
sub ebx, ecx
mov r10d, ebx
mov rcx, qword [rsp + 0x48]
test r10d, r10d
mov rax, qword [rsp + 0x30]
jg 0x140142335
jmp 0x140142386
mov r10d, 1
test r10d, r10d
mov rsi, qword [rsp + 0x78]
jne 0x140142240
mov edx, dword [rbp]
mov rax, qword [rsp + 0x50]
jmp 0x1401423a8
mov rax, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x78]
not edx
mov dword [rbp], edx
mov dword [rbp - 4], eax
add r15, 0xfffffffffffffffc
cmp r15, qword [rsp + 0x38]
jae 0x140142257
jmp 0x140141684
test bl, 1
je 0x1401423e0
sub qword [rsp + 0x80], rsi
jmp 0x14014241c
not dword [r15 + 4]
add r15, 0xfffffffffffffffc
cmp r15, qword [rsp + 0x38]
jae 0x1401423e0
jmp 0x140141684
mov rsi, qword [rsp + 0x78]
not ebp
mov dword [rdx], ebp
mov dword [rdx - 4], r9d
add r15, 0xfffffffffffffffc
cmp r15, qword [rsp + 0x38]
jb 0x140141684
movsxd r9, dword [r15]
lea rdx, [r15 + 4]
mov rbx, qword [rsp + 0x28]
movsxd r8, dword [rbx + r9*4]
mov ebp, dword [r15 + 4]
mov r10, r8
add r10, rsi
mov rcx, qword [rsp + 0x48]
movsxd rax, ebp
movsxd r11, dword [rbx + rax*4]
mov rax, r11
add rax, rsi
mov rbx, r10
mov rsi, qword [rsp + 0x80]
nop word cs:[rax + rax]
cmp rbx, rcx
jg 0x1401424a0
cmp rax, rcx
jg 0x1401424a0
mov rdi, qword [rsp + 0x40]
movzx ecx, byte [rdi + rbx]
movzx edi, byte [rdi + rax]
cmp cl, dil
jne 0x1401424c0
inc rax
inc rbx
dec rsi
mov rcx, qword [rsp + 0x48]
jne 0x140142460
jmp 0x140142400
sub r11d, r8d
test r11d, r11d
mov rax, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x78]
jg 0x1401424d9
jmp 0x140142506
sub ecx, edi
mov r11d, ecx
mov rcx, qword [rsp + 0x48]
test r11d, r11d
mov rax, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x78]
jle 0x140142506
add rdx, 4
nop dword [rax]
mov dword [rdx - 8], ebp
cmp rdx, rax
jae 0x140142500
mov ebp, dword [rdx]
add rdx, 4
test ebp, ebp
js 0x1401424e0
add rdx, 0xfffffffffffffffc
mov rbx, qword [rsp + 0x28]
jmp 0x14014243b
mov r11d, 1
test r11d, r11d
jne 0x140142409
mov ebp, dword [rdx]
jmp 0x140142405
test r15d, r15d
setg dl
and dl, bpl
cmp dl, 1
jne 0x1401428c4
mov dword [r8 + 4], r9d
mov rax, qword [rsp + 0x68]
mov dword [r8], eax
jmp 0x14014211b
sub ebx, esi
inc ebx
mov esi, eax
mov eax, ebx
mov ebp, edx
mov dx, 2
mov rbx, qword [rsp + 0x30]
lea r10, [rbx - 8]
cmp r10, rcx
jb 0x140141684
cmp bp, si
setb bl
movzx r14d, bp
movzx r15d, si
cmp dx, ax
jae 0x140142806
movzx ecx, dx
mov qword [rsp + 0x70], rcx
movzx r11d, ax
test bl, 1
jne 0x1401425a7
mov r8, qword [rsp + 0x38]
jmp 0x140142684
not esi
mov dword [rbx], esi
mov dword [rbx - 4], r8d
add r10, 0xfffffffffffffffc
cmp r10, qword [rsp + 0x38]
jb 0x140141684
movsxd r8, dword [r10]
lea rbx, [r10 + 4]
mov rbp, qword [rsp + 0x28]
movsxd rax, dword [rbp + r8*4]
mov esi, dword [r10 + 4]
mov rdx, qword [rsp + 0x40]
add rax, rdx
movsxd rcx, esi
movsxd rbp, dword [rbp + rcx*4]
add rbp, rdx
mov r9, qword [rsp + 0x70]
nop word cs:[rax + rax]
movzx edx, byte [rax + r9]
movzx ecx, byte [rbp + r9]
cmp dl, cl
jne 0x140142620
inc r9
cmp r11, r9
jne 0x1401425e0
mov rdi, r14
nop word [rax + rax]
movzx edx, byte [rax + rdi]
movzx ecx, byte [rbp + rdi]
cmp dl, cl
jne 0x140142620
inc rdi
cmp r15, rdi
jne 0x140142600
jmp 0x140142590
cmp dl, cl
jbe 0x140142660
add rbx, 4
nop dword [rax + rax]
mov dword [rbx - 8], esi
cmp rbx, qword [rsp + 0x30]
jae 0x140142660
mov esi, dword [rbx]
add rbx, 4
test esi, esi
js 0x140142630
add rbx, 0xfffffffffffffffc
mov rdx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x28]
jmp 0x1401425c4
cmp dl, cl
jne 0x140142594
mov esi, dword [rbx]
jmp 0x140142590
not ebx
mov dword [rdx], ebx
mov dword [rdx - 4], esi
add r10, 0xfffffffffffffffc
cmp r10, r8
jb 0x140141684
movsxd rsi, dword [r10]
lea rdx, [r10 + 4]
mov rdi, qword [rsp + 0x28]
movsxd rbp, dword [rdi + rsi*4]
mov ebx, dword [r10 + 4]
mov rax, qword [rsp + 0x40]
add rbp, rax
movsxd rcx, ebx
movsxd rcx, dword [rdi + rcx*4]
add rcx, rax
mov rdi, qword [rsp + 0x70]
nop
movzx eax, byte [rcx + rdi]
cmp byte [rbp + rdi], al
jne 0x1401426d0
inc rdi
cmp r11, rdi
jne 0x1401426b0
jmp 0x140142670
jbe 0x140142674
add rdx, 4
nop word cs:[rax + rax]
mov dword [rdx - 8], ebx
cmp rdx, qword [rsp + 0x30]
jae 0x140142674
mov ebx, dword [rdx]
add rdx, 4
test ebx, ebx
js 0x1401426e0
add rdx, 0xfffffffffffffffc
mov rax, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x28]
jmp 0x1401426a0
sub rcx, rax
mov qword [rsp + 0x70], rcx
mov r14, qword [rsp + 0x98]
jmp 0x140142737
not ebp
mov dword [rdx], ebp
mov dword [rdx - 4], r9d
add r15, 0xfffffffffffffffc
cmp r15, qword [rsp + 0x38]
jb 0x140141684
movsxd r9, dword [r15]
lea rdx, [r15 + 4]
mov rbx, qword [rsp + 0x28]
movsxd r8, dword [rbx + r9*4]
mov ebp, dword [r15 + 4]
mov r10, r8
add r10, r14
mov rcx, qword [rsp + 0x48]
movsxd rax, ebp
movsxd r11, dword [rbx + rax*4]
mov rax, r11
add rax, r14
mov rsi, r10
mov rbx, qword [rsp + 0x70]
nop dword [rax + rax]
cmp rsi, rcx
jg 0x1401427a0
cmp rax, rcx
jg 0x1401427a0
mov rdi, qword [rsp + 0x40]
movzx ecx, byte [rdi + rsi]
movzx edi, byte [rdi + rax]
cmp cl, dil
jne 0x1401427b0
inc rax
inc rsi
dec rbx
mov rcx, qword [rsp + 0x48]
jne 0x140142770
jmp 0x140142720
sub r11d, r8d
test r11d, r11d
mov rax, qword [rsp + 0x30]
jg 0x1401427c4
jmp 0x1401427f6
sub ecx, edi
mov r11d, ecx
mov rcx, qword [rsp + 0x48]
test r11d, r11d
mov rax, qword [rsp + 0x30]
jle 0x1401427f6
add rdx, 4
nop dword [rax + rax]
mov dword [rdx - 8], ebp
cmp rdx, rax
jae 0x1401427f0
mov ebp, dword [rdx]
add rdx, 4
test ebp, ebp
js 0x1401427d0
add rdx, 0xfffffffffffffffc
mov rbx, qword [rsp + 0x28]
jmp 0x140142756
mov r11d, 1
test r11d, r11d
jne 0x140142724
mov ebp, dword [rdx]
jmp 0x140142720
test bl, 1
jne 0x140142846
nop dword [rax + rax]
not dword [r10 + 4]
add r10, 0xfffffffffffffffc
cmp r10, qword [rsp + 0x38]
jae 0x140142810
jmp 0x140141684
not ebx
mov dword [rcx], ebx
mov dword [rcx - 4], esi
add r10, 0xfffffffffffffffc
cmp r10, qword [rsp + 0x38]
jb 0x140141684
movsxd rsi, dword [r10]
lea rcx, [r10 + 4]
mov rdi, qword [rsp + 0x28]
movsxd rbp, dword [rdi + rsi*4]
mov ebx, dword [r10 + 4]
mov rax, qword [rsp + 0x40]
add rbp, rax
movsxd rdx, ebx
movsxd rdx, dword [rdi + rdx*4]
add rdx, rax
mov rdi, r14
nop
movzx eax, byte [rdx + rdi]
cmp byte [rbp + rdi], al
jne 0x140142890
inc rdi
cmp r15, rdi
jne 0x140142870
jmp 0x140142830
jbe 0x140142834
add rcx, 4
nop word cs:[rax + rax]
mov dword [rcx - 8], ebx
cmp rcx, qword [rsp + 0x30]
jae 0x140142834
mov ebx, dword [rcx]
add rcx, 4
test ebx, ebx
js 0x1401428a0
add rcx, 0xfffffffffffffffc
mov rax, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x28]
jmp 0x140142862
test r14d, r14d
jne 0x1401428de
test r15d, r15d
jns 0x1401428de
mov rax, qword [rsp + 0x50]
not eax
mov dword [r8 + 4], eax
jmp 0x140141684
test r14d, r14d
jne 0x1401428fb
test r15d, r15d
jle 0x1401428fb
mov dword [r8 + 4], r9d
mov rax, qword [rsp + 0x68]
mov dword [r8], eax
mov rax, qword [rsp + 0x50]
jmp 0x14014293f
test r15d, r15d
sete dl
and dl, bpl
cmp dl, 1
jne 0x140142915
mov rax, qword [rsp + 0x68]
not eax
jmp 0x140142117
test r15d, r15d
jne 0x14014292d
test r14d, r14d
jle 0x14014292d
mov rax, qword [rsp + 0x50]
mov dword [r8], eax
mov dword [r8 + 4], r9d
jmp 0x14014293a
test eax, eax
sete dl
and dl, bpl
cmp dl, 1
jne 0x14014294a
mov rax, qword [rsp + 0x68]
not eax
mov dword [r8 + 8], eax
jmp 0x140141684
test eax, eax
jne 0x140142967
test r14d, r14d
jle 0x140142967
mov rax, qword [rsp + 0x50]
mov dword [r8], eax
mov rax, qword [rsp + 0x68]
not eax
jmp 0x1401421a4
or r14d, eax
jne 0x140141684
mov rcx, qword [rsp + 0x50]
not ecx
mov rax, qword [rsp + 0x38]
mov dword [rax + 4], ecx
mov rcx, qword [rsp + 0x68]
not ecx
mov dword [rax + 8], ecx
jmp 0x140141684
mov eax, r13d
mov r15, qword [rsp + 0xc0]
mov edx, eax
mov ebp, dword [r12 + rdx*4]
test ebp, ebp
js 0x1401429dc
xor eax, eax
nop word cs:[rax + rax]
mov rcx, rdx
mov edx, ebp
mov word [r11 + rdx*2], cx
test ecx, ecx
jle 0x140142a18
mov ebp, dword [r12 + rcx*4 - 4]
dec eax
lea rdx, [rcx - 1]
test ebp, ebp
jns 0x1401429b0
mov dword [r12 + rdx*4 + 4], eax
test ecx, 0xfffffffe
je 0x140142a1e
mov eax, edx
movsxd rcx, eax
lea rdx, [r12 + rcx*4]
mov ebp, dword [r12 + rcx*4]
inc ecx
nop dword [rax]
not ebp
mov dword [rdx], ebp
movsxd rbp, ebp
mov word [r11 + rbp*2], ax
mov ebp, dword [rdx - 4]
add rdx, 0xfffffffffffffffc
dec ecx
test ebp, ebp
js 0x1401429f0
mov word [r11 + rbp*2], ax
lea eax, [rcx - 2]
cmp ecx, 1
jg 0x140142999
jmp 0x140142a1e
dec eax
mov dword [r12 + rcx*4], eax
mov rcx, r11
mov rdx, r12
mov r8, qword [rsp + 0x108]
mov r9d, 1
call fcn.1401481e0
cmp dword [rsp + 0xb8], 0
mov r14, qword [rsp + 0x40]
jle 0x140142b12
mov rsi, qword [rsp + 0xf0]
movzx edi, byte [r14 + rsi]
lea r8, [r14 - 1]
mov r9d, esi
lea r10, [r8 + r9]
lea ebp, [rsi - 1]
add esi, 0xfffffffe
xor edx, edx
mov ecx, edi
nop dword [rax]
mov ebx, ebp
mov rbp, r9
add rbp, rdx
je 0x140142b12
mov eax, esi
movzx edi, byte [r10 + rdx]
dec rdx
lea ebp, [rbx - 1]
lea esi, [rax - 1]
cmp ecx, edi
mov ecx, edi
jbe 0x140142a70
lea rcx, [r9 + rdx]
lea ebp, [rcx + 1]
cmp ebp, 1
jle 0x140142ac9
mov eax, eax
add rax, r14
mov ebp, edi
mov r10, qword [rsp + 0x60]
nop dword [rax]
movzx edi, byte [rax]
dec ebx
cmp ebp, edi
jb 0x140142ad7
dec rax
mov ebp, edi
test ebx, ebx
jg 0x140142ab0
mov esi, 0xffffffff
jmp 0x140142ad9
lea esi, [r9 - 1]
add rsi, rdx
mov r10, qword [rsp + 0x60]
jmp 0x140142ad9
mov esi, ebx
add edx, r9d
mov eax, edx
sub eax, esi
cmp eax, 2
not edx
cmovge edx, ecx
test ecx, ecx
cmove edx, ecx
mov rcx, qword [rsp + 0xe8]
movzx eax, word [r10 + rcx*2 - 2]
dec rcx
mov qword [rsp + 0xe8], rcx
mov dword [r12 + rax*4], edx
test esi, esi
jns 0x140142a5b
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xd8]
mov dword [rcx + 0x3fffc], eax
mov r9d, 0xfe
jmp 0x140142b61
mov eax, r8d
or eax, r9d
lea edx, [r9 + 1]
cdqe
mov ebp, ecx
mov rbx, qword [rsp + 0xd8]
sub ebp, dword [rbx + rax*4]
inc ebp
or edx, r8d
movsxd rdx, edx
mov dword [rbx + rdx*4], ebp
mov dword [rbx + rax*4], ecx
sub r9, 1
jb 0x140142c49
mov r8d, r9d
shl r8d, 8
mov ecx, dword [r15 + r9*4 + 4]
dec ecx
mov ebp, 0xff
jmp 0x140142b8c
dec ebx
mov r13d, ebx
dec ebp
cmp ebp, r9d
jbe 0x140142b30
mov eax, ecx
mov edx, ebp
shl edx, 8
or edx, r9d
movsxd rdx, edx
mov rbx, qword [rsp + 0xd8]
sub ecx, dword [rbx + rdx*4]
mov dword [rbx + rdx*4], eax
mov eax, ebp
or eax, r8d
cdqe
movsxd rbx, dword [rbx + rax*4]
cmp ebx, r13d
jg 0x140142b85
movsxd rcx, ecx
movsxd rsi, r13d
sub r13d, ebx
inc r13d
mov r10, rsi
sub r10, rbx
and r13, 3
je 0x140142bf8
mov rax, r12
xor edx, edx
nop word cs:[rax + rax]
mov edi, dword [rax + rsi*4]
mov dword [rax + rcx*4], edi
inc rdx
add rax, 0xfffffffffffffffc
cmp r13, rdx
jne 0x140142be0
sub rsi, rdx
sub rcx, rdx
cmp r10, 3
jb 0x140142b80
inc rsi
nop word cs:[rax + rax]
mov eax, dword [r12 + rsi*4 - 4]
mov dword [r12 + rcx*4], eax
mov eax, dword [r12 + rsi*4 - 8]
mov dword [r12 + rcx*4 - 4], eax
mov eax, dword [r12 + rsi*4 - 0xc]
mov dword [r12 + rcx*4 - 8], eax
mov eax, dword [r12 + rsi*4 - 0x10]
mov dword [r12 + rcx*4 - 0xc], eax
add rcx, 0xfffffffffffffffc
add rsi, 0xfffffffffffffffc
cmp rsi, rbx
jg 0x140142c10
jmp 0x140142b80
lea r8, [r12 - 4]
mov r9d, 0xfe
mov r13, qword [rsp + 0xd8]
jmp 0x140142c6a
sub r9, 1
jb 0x140142d06
lea eax, [r9 + 1]
mov r10d, r9d
shl r10d, 8
or eax, r10d
cdqe
movsxd rax, dword [r13 + rax*4]
lea r11, [r12 + rax*4]
movsxd rax, dword [r15 + r9*4 + 4]
lea rbx, [r8 + rax*4]
cmp r11, rbx
ja 0x140142c60
mov eax, 0xffffffff
xor esi, esi
jmp 0x140142cb3
mov ecx, eax
mov dword [rsi], edi
add rsi, 0xfffffffffffffffc
mov eax, ecx
add rbx, 0xfffffffffffffffc
cmp r11, rbx
ja 0x140142c60
mov edx, dword [rbx]
mov ecx, edx
not ecx
mov dword [rbx], ecx
test edx, edx
jle 0x140142caa
lea ebp, [rdx - 1]
movzx ecx, byte [r14 + rbp]
xor edi, edi
cmp edx, 1
je 0x140142cdc
lea edi, [rdx - 2]
neg edx
cmp byte [r14 + rdi], cl
cmova ebp, edx
mov edi, ebp
cmp eax, ecx
je 0x140142ca0
test eax, eax
js 0x140142cf5
sub rsi, r12
shr rsi, 2
or eax, r10d
cdqe
mov dword [r13 + rax*4], esi
lea eax, [r10 + rcx]
cdqe
movsxd rax, dword [r13 + rax*4]
lea rsi, [r12 + rax*4]
jmp 0x140142ca2
mov rcx, qword [rsp + 0xf0]
movzx eax, byte [r14 + rcx]
mov rbp, qword [rsp + 0xb8]
mov edx, ebp
neg edx
mov rbx, qword [rsp + 0x48]
cmp byte [rbx + r14 - 2], al
cmovae edx, ecx
movsxd rcx, dword [r15 + rax*4]
mov dword [r12 + rcx*4], edx
test ebp, ebp
jle 0x140142da9
lea rdx, [r12 + rcx*4]
lea r8, [r12 + rbx*4]
add rdx, 4
mov rbp, r12
jmp 0x140142d5e
not ebx
mov dword [rbp], ebx
add rbp, 4
cmp rbp, r8
jae 0x140142da9
mov ebx, dword [rbp]
test ebx, ebx
jle 0x140142d50
mov esi, ebx
dec esi
movzx edi, byte [r14 + rsi]
je 0x140142d79
lea ecx, [rbx - 2]
cmp byte [r14 + rcx], dil
jae 0x140142d7d
neg ebx
mov esi, ebx
cmp eax, edi
je 0x140142d9a
sub rdx, r12
shr rdx, 2
mov eax, eax
mov dword [r15 + rax*4], edx
mov eax, edi
movsxd rax, dword [r15 + rax*4]
lea rdx, [r12 + rax*4]
mov eax, edi
mov dword [rdx], esi
add rdx, 4
add rbp, 4
cmp rbp, r8
jb 0x140142d5e
xor eax, eax
add rsp, 0x138
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret