Function at 0x140145130
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
mov r12, r9
mov r15, r8
mov r13, rdx
mov r14, rcx
movsxd rsi, dword [rsp + 0x1d0]
xor eax, eax
mov qword [rsp + 0x80], rax
mov r8d, 0x400
mov rcx, r15
xor edx, edx
call fcn.14038d2f0
mov r8d, 0x40000
mov rcx, r12
xor edx, edx
call fcn.14038d2f0
lea rax, [rsi - 1]
mov qword [rsp + 0x120], rax
mov r11d, esi
mov r8d, esi
mov qword [rsp + 0xd0], rsi
test rsi, rsi
jle 0x14014523a
mov rbx, qword [rsp + 0x120]
movzx eax, byte [r14 + rbx]
mov r8, r11
movzx edi, al
mov ebp, ebx
lea esi, [rbx - 1]
add ebx, 0xfffffffe
nop
mov r10, rbp
mov edx, edi
inc dword [r15 + rdx*4]
sub rbp, 1
jb 0x14014523a
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 0x1401451c0
mov edx, edi
shl edx, 8
add edx, eax
inc dword [r12 + rdx*4]
mov dword [r13 + r8*4 - 4], ebp
dec r8
cmp r10d, 2
jl 0x14014523a
mov ebp, r9d
add rbp, r14
nop word cs:[rax + rax]
movzx eax, byte [rbp]
movzx ebx, al
cmp edi, ebx
jb 0x140145231
shl edi, 8
or edi, ebx
inc dword [r12 + rdi*4]
dec ecx
dec rbp
mov edi, ebx
test ecx, ecx
jg 0x140145210
jmp 0x14014523a
dec ecx
mov ebx, ecx
jmp 0x1401451b4
mov qword [rsp + 0x118], r15
mov qword [rsp + 0x50], r11
mov rax, qword [rsp + 0xd0]
sub eax, r8d
mov qword [rsp + 0x108], rax
cdqe
lea rcx, [rax*4]
add rcx, r13
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x100], rax
lea rax, [rax*4 + 0x300]
add rax, r13
mov qword [rsp + 0xa8], rax
xor ebp, ebp
xor r15d, r15d
xor r11d, r11d
jmp 0x1401452b0
mov rbp, r9
cmp r9, 0x100
je 0x1401454ed
lea ebx, [r11 + r15]
mov rcx, qword [rsp + 0x118]
add r15d, dword [rcx + rbp*4]
mov dword [rcx + rbp*4], ebx
mov r10, rbp
shl r10, 8
mov esi, r10d
or esi, ebp
add r15d, dword [r12 + rsi*4]
lea r9, [rbp + 1]
cmp rbp, 0xfe
ja 0x1401452a0
mov rbx, r9
or rbx, r10
test rbp, rbp
je 0x1401453fb
mov eax, ebp
mov ebx, ebx
mov edi, dword [r12 + rbx*4]
add r11d, edi
test edi, edi
je 0x140145343
mov r8, qword [rsp + 0x80]
movsxd rdi, r8d
mov esi, dword [r12 + 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 + 0x80], rdx
mov dword [r12 + rbx*4], r11d
mov rbx, r9
shl rbx, 8
or rbx, rbp
add r15d, dword [r12 + rbx*4]
mov rbx, rbp
add rbx, 2
mov ebp, 0xff
cmp rbx, 0x100
je 0x1401452b0
lea ebp, [r10 + 0x200]
jmp 0x1401453a0
mov dword [r12 + rdi*4], r11d
mov edx, ebp
or edx, eax
add r15d, dword [r12 + rdx*4]
inc ebx
add ebp, 0x100
cmp ebx, 0x100
je 0x1401452a0
mov edi, ebx
or edi, r10d
mov edx, dword [r12 + rdi*4]
add r11d, edx
test edx, edx
je 0x140145380
mov rcx, qword [rsp + 0x80]
movsxd rcx, ecx
lea edx, [rbx - 1]
or edx, r10d
movsxd rdx, edx
mov edx, dword [r12 + 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 + 0x80], rcx
jmp 0x140145380
mov eax, dword [r12 + rbx*4]
add r11d, eax
test eax, eax
je 0x14014543f
mov rbp, qword [rsp + 0x80]
movsxd rax, ebp
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 ebp, 0xffffffff
mov qword [rsp + 0x80], rbp
mov dword [r12 + rbx*4], r11d
mov eax, r9d
shl eax, 8
add r15d, dword [r12 + rax*4]
mov edi, 2
mov ebp, 0x800
movabs rbx, 0x100000001
jmp 0x140145492
mov dword [r12 + rax*4], r11d
add r15d, dword [r12 + rbp]
inc rdi
inc rbx
add rbp, 0x400
cmp rbp, 0x40000
je 0x1401452a0
mov eax, edi
or eax, r10d
mov esi, dword [r12 + rax*4]
add r11d, esi
test esi, esi
je 0x140145470
mov rcx, qword [rsp + 0x80]
movsxd rcx, ecx
mov esi, ebx
or esi, r10d
movsxd rsi, esi
mov esi, dword [r12 + 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 + 0x80], rcx
jmp 0x140145470
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 + 0xd0]
lea eax, [rcx + 0xff]
lea edx, [rcx + 0x1fe]
test eax, eax
cmovns edx, eax
test ecx, ecx
mov rbp, qword [rsp + 0x118]
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x140], r12
mov qword [rsp + 0xe8], rdi
mov r15, qword [rsp + 0x50]
jle 0x140146473
mov r8, rdi
sar edx, 8
movsxd rax, edx
mov qword [rsp + 0x158], rax
mov rax, qword [rsp + 0x100]
lea rax, [rax*4 + 0x310]
add rax, r13
mov qword [rsp + 0x128], rax
lea rax, [r14 + 0x103]
mov qword [rsp + 0xf0], rax
lea rax, [r14 + 6]
mov qword [rsp + 0x150], rax
lea rax, [r14 + 3]
mov qword [rsp + 0x148], rax
mov dword [rsp + 0x134], edx
jmp 0x1401455dc
mov rbx, qword [rsp + 0x160]
mov edx, dword [rsp + 0x134]
cmp ebx, edx
mov rbp, qword [rsp + 0x118]
mov r14, qword [rsp + 0x70]
mov r12, qword [rsp + 0x140]
jge 0x140146473
mov r10d, ebx
movsxd r9, ebx
lea ecx, [r9 + 1]
cmp edx, ecx
cmovg ecx, edx
lea rdx, [r9 + 1]
mov rdi, qword [rsp + 0x1e0]
mov rsi, qword [rsp + 0x158]
nop
cmp rdx, rsi
jge 0x140145620
movzx eax, byte [rdi + rdx]
lea rbp, [rdx + 1]
inc ebx
cmp al, byte [rdi + rdx - 1]
mov rdx, rbp
je 0x140145600
jmp 0x140145622
mov ebx, ecx
mov qword [rsp + 0x160], rbx
mov edx, ebx
sub edx, r10d
cmp edx, 2
jl 0x1401455b0
mov qword [rsp + 0x138], r10
mov rcx, qword [rsp + 0x1e0]
movzx eax, byte [rcx + r9]
mov rcx, qword [rsp + 0x1d8]
movzx r14d, byte [rcx + rax*2]
movzx eax, byte [rcx + rax*2 + 1]
mov qword [rsp + 0x110], rax
mov dword [rsp + 0xfc], edx
mov esi, edx
cmp r14, 1
mov rbx, r11
jbe 0x140145786
mov rax, qword [rsp + 0x138]
shl eax, 8
mov rcx, qword [rsp + 0xa8]
mov dword [rcx], eax
lea rdx, [rsi - 1]
lea rcx, [rsi - 2]
mov r8d, edx
and r8d, 3
mov ebp, 1
cmp rcx, 3
jae 0x1401456bb
mov rdi, qword [rsp + 0x128]
test r8, r8
jne 0x140145707
jmp 0x140145730
and rdx, 0xfffffffffffffffc
xor ebp, ebp
mov rdi, qword [rsp + 0x128]
nop dword [rax]
lea ecx, [rax + 0x100]
mov dword [rdi + rbp*4 - 0xc], ecx
lea ecx, [rax + 0x200]
mov dword [rdi + rbp*4 - 8], ecx
lea ecx, [rax + 0x300]
mov dword [rdi + rbp*4 - 4], ecx
add eax, 0x400
mov dword [rdi + rbp*4], eax
add rbp, 4
cmp rdx, rbp
jne 0x1401456d0
inc rbp
test r8, r8
je 0x140145730
add eax, 0x100
lea rcx, [rdi + rbp*4]
add rcx, 0xfffffffffffffff0
xor edx, edx
nop word cs:[rax + rax]
mov dword [rcx + rdx*4], eax
inc rdx
add eax, 0x100
cmp r8, rdx
jne 0x140145720
mov qword [rsp + 0xb0], rsi
lea r12, [rbx + rsi*4]
add r12, 0x300
cmp dword [rsp + 0xfc], 2
jae 0x14014589c
mov al, 1
mov rcx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0xb0]
nop dword [rax + rax]
mov edx, dword [rcx]
sar edx, 8
movsxd rdx, edx
mov byte [rbx + rdx], al
inc al
add rcx, 4
cmp rcx, r12
jb 0x140145770
mov r11, rbx
cmp byte [rsp + 0x110], 0xfc
mov rcx, qword [rsp + 0x138]
ja 0x1401455b0
shl ecx, 8
lea edx, [rcx + 0xfd]
mov rax, qword [rsp + 0xa8]
mov dword [rax], edx
lea rax, [rsi - 1]
lea rdi, [rsi - 2]
mov ebx, eax
and ebx, 3
mov ebp, 1
cmp rdi, 3
mov rdi, qword [rsp + 0x128]
mov r10, r11
jb 0x140145825
and rax, 0xfffffffffffffffc
add ecx, 0x4fd
xor ebp, ebp
nop word cs:[rax + rax]
mov edx, ecx
lea ecx, [rdx - 0x300]
mov dword [rdi + rbp*4 - 0xc], ecx
lea ecx, [rdx - 0x200]
mov dword [rdi + rbp*4 - 8], ecx
lea ecx, [rdx - 0x100]
mov dword [rdi + rbp*4 - 4], ecx
mov dword [rdi + rbp*4], edx
add rbp, 4
lea ecx, [rdx + 0x400]
cmp rax, rbp
jne 0x1401457f0
inc rbp
test rbx, rbx
je 0x140145851
add edx, 0x100
lea rax, [rdi + rbp*4]
add rax, 0xfffffffffffffff0
xor ecx, ecx
nop word [rax + rax]
mov dword [rax + rcx*4], edx
inc rcx
add edx, 0x100
cmp rbx, rcx
jne 0x140145840
lea r12, [r10 + rsi*4]
add r12, 0x300
cmp dword [rsp + 0xfc], 2
jae 0x140145e7f
mov r11, r10
mov al, 1
mov rcx, qword [rsp + 0xa8]
nop word [rax + rax]
mov edx, dword [rcx]
sar edx, 8
movsxd rdx, edx
mov byte [r8 + rdx], al
inc al
add rcx, 4
cmp rcx, r12
jb 0x140145880
jmp 0x1401455b0
mov rax, qword [rsp + 0xb0]
lea r11, [rax + 0xbe]
mov rax, qword [rsp + 0x110]
cmp al, r14b
jb 0x140145c60
inc rax
mov qword [rsp + 0x78], rax
jmp 0x1401458ef
mov eax, dword [rsp + 0xe0]
mov dword [r8 - 4], eax
lea rax, [r11 - 1]
cmp r11, 0xc0
mov r11, rax
jle 0x140145751
mov ecx, dword [rbx + r11*4]
mov eax, dword [rbx + r11*4 + 4]
lea r8, [rbx + r11*4]
add r8, 4
mov dword [rsp + 0xe0], ecx
movsxd r9, ecx
mov rcx, qword [rsp + 0x70]
lea rdx, [rcx + r9]
mov qword [rsp + 0xd8], r11
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0xc8], r9
movsxd rsi, eax
lea r10, [rcx + rsi]
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0xa0], rsi
xor edi, edi
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0xb8], rdi
mov r15, rdi
shl r15, 8
lea r11, [r15 + r9]
add r15, rsi
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x58]
mov rdi, qword [rsp + 0xa0]
mov qword [rsp + 0xc0], r10
mov r9, qword [rsp + 0x78]
nop word cs:[rax + rax]
lea rcx, [r14 + rbx]
mov rdx, qword [rsp + 0x50]
cmp rcx, rdx
jge 0x140145ba0
lea rcx, [r14 + rdi]
cmp rcx, rdx
jge 0x140145ba0
movzx edx, byte [rbp + r14]
movzx ecx, byte [r10 + r14]
cmp dl, cl
jne 0x140145bb0
dec r9
inc r10
inc rdi
inc rbp
inc rbx
cmp r14, r9
jne 0x140145990
mov qword [rsp + 0x98], r11
lea rcx, [r11 + 0xff]
mov rbp, qword [rsp + 0x50]
cmp rcx, rbp
mov r11, qword [rsp + 0xd8]
mov r9, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0x88]
mov r10, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xb8]
jge 0x140145c02
lea rdx, [r15 + 0xff]
cmp rdx, rbp
jge 0x140145c02
mov rbp, qword [rsp + 0x70]
movzx ebx, byte [rbp + rcx]
movzx ebp, byte [rbp + rdx]
cmp bl, bpl
jne 0x140145b7d
mov rcx, qword [rsp + 0x98]
add rcx, 0x100
mov rbp, qword [rsp + 0x50]
cmp rcx, rbp
jge 0x140145c02
lea rdx, [r15 + 0x100]
cmp rdx, rbp
jge 0x140145c02
mov rbp, qword [rsp + 0x70]
movzx ebx, byte [rbp + rcx]
movzx ebp, byte [rbp + rdx]
cmp bl, bpl
jne 0x140145b7d
mov rcx, qword [rsp + 0x98]
add rcx, 0x101
mov rbp, qword [rsp + 0x50]
cmp rcx, rbp
jge 0x140145c02
lea rdx, [r15 + 0x101]
cmp rdx, rbp
jge 0x140145c02
mov rbp, qword [rsp + 0x70]
movzx ebx, byte [rbp + rcx]
movzx ebp, byte [rbp + rdx]
cmp bl, bpl
jne 0x140145b7d
mov rcx, qword [rsp + 0x98]
add rcx, 0x102
mov rbp, qword [rsp + 0x50]
cmp rcx, rbp
jge 0x140145c02
lea rdx, [r15 + 0x102]
cmp rdx, rbp
jge 0x140145c02
mov rbp, qword [rsp + 0x70]
movzx ebx, byte [rbp + rcx]
movzx ebp, byte [rbp + rdx]
cmp bl, bpl
jne 0x140145b7d
mov rbx, qword [rsp + 0x98]
add rbx, 0x103
mov rcx, qword [rsp + 0x50]
cmp rbx, rcx
jge 0x140145c02
add r15, 0x103
cmp r15, rcx
jge 0x140145c02
mov rdx, rbx
mov rcx, qword [rsp + 0x70]
movzx ebx, byte [rcx + rbx]
movzx ebp, byte [rcx + r15]
inc rdi
add r10, 0x100
add qword [rsp + 0xa0], 0x100
add qword [rsp + 0x58], 0x100
add qword [rsp + 0x68], 0x100
cmp bl, bpl
je 0x14014594e
movzx ecx, bpl
movzx edx, bl
sub edx, ecx
test edx, edx
mov rbx, qword [rsp + 0x60]
jg 0x140145bcb
jmp 0x140145c25
mov edx, eax
sub edx, dword [rsp + 0xe0]
jmp 0x140145bb2
sub edx, ecx
mov r11, qword [rsp + 0xd8]
mov r9, qword [rsp + 0xc8]
test edx, edx
mov rbx, qword [rsp + 0x60]
jle 0x140145c25
add r8, 4
mov rdx, qword [rsp + 0x90]
nop word [rax + rax]
mov dword [r8 - 8], eax
cmp r8, r12
jae 0x140145c20
mov eax, dword [r8]
add r8, 4
test eax, eax
js 0x140145be0
add r8, 0xfffffffffffffffc
mov rcx, qword [rsp + 0x70]
jmp 0x14014592b
mov edx, eax
sub edx, dword [rsp + 0xe0]
test edx, edx
mov rbx, qword [rsp + 0x60]
jg 0x140145bcb
jmp 0x140145c25
mov edx, 1
test edx, edx
mov r15, qword [rsp + 0x50]
jne 0x1401458d0
not dword [r8]
jmp 0x1401458d0
mov rbx, qword [rsp + 0x60]
mov r11, rdi
mov dword [rsi - 4], r8d
lea rax, [r11 - 1]
cmp r11, 0xc1
mov r11, rax
jl 0x140145751
mov r8d, dword [rbx + r11*4]
mov eax, dword [rbx + r11*4 + 4]
lea rsi, [rbx + r11*4]
add rsi, 4
movsxd r10, r8d
lea rcx, [r10 + 0xff]
cmp rcx, r15
jge 0x140145e20
mov rdi, r11
mov rcx, qword [rsp + 0xf0]
lea r9, [rcx + r10]
movsxd rbp, eax
lea r11, [rcx + rbp]
xor ebx, ebx
lea rcx, [rbx + rbp]
add rcx, 0xff
cmp rcx, r15
jge 0x140145dc0
movzx edx, byte [r9 + rbx - 4]
movzx ecx, byte [r11 + rbx - 4]
cmp dl, cl
jne 0x140145de0
lea rcx, [r10 + rbx]
add rcx, 0x100
cmp rcx, r15
jge 0x140145dc0
lea rcx, [rbx + rbp]
add rcx, 0x100
cmp rcx, r15
jge 0x140145dc0
movzx edx, byte [r9 + rbx - 3]
movzx ecx, byte [r11 + rbx - 3]
cmp dl, cl
jne 0x140145de0
lea rcx, [r10 + rbx]
add rcx, 0x101
cmp rcx, r15
jge 0x140145dc0
lea rcx, [rbx + rbp]
add rcx, 0x101
cmp rcx, r15
jge 0x140145dc0
movzx edx, byte [r9 + rbx - 2]
movzx ecx, byte [r11 + rbx - 2]
cmp dl, cl
jne 0x140145de0
lea rcx, [r10 + rbx]
add rcx, 0x102
cmp rcx, r15
jge 0x140145dc0
lea rcx, [rbx + rbp]
add rcx, 0x102
cmp rcx, r15
jge 0x140145dc0
movzx edx, byte [r9 + rbx - 1]
movzx ecx, byte [r11 + rbx - 1]
cmp dl, cl
jne 0x140145de0
lea rcx, [r10 + rbx]
add rcx, 0x103
cmp rcx, r15
jge 0x140145dc0
lea rcx, [rbx + rbp]
add rcx, 0x103
cmp rcx, r15
jge 0x140145dc0
movzx edx, byte [r9 + rbx]
movzx ecx, byte [r11 + rbx]
cmp dl, cl
jne 0x140145de0
lea rcx, [r10 + rbx]
add rcx, 0x1ff
add rbx, 0x100
cmp rcx, r15
jl 0x140145c9c
nop word cs:[rax + rax]
mov ebp, eax
sub ebp, r8d
test ebp, ebp
mov rcx, qword [rsp + 0xf0]
jg 0x140145df4
jmp 0x140145e62
movzx ecx, cl
movzx ebp, dl
sub ebp, ecx
test ebp, ebp
mov rcx, qword [rsp + 0xf0]
jle 0x140145e62
add rsi, 4
nop dword [rax + rax]
mov dword [rsi - 8], eax
cmp rsi, r12
jae 0x140145c40
mov eax, dword [rsi]
add rsi, 4
test eax, eax
js 0x140145e00
add rsi, 0xfffffffffffffffc
jmp 0x140145c93
mov rdx, rbx
mov ebp, eax
sub ebp, r8d
jle 0x140145e70
mov rcx, rsi
add rcx, 4
nop word cs:[rax + rax]
mov rsi, rcx
mov dword [rcx - 8], eax
cmp rcx, r12
jae 0x140145e70
mov eax, dword [rsi]
lea rcx, [rsi + 4]
test eax, eax
js 0x140145e40
add rcx, 0xfffffffffffffffc
mov ebp, eax
sub ebp, r8d
jg 0x140145e2d
jmp 0x140145e70
mov rbx, qword [rsp + 0x60]
mov r11, rdi
nop word [rax + rax]
test ebp, ebp
jne 0x140145c48
not dword [rsi]
jmp 0x140145c48
add rsi, 0xbe
cmp r14b, byte [rsp + 0x110]
jb 0x140145ec4
mov r14, qword [rsp + 0x150]
jmp 0x14014629b
test ebx, ebx
je 0x140146268
mov rcx, qword [rsp + 0xb0]
mov dword [rax - 4], ebp
lea rsi, [rcx - 1]
cmp rcx, 0xc1
jl 0x14014586a
mov ebp, dword [r10 + rsi*4]
mov rax, rsi
mov esi, dword [r10 + rsi*4 + 4]
mov qword [rsp + 0xb0], rax
lea rax, [r10 + rax*4]
add rax, 4
movsxd rdi, ebp
lea r9, [rdi + 2]
cmp r9, r15
jge 0x140146220
mov dword [rsp + 0xc8], ebp
mov r8, qword [rsp + 0x148]
lea rdx, [r8 + rdi]
lea rcx, [rdi + 3]
mov qword [rsp + 0xd8], rdi
mov qword [rsp + 0x90], r9
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x78], rcx
movsxd rbp, esi
lea rbx, [r8 + rbp]
mov qword [rsp + 0x68], rbx
lea rbx, [rbp + 3]
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0xe0], rdx
mov rbx, r9
mov qword [rsp + 0xb8], rbp
xor ecx, ecx
mov qword [rsp + 0xc0], rcx
lea rcx, [rbp + 2]
cmp rcx, r15
jge 0x140146140
mov rdx, qword [rsp + 0x70]
movzx r9d, byte [rdx + rbx]
movzx ebx, byte [rdx + rcx]
cmp r9b, bl
jne 0x140146194
lea rcx, [rdi + 3]
mov r15, qword [rsp + 0x50]
cmp rcx, r15
jge 0x140146140
lea rdx, [rbp + 3]
cmp rdx, r15
jge 0x140146140
mov rbx, qword [rsp + 0x70]
movzx r9d, byte [rbx + rcx]
movzx ebx, byte [rbx + rdx]
cmp r9b, bl
jne 0x140146194
lea rcx, [rdi + 4]
mov r15, qword [rsp + 0x50]
cmp rcx, r15
jge 0x140146140
lea rdx, [rbp + 4]
cmp rdx, r15
jge 0x140146140
mov rbx, qword [rsp + 0x70]
movzx r9d, byte [rbx + rcx]
movzx ebx, byte [rbx + rdx]
cmp r9b, bl
jne 0x140146194
lea rcx, [rdi + 5]
mov r15, qword [rsp + 0x50]
cmp rcx, r15
jge 0x140146140
lea rdx, [rbp + 5]
cmp rdx, r15
jge 0x140146140
mov rbx, qword [rsp + 0x70]
movzx r9d, byte [rbx + rcx]
movzx ebx, byte [rbx + rdx]
cmp r9b, bl
jne 0x140146194
add rdi, 6
mov r15, qword [rsp + 0x50]
cmp rdi, r15
jge 0x140146140
add rbp, 6
cmp rbp, r15
jge 0x140146140
mov rcx, qword [rsp + 0x70]
movzx r9d, byte [rcx + rdi]
movzx ebx, byte [rcx + rbp]
mov rbp, qword [rsp + 0xa0]
mov r15, qword [rsp + 0xe0]
mov r10, qword [rsp + 0x58]
mov r8, qword [rsp + 0x68]
mov r11, qword [rsp + 0x110]
cmp r9b, bl
jne 0x140146194
mov rdx, qword [rsp + 0x50]
nop word cs:[rax + rax]
lea rcx, [r14 + rbp]
cmp rcx, rdx
jge 0x140146170
lea rcx, [r14 + r10]
cmp rcx, rdx
jge 0x140146170
movzx ebx, byte [r15 + r14]
movzx ecx, byte [r8 + r14]
cmp bl, cl
jne 0x14014619b
dec r11
inc r8
inc r10
inc r15
inc rbp
cmp r14, r11
jne 0x140146090
mov rbp, qword [rsp + 0xc0]
inc rbp
mov rcx, rbp
mov qword [rsp + 0xc0], rbp
shl rbp, 8
mov rcx, qword [rsp + 0xd8]
lea rdi, [rcx + rbp]
lea rbx, [rcx + rbp]
add rbx, 2
add rbp, qword [rsp + 0xb8]
add qword [rsp + 0x68], 0x100
add qword [rsp + 0x58], 0x100
add qword [rsp + 0xe0], 0x100
add qword [rsp + 0xa0], 0x100
mov r15, qword [rsp + 0x50]
cmp rbx, r15
jl 0x140145f5e
nop
mov ebx, esi
mov ebp, dword [rsp + 0xc8]
sub ebx, ebp
test ebx, ebx
mov r10, qword [rsp + 0x60]
mov r8, qword [rsp + 0xe8]
jg 0x1401461be
jmp 0x140145ea0
mov ebx, esi
mov ebp, dword [rsp + 0xc8]
sub ebx, ebp
mov r15, rdx
test ebx, ebx
mov r10, qword [rsp + 0x60]
mov r8, qword [rsp + 0xe8]
jg 0x1401461be
jmp 0x140145ea0
movzx ecx, bl
movzx ebx, r9b
sub ebx, ecx
mov r15, qword [rsp + 0x50]
mov ebp, dword [rsp + 0xc8]
test ebx, ebx
mov r10, qword [rsp + 0x60]
mov r8, qword [rsp + 0xe8]
jle 0x140145ea0
add rax, 4
mov rdi, qword [rsp + 0xd8]
mov r9, qword [rsp + 0x90]
nop word cs:[rax + rax]
mov dword [rax - 8], esi
cmp rax, r12
jae 0x140145ea8
mov esi, dword [rax]
add rax, 4
test esi, esi
js 0x1401461e0
add rax, 0xfffffffffffffffc
mov r8, qword [rsp + 0x148]
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
jmp 0x140145f24
mov ebx, esi
sub ebx, ebp
jle 0x140145ea0
mov rcx, rax
add rcx, 4
nop word cs:[rax + rax]
mov rax, rcx
mov dword [rcx - 8], esi
cmp rcx, r12
jae 0x140145ea0
mov esi, dword [rax]
lea rcx, [rax + 4]
test esi, esi
js 0x140146240
add rcx, 0xfffffffffffffffc
mov ebx, esi
sub ebx, ebp
jg 0x14014622d
jmp 0x140145ea0
not dword [rax]
jmp 0x140145ea8
mov rcx, rdi
mov rdx, qword [rsp + 0xb0]
mov r10, r11
mov dword [rcx - 4], r8d
lea rsi, [rdx - 1]
cmp rdx, 0xc0
mov r8, qword [rsp + 0xe8]
jle 0x14014586a
mov r8d, dword [r10 + rsi*4]
mov rax, rsi
mov esi, dword [r10 + rsi*4 + 4]
mov qword [rsp + 0xb0], rax
lea rdi, [r10 + rax*4]
add rdi, 4
movsxd r10, r8d
lea rax, [r10 + 2]
cmp rax, r15
jge 0x140146410
lea r9, [r14 + r10]
movsxd rax, esi
lea rbp, [r14 + rax]
xor ebx, ebx
lea rcx, [rax + rbx]
add rcx, 2
cmp rcx, r15
jge 0x1401463d0
movzx ecx, byte [r9 + rbx - 4]
movzx edx, byte [rbp + rbx - 4]
cmp cl, dl
jne 0x1401463e0
lea rcx, [r10 + rbx]
add rcx, 3
cmp rcx, r15
jge 0x1401463d0
lea rcx, [rax + rbx]
add rcx, 3
cmp rcx, r15
jge 0x1401463d0
movzx ecx, byte [r9 + rbx - 3]
movzx edx, byte [rbp + rbx - 3]
cmp cl, dl
jne 0x1401463e0
lea rcx, [r10 + rbx]
add rcx, 4
cmp rcx, r15
jge 0x1401463d0
lea rcx, [rax + rbx]
add rcx, 4
cmp rcx, r15
jge 0x1401463d0
movzx ecx, byte [r9 + rbx - 2]
movzx edx, byte [rbp + rbx - 2]
cmp cl, dl
jne 0x1401463e0
lea rcx, [r10 + rbx]
add rcx, 5
cmp rcx, r15
jge 0x1401463d0
lea rcx, [rax + rbx]
add rcx, 5
cmp rcx, r15
jge 0x1401463d0
movzx ecx, byte [r9 + rbx - 1]
movzx edx, byte [rbp + rbx - 1]
cmp cl, dl
jne 0x1401463e0
lea rcx, [r10 + rbx]
add rcx, 6
cmp rcx, r15
jge 0x1401463d0
lea rcx, [rax + rbx]
add rcx, 6
cmp rcx, r15
jge 0x1401463d0
movzx ecx, byte [r9 + rbx]
movzx edx, byte [rbp + rbx]
cmp cl, dl
jne 0x1401463e0
lea rcx, [r10 + rbx]
add rcx, 0x102
add rbx, 0x100
cmp rcx, r15
jl 0x1401462d4
nop
mov eax, esi
sub eax, r8d
test eax, eax
jg 0x1401463ec
jmp 0x140146452
movzx edx, dl
movzx eax, cl
sub eax, edx
test eax, eax
jle 0x140146452
add rdi, 4
mov dword [rdi - 8], esi
cmp rdi, r12
jae 0x140146270
mov esi, dword [rdi]
add rdi, 4
test esi, esi
js 0x1401463f0
add rdi, 0xfffffffffffffffc
jmp 0x1401462cb
mov eax, esi
mov rcx, rdi
sub eax, r8d
mov r10, r11
jle 0x140146460
add rdi, 4
nop word cs:[rax + rax]
mov rcx, rdi
mov dword [rdi - 8], esi
cmp rdi, r12
jae 0x140146460
mov esi, dword [rcx]
lea rdi, [rcx + 4]
test esi, esi
js 0x140146430
add rdi, 0xfffffffffffffffc
mov eax, esi
sub eax, r8d
jg 0x14014641d
jmp 0x140146460
mov rcx, rdi
mov r10, r11
nop dword [rax + rax]
test eax, eax
jne 0x140146466
not dword [rcx]
mov rdx, qword [rsp + 0xb0]
jmp 0x14014627e
movsxd rax, dword [rsp + 0xd0]
mov qword [rsp + 0xa0], rax
mov rcx, qword [rsp + 0x108]
test ecx, ecx
mov r15, rbp
jle 0x140147d0b
mov rax, qword [rsp + 0xa0]
lea rsi, [rax*4]
add rsi, r13
mov rax, qword [rsp + 0x100]
lea rax, [rax*4]
sub rsi, rax
cmp ecx, 1
je 0x1401464f7
mov rax, qword [rsp + 0x108]
add eax, 0xfffffffe
nop dword [rax]
movsxd rcx, dword [rsi + rax*4]
movzx ecx, word [r14 + rcx]
rol cx, 8
movzx ecx, cx
movsxd rdx, dword [r12 + rcx*4]
lea rbp, [rdx - 1]
mov dword [r12 + rcx*4], ebp
mov dword [r13 + rdx*4 - 4], eax
add rax, 0xffffffffffffffff
jb 0x1401464d0
mov rcx, r14
mov rax, qword [rsp + 0x108]
lea r14d, [rax - 1]
movsxd rax, dword [rsi + r14*4]
movzx eax, word [rcx + rax]
rol ax, 8
movzx eax, ax
movsxd rcx, dword [r12 + rax*4]
lea rdx, [rcx - 1]
mov dword [r12 + rax*4], edx
mov dword [r13 + rcx*4 - 4], r14d
mov rdx, qword [rsp + 0x80]
test edx, edx
mov rbx, r11
jle 0x1401479a1
movsxd rax, dword [rsp + 0x1f0]
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0x70]
lea rdi, [rax + 2]
mov rcx, qword [rsp + 0xa0]
add rax, rcx
add rax, 2
add rax, 0xfffffffffffffffe
mov qword [rsp + 0xd8], rax
mov eax, edx
mov qword [rsp + 0xe0], rax
movsxd rax, r14d
mov qword [rsp + 0xc8], rax
xor ecx, ecx
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x80], rdi
jmp 0x1401465e3
mov r11, qword [rsp + 0x60]
mov dword [r12 - 4], r14d
mov rcx, qword [rsp + 0xb0]
inc rcx
cmp rcx, qword [rsp + 0xe0]
mov r15, qword [rsp + 0x118]
mov r12, qword [rsp + 0x140]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x80]
mov rbx, r11
je 0x1401479a1
movzx eax, word [rbx + rcx*4 + 0x700]
lea r12, [rax*4]
add r12, r13
mov r8d, dword [r13 + rax*4]
movzx r10d, word [rbx + rcx*4 + 0x702]
lea rdx, [r10*4]
add rdx, r13
cmp r8d, r14d
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0xb0], rcx
jne 0x140146800
add r12, 4
lea r10, [rdx - 8]
cmp r10, r12
mov rax, rdx
jae 0x14014667a
cmp r12, rax
jae 0x1401465a0
mov rax, qword [rsp + 0xc8]
movsxd rax, dword [rsi + rax*4]
lea r8, [rdi + rax]
mov r11, qword [rsp + 0x60]
mov rdi, qword [rsp + 0xd8]
jmp 0x14014690a
mov dword [rdx - 4], r9d
add r10, 0xfffffffffffffffc
cmp r10, r12
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x80]
jb 0x140146635
mov r15, r12
movsxd r9, dword [r10]
lea rdx, [r10 + 4]
mov ebp, dword [r10 + 4]
movsxd r11, dword [rsi + r9*4]
movsxd r12, dword [rsi + r9*4 + 4]
lea r8, [rdi + r11]
add r12, rdi
cmp r8, r12
jae 0x1401467b0
movsxd rax, ebp
movsxd rbx, dword [rsi + rax*4]
movsxd rcx, dword [rsi + rax*4 + 4]
mov rsi, qword [rsp + 0x80]
lea rax, [rsi + rbx]
add rcx, rsi
mov rdi, r8
cmp rax, rcx
jae 0x14014671f
mov rax, qword [rsp + 0x70]
nop dword [rax]
mov rsi, qword [rax + r11 + 2]
cmp rsi, qword [rax + rbx + 2]
jne 0x140146710
lea rdi, [rax + r11]
add rdi, 0xa
lea rsi, [rax + 8]
cmp rdi, r12
jae 0x1401466fd
lea rdi, [rax + rbx]
add rdi, 0xa
mov rax, rsi
cmp rdi, rcx
jb 0x1401466d0
lea rdi, [rsi + r11]
add rdi, 2
lea rax, [rsi + rbx]
add rax, 2
jmp 0x14014671f
lea rdi, [rax + r11]
add rdi, 2
add rax, rbx
add rax, 2
cmp rcx, rax
seta bl
cmp r12, rdi
jbe 0x1401467c8
inc rax
nop word cs:[rax + rax]
test bl, 1
je 0x140146770
movzx ebx, byte [rdi]
movzx esi, byte [rax - 1]
cmp bl, sil
jne 0x140146780
inc rdi
cmp rax, rcx
setb bl
inc rax
cmp rdi, r12
jb 0x140146740
jmp 0x1401467c8
mov ebx, 1
jmp 0x140146784
sub ebx, esi
jle 0x1401467cd
add rdx, 4
mov rax, qword [rsp + 0x68]
nop dword [rax]
mov dword [rdx - 8], ebp
cmp rdx, rax
jae 0x1401467e0
mov ebp, dword [rdx]
add rdx, 4
test ebp, ebp
js 0x140146790
add rdx, 0xfffffffffffffffc
mov rsi, qword [rsp + 0x50]
jmp 0x1401466a1
movsxd rax, ebp
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 ebx, bl
neg ebx
mov r12, r15
mov rax, qword [rsp + 0x68]
test ebx, ebx
jne 0x140146660
jmp 0x1401467eb
mov r12, r15
test ebx, ebx
jne 0x140146660
not dword [rdx]
jmp 0x140146660
movsxd r9, r8d
mov r15d, dword [rsi + r9*4]
cmp r15d, dword [rsp + 0x1e8]
mov qword [rsp + 0x58], r12
jge 0x1401468b0
mov edx, r15d
sar edx, 8
movsxd rdx, edx
mov rcx, qword [rsp + 0x1e0]
movzx r11d, byte [rcx + rdx]
mov rdi, qword [rsp + 0x68]
lea rdx, [rdi - 4]
movsxd rbp, dword [rdi - 4]
mov ebp, dword [rsi + rbp*4]
sar ebp, 8
movsxd rbp, ebp
movzx ebx, byte [rcx + rbp]
cmp r11b, bl
jne 0x140146ab8
mov ecx, r15d
nop word cs:[rax + rax]
cmp r12, rdx
jae 0x140146f36
movsxd rbp, dword [r12 + 4]
add r12, 4
mov rsi, qword [rsp + 0x50]
mov esi, dword [rsi + rbp*4]
mov edi, esi
sub edi, ecx
mov ecx, esi
cmp edi, 0x100
je 0x140146860
mov rcx, qword [rsp + 0x68]
sub rcx, qword [rsp + 0x58]
cmp rcx, 0xc
jle 0x140146bd0
add r12, 0xfffffffffffffffc
jmp 0x140146af8
mov rcx, qword [rsp + 0x68]
lea rdx, [rcx - 4]
mov esi, r15d
nop dword [rax]
cmp r12, rdx
jae 0x1401469db
movsxd rcx, dword [r12 + 4]
add r12, 4
mov rdi, qword [rsp + 0x50]
mov edi, dword [rdi + rcx*4]
mov ecx, edi
sub ecx, esi
mov esi, edi
cmp ecx, 0x100
je 0x1401468c0
jmp 0x140146bd0
jbe 0x1401465a5
mov dword [r12 - 4], r9d
add r12, 4
cmp r12, qword [rsp + 0x68]
jae 0x1401465a5
mov r9d, dword [r12]
test r9d, r9d
js 0x1401468f6
mov rcx, qword [rsp + 0x50]
movsxd rsi, dword [rcx + r9*4]
movsxd rbp, dword [rcx + r9*4 + 4]
mov rcx, qword [rsp + 0x80]
lea rbx, [rcx + rsi]
add rbp, rcx
mov rcx, r8
cmp r8, rdi
jae 0x14014699e
cmp rbx, rbp
jae 0x14014699e
mov rbx, qword [rsp + 0x70]
nop word cs:[rax + rax]
mov rcx, qword [rbx + rax + 2]
cmp rcx, qword [rbx + rsi + 2]
jne 0x14014698f
lea rcx, [rbx + rax]
add rcx, 0xa
lea rdx, [rbx + 8]
cmp rcx, rdi
jae 0x14014697d
lea rcx, [rbx + rsi]
add rcx, 0xa
mov rbx, rdx
cmp rcx, rbp
jb 0x140146950
lea rcx, [rdx + rax]
add rcx, 2
lea rbx, [rdx + rsi]
add rbx, 2
jmp 0x14014699e
lea rcx, [rbx + rax]
add rcx, 2
add rbx, rsi
add rbx, 2
cmp rdi, rcx
jbe 0x1401465a5
cmp rbp, rbx
seta dl
inc rbx
test dl, 1
je 0x1401468f6
movzx edx, byte [rbx - 1]
cmp byte [rcx], dl
jne 0x1401468f0
inc rcx
cmp rbx, rbp
setb dl
inc rbx
cmp rcx, rdi
jb 0x1401469b0
jmp 0x1401465a5
mov r8, qword [rsp + 0x68]
sub r8, qword [rsp + 0x58]
cmp r8, 4
mov r11, qword [rsp + 0x60]
je 0x1401465aa
mov rbp, r8
sar rbp, 2
mov ecx, r15d
sar ecx, 8
movsxd rcx, ecx
mov rdx, qword [rsp + 0x1e0]
movzx ecx, byte [rdx + rcx]
mov r9, qword [rsp + 0x1d8]
movzx esi, byte [r9 + rcx*2]
movzx edi, r15b
mov edx, esi
sub edx, edi
movzx r9d, byte [r9 + rcx*2 + 1]
test esi, esi
je 0x140146f95
cmp edx, 2
jl 0x140146f95
cmp edi, esi
jae 0x140146f95
cmp rbp, qword [rsp + 0xf0]
jl 0x140146f95
cmp ax, r10w
mov r9, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x68]
jae 0x14014701e
mov rax, r12
nop
movsxd rcx, dword [rax]
mov edx, dword [r9 + rcx*4]
sar edx, 8
movsxd rdx, edx
movsx edx, byte [r11 + 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 [r11 + rbp*4 + 0x300], edi
add rax, 4
cmp rax, rsi
jb 0x140146a70
jmp 0x14014701e
mov rcx, rdi
sub rcx, r12
cmp rcx, 0xd
jl 0x140146bd0
mov edi, r15d
mov rbp, qword [rsp + 0x58]
mov r12, rbp
cmp rbp, rdx
jae 0x140146af8
lea rbp, [r12 + 4]
movsxd rcx, dword [r12 + 4]
mov rsi, qword [rsp + 0x50]
mov ecx, dword [rsi + rcx*4]
mov esi, ecx
sub esi, edi
mov edi, ecx
cmp esi, 0x100
je 0x140146ad0
movsxd rcx, dword [r12]
mov rsi, qword [rsp + 0x50]
mov edi, dword [rsi + rcx*4]
mov ecx, edi
sar ecx, 8
movsxd rcx, ecx
mov rsi, qword [rsp + 0x1e0]
cmp r11b, byte [rsi + rcx]
jne 0x140146bd0
movsxd rcx, dword [r12 + 4]
mov rsi, qword [rsp + 0x50]
mov ecx, dword [rsi + rcx*4]
mov dword [rsp + 0x90], ecx
sar ecx, 8
movsxd rcx, ecx
mov rsi, qword [rsp + 0x1e0]
cmp byte [rsi + rcx], bl
jne 0x140146bd0
mov rcx, qword [rsp + 0x1d8]
movzx ecx, byte [rcx + r11*2]
movzx esi, dil
mov ebp, ecx
sub ebp, esi
jbe 0x140146b65
cmp ebp, 6
jl 0x140146bd0
cmp esi, ecx
setb bpl
mov rcx, qword [rsp + 0x1d8]
cmp byte [rcx + r11*2 + 1], dil
setb cl
or cl, bpl
cmp cl, 1
jne 0x140146bd0
xor esi, 0xfe
cmp esi, 6
jb 0x140146bd0
mov ecx, dword [rsp + 0x90]
cmp ecx, dword [rsp + 0x1e8]
jge 0x140146bd0
mov rcx, qword [rsp + 0x1d8]
movzx esi, byte [rcx + rbx*2]
movzx ebp, byte [rsp + 0x90]
mov edi, esi
sub edi, ebp
jbe 0x140147503
cmp edi, 6
jge 0x140147503
nop word cs:[rax + rax]
movsxd r12, r15d
mov rax, qword [rsp + 0x68]
sub rax, qword [rsp + 0x58]
cmp rax, 0xc
je 0x140146c56
cmp rax, 8
jne 0x140146d7d
mov ebp, r8d
mov rax, qword [rsp + 0x58]
movsxd rdi, dword [rax + 4]
mov rax, qword [rsp + 0x50]
movsxd rdx, dword [rax + rdi*4]
mov esi, dword [rax + r9*4 + 4]
sub esi, r15d
mov ebx, dword [rax + rdi*4 + 4]
sub ebx, edx
cmp esi, ebx
mov eax, ebx
cmovl eax, esi
movsxd r8, eax
mov rax, qword [rsp + 0x80]
add rdx, rax
add r12, rax
mov rcx, r12
call fcn.14038cb40
test eax, eax
mov r11, qword [rsp + 0x60]
js 0x1401465aa
jne 0x140146c47
cmp esi, ebx
jle 0x1401470e7
mov rax, qword [rsp + 0x58]
mov dword [rax], edi
mov dword [rax + 4], ebp
jmp 0x1401465aa
mov dword [rsp + 0x88], r8d
mov rdx, qword [rsp + 0x58]
movsxd rbp, dword [rdx + 8]
mov rcx, qword [rsp + 0x50]
movsxd rbx, dword [rcx + rbp*4]
mov qword [rsp + 0x68], rbx
mov eax, dword [rcx + r9*4 + 4]
sub eax, r15d
mov qword [rsp + 0x98], rbp
mov r15d, dword [rcx + rbp*4 + 4]
sub r15d, ebx
xor edi, edi
cmp eax, r15d
setl dil
neg edi
cmp eax, r15d
movsxd rdx, dword [rdx + 4]
movsxd r9, dword [rcx + rdx*4]
mov qword [rsp + 0x78], rdx
mov esi, dword [rcx + rdx*4 + 4]
mov ecx, r15d
cmovl ecx, eax
mov edx, 1
cmovg edi, edx
sub esi, r9d
xor ebx, ebx
cmp eax, esi
setl bl
neg ebx
cmp eax, esi
cmovge eax, esi
movsxd r8, eax
movsxd rax, ecx
mov qword [rsp + 0xc0], rax
cmovg ebx, edx
mov rbp, qword [rsp + 0x80]
mov rdx, r9
add rdx, rbp
mov qword [rsp + 0xb8], rdx
add r12, rbp
mov rcx, r12
call fcn.14038cb40
mov dword [rsp + 0x90], eax
mov rdx, qword [rsp + 0x68]
add rdx, rbp
mov rcx, r12
mov rbp, rdx
mov r8, qword [rsp + 0xc0]
call fcn.14038cb40
mov r12d, eax
cmp esi, r15d
mov eax, r15d
cmovl eax, esi
movsxd r8, eax
mov rcx, qword [rsp + 0xb8]
mov rdx, rbp
call fcn.14038cb40
mov ecx, dword [rsp + 0x90]
test ecx, ecx
cmovne ebx, ecx
test r12d, r12d
cmovne edi, r12d
test eax, eax
mov r11, qword [rsp + 0x60]
jne 0x14014703c
xor eax, eax
cmp esi, r15d
setl cl
jle 0x140147038
mov ebp, ebx
shr ebp, 0x1f
mov eax, 1
xor edx, edx
jmp 0x140147052
mov rax, qword [rsp + 0x68]
lea r10, [rax - 8]
cmp r10, qword [rsp + 0x58]
mov r11, qword [rsp + 0x60]
jae 0x140146db1
jmp 0x1401465aa
mov dword [rdx - 4], r9d
add r10, 0xfffffffffffffffc
cmp r10, rax
jb 0x1401465aa
movsxd r9, dword [r10]
lea rdx, [r10 + 4]
mov ebp, dword [r10 + 4]
mov rsi, qword [rsp + 0x50]
movsxd r11, dword [rsi + r9*4]
movsxd r12, dword [rsi + r9*4 + 4]
mov rbx, qword [rsp + 0x80]
lea r8, [rbx + r11]
add r12, rbx
cmp r8, r12
jae 0x140146f00
movsxd rax, ebp
movsxd rdi, dword [rsi + rax*4]
movsxd rcx, dword [rsi + rax*4 + 4]
lea rax, [rbx + rdi]
add rcx, rbx
mov rsi, r8
cmp rax, rcx
jae 0x140146e5f
mov rax, qword [rsp + 0x70]
nop word cs:[rax + rax]
mov rsi, qword [rax + r11 + 2]
cmp rsi, qword [rax + rdi + 2]
jne 0x140146e50
lea rsi, [rax + r11]
add rsi, 0xa
lea rbx, [rax + 8]
cmp rsi, r12
jae 0x140146e3d
lea rsi, [rax + rdi]
add rsi, 0xa
mov rax, rbx
cmp rsi, rcx
jb 0x140146e10
lea rsi, [rbx + r11]
add rsi, 2
lea rax, [rbx + rdi]
add rax, 2
jmp 0x140146e5f
lea rsi, [rax + r11]
add rsi, 2
add rax, rdi
add rax, 2
cmp rcx, rax
seta bl
cmp r12, rsi
jbe 0x140146f18
inc rax
nop word cs:[rax + rax]
test bl, 1
je 0x140146eb0
movzx ebx, byte [rsi]
movzx edi, byte [rax - 1]
cmp bl, dil
jne 0x140146ec0
inc rsi
cmp rax, rcx
setb bl
inc rax
cmp rsi, r12
jb 0x140146e80
jmp 0x140146f18
mov ebx, 1
jmp 0x140146ec4
sub ebx, edi
jle 0x140146f1d
add rdx, 4
mov rax, qword [rsp + 0x68]
nop dword [rax]
mov dword [rdx - 8], ebp
cmp rdx, rax
jae 0x140146f1d
mov ebp, dword [rdx]
add rdx, 4
test ebp, ebp
js 0x140146ed0
add rdx, 0xfffffffffffffffc
mov rsi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x80]
jmp 0x140146de2
movsxd rax, ebp
movsxd rcx, dword [rsi + rax*4]
movsxd rax, dword [rsi + rax*4 + 4]
add rcx, rbx
add rax, rbx
cmp rax, rcx
seta bl
movzx ebx, bl
neg ebx
mov r11, qword [rsp + 0x60]
mov rax, qword [rsp + 0x58]
test ebx, ebx
jne 0x140146da0
not dword [rdx]
jmp 0x140146da0
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x38], rax
mov rsi, qword [rsp + 0x60]
mov qword [rsp + 0x30], rsi
mov rax, qword [rsp + 0x1e0]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x1d8]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
mov r9, qword [rsp + 0x68]
call fcn.140147de0
mov r11, rsi
jmp 0x1401465aa
cmp edi, 0xfc
mov r12, qword [rsp + 0x58]
ja 0x140147091
cmp r9b, r15b
jae 0x140147091
cmp rbp, qword [rsp + 0xf0]
jl 0x140147091
cmp ax, r10w
mov r9, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x68]
jae 0x14014701e
mov rax, r12
movsxd rcx, dword [rax]
mov edx, dword [r9 + rcx*4]
sar edx, 8
movsxd rdx, edx
mov rbp, qword [rsp + 0xe8]
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 0x140146fd0
mov rcx, r12
mov rdx, qword [rsp + 0xa8]
call fcn.14038cc40
mov r11, qword [rsp + 0x60]
jmp 0x1401465aa
mov al, cl
neg eax
mov ebp, ebx
shr ebp, 0x1f
mov edx, eax
shr edx, 0x1f
test ebx, ebx
jns 0x140147052
test eax, eax
js 0x1401465aa
test ebx, ebx
jle 0x140147075
test edi, edi
jns 0x140147075
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x78]
mov dword [rax], ecx
mov ecx, dword [rsp + 0x88]
mov dword [rax + 4], ecx
jmp 0x1401465aa
test ebx, ebx
mov rsi, qword [rsp + 0x58]
jle 0x1401470c7
test eax, eax
jle 0x1401470c7
mov rax, qword [rsp + 0x98]
mov dword [rsi], eax
jmp 0x140147144
mov eax, edi
not al
movzx ebx, al
lea ebp, [rbx + 5]
cmp edi, esi
jae 0x1401470fc
sub r9d, esi
mov ecx, ebp
lea ebp, [r9 + rdx]
inc ebp
mov edi, ebx
mov ebx, edx
mov rax, qword [rsp + 0x68]
lea r12, [rax - 8]
cmp r12, qword [rsp + 0x58]
jb 0x1401465aa
jmp 0x140147173
test eax, eax
jle 0x140147122
test edi, edi
jns 0x140147122
mov rax, qword [rsp + 0x98]
mov dword [rsi + 4], eax
mov rax, qword [rsp + 0x78]
mov dword [rsi + 8], eax
jmp 0x1401465aa
jl 0x1401465aa
not edi
mov rax, qword [rsp + 0x58]
mov dword [rax + 4], edi
jmp 0x1401465aa
cmp edi, r9d
mov rax, qword [rsp + 0x68]
jbe 0x140147153
lea edi, [rsi + rbx]
inc edi
lea ecx, [r9 + rbx]
inc ecx
lea r12, [rax - 8]
cmp r12, qword [rsp + 0x58]
jb 0x1401465aa
jmp 0x140147173
test edi, edi
setg cl
and dl, cl
cmp dl, 1
jne 0x1401474d9
mov rax, qword [rsp + 0x78]
mov dword [rsi], eax
mov rax, qword [rsp + 0x98]
mov dword [rsi + 4], eax
mov eax, dword [rsp + 0x88]
mov dword [rsi + 8], eax
jmp 0x1401465aa
sub r9d, edi
inc r9d
mov ecx, ebp
mov ebp, r9d
mov edi, ebx
mov bx, 2
lea r12, [rax - 8]
cmp r12, qword [rsp + 0x58]
jb 0x1401465aa
cmp di, cx
setb dl
movzx r15d, di
movzx eax, cx
mov qword [rsp + 0x88], rax
cmp bx, bp
jae 0x140147398
movzx esi, bx
movzx eax, bp
test dl, 1
mov qword [rsp + 0x90], rsi
je 0x14014757d
sub rax, rsi
mov qword [rsp + 0xc0], rax
sub qword [rsp + 0x88], r15
mov qword [rsp + 0xb8], r15
jmp 0x1401471e7
mov rax, qword [rsp + 0x78]
mov dword [rdx - 4], eax
add r12, 0xfffffffffffffffc
cmp r12, qword [rsp + 0x58]
jb 0x1401465aa
movsxd rax, dword [r12]
lea rdx, [r12 + 4]
mov rbp, qword [rsp + 0x50]
mov qword [rsp + 0x78], rax
movsxd r11, dword [rbp + rax*4]
mov ecx, dword [r12 + 4]
lea rbx, [rsi + r11]
mov r9, r11
add r9, r15
movsxd rax, ecx
movsxd r8, dword [rbp + rax*4]
lea rdi, [rsi + r8]
mov r15, rbx
mov r10, qword [rsp + 0xc0]
nop word cs:[rax + rax]
mov rax, qword [rsp + 0xa0]
cmp rbx, rax
jg 0x1401472d0
cmp rdi, rax
jg 0x1401472d0
mov rax, qword [rsp + 0x70]
movzx ebp, byte [rax + rbx]
movzx esi, byte [rax + rdi]
cmp bpl, sil
jne 0x1401472e0
inc rdi
inc rbx
dec r10
jne 0x140147230
mov rax, qword [rsp + 0xb8]
lea rdi, [rax + r8]
mov rbx, r9
mov rbp, qword [rsp + 0x88]
mov rax, qword [rsp + 0xa0]
nop word [rax + rax]
cmp rbx, rax
jg 0x1401472d0
cmp rdi, rax
jg 0x1401472d0
mov rax, qword [rsp + 0x70]
movzx esi, byte [rax + rbx]
movzx eax, byte [rax + rdi]
cmp sil, al
jne 0x14014732b
inc rdi
inc rbx
dec rbp
mov rax, qword [rsp + 0xa0]
jne 0x140147290
jmp 0x14014735d
sub r8d, r11d
jmp 0x1401472e5
sub ebp, esi
mov r8d, ebp
test r8d, r8d
mov rbp, qword [rsp + 0x50]
mov rax, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x90]
jle 0x140147380
mov rbx, r15
add rdx, 4
mov r15, qword [rsp + 0xb8]
nop
mov dword [rdx - 8], ecx
cmp rdx, rax
jae 0x140147340
mov ecx, dword [rdx]
add rdx, 4
test ecx, ecx
js 0x140147310
add rdx, 0xfffffffffffffffc
jmp 0x14014720e
sub esi, eax
mov r8d, esi
jmp 0x1401472e5
mov r8d, 1
test r8d, r8d
mov r11, qword [rsp + 0x60]
jne 0x1401471d0
mov ecx, dword [rdx]
mov rax, qword [rsp + 0x78]
jmp 0x140147377
mov r11, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x90]
mov rax, qword [rsp + 0x78]
mov r15, qword [rsp + 0xb8]
not ecx
mov dword [rdx], ecx
jmp 0x1401471d5
mov r15, qword [rsp + 0xb8]
test r8d, r8d
mov r11, qword [rsp + 0x60]
jne 0x1401471d0
jmp 0x140147354
test dl, 1
je 0x1401473b0
sub qword [rsp + 0x88], r15
jmp 0x1401473e3
not dword [r12 + 4]
add r12, 0xfffffffffffffffc
cmp r12, qword [rsp + 0x58]
jae 0x1401473b0
jmp 0x1401465aa
mov ebp, dword [rdx]
mov r11, qword [rsp + 0x60]
not ebp
mov dword [rdx], ebp
mov dword [rdx - 4], r8d
add r12, 0xfffffffffffffffc
cmp r12, qword [rsp + 0x58]
jb 0x1401465aa
movsxd r8, dword [r12]
lea rdx, [r12 + 4]
mov rcx, qword [rsp + 0x50]
movsxd r9, dword [rcx + r8*4]
mov ebp, dword [r12 + 4]
mov r10, r9
add r10, r15
movsxd rax, ebp
movsxd r11, dword [rcx + rax*4]
mov rcx, r11
add rcx, r15
mov rbx, r10
mov rsi, qword [rsp + 0x88]
nop dword [rax + rax]
mov rax, qword [rsp + 0xa0]
cmp rbx, rax
jg 0x140147460
cmp rcx, rax
jg 0x140147460
mov rdi, qword [rsp + 0x70]
movzx eax, byte [rdi + rbx]
movzx edi, byte [rdi + rcx]
cmp al, dil
jne 0x140147480
inc rcx
inc rbx
dec rsi
jne 0x140147420
jmp 0x1401473c7
sub r11d, r9d
test r11d, r11d
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x68]
jg 0x140147494
jmp 0x1401474c6
sub eax, edi
mov r11d, eax
test r11d, r11d
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x68]
jle 0x1401474c6
add rdx, 4
nop dword [rax + rax]
mov dword [rdx - 8], ebp
cmp rdx, rax
jae 0x1401474c0
mov ebp, dword [rdx]
add rdx, 4
test ebp, ebp
js 0x1401474a0
add rdx, 0xfffffffffffffffc
jmp 0x140147400
mov r11d, 1
test r11d, r11d
je 0x1401473c5
mov r11, qword [rsp + 0x60]
jmp 0x1401473d0
test edi, edi
setg cl
and cl, bpl
cmp cl, 1
jne 0x1401476b1
mov eax, dword [rsp + 0x88]
mov dword [rsi + 4], eax
mov rax, qword [rsp + 0x98]
mov dword [rsi], eax
jmp 0x1401470da
cmp ebp, esi
setae r11b
mov rcx, qword [rsp + 0x1d8]
mov esi, dword [rsp + 0x90]
cmp byte [rcx + rbx*2 + 1], sil
setae cl
test r11b, cl
jne 0x140146bd0
xor ebp, 0xfe
cmp ebp, 6
jb 0x140146bd0
add r12, 4
mov esi, dword [rsp + 0x90]
movsxd rbx, esi
mov rdi, r12
nop dword [rax]
cmp rdi, rdx
jae 0x1401476f6
movsxd rcx, dword [rdi + 4]
add rdi, 4
mov rbp, qword [rsp + 0x50]
mov ebp, dword [rbp + rcx*4]
mov ecx, ebp
sub ecx, esi
mov esi, ebp
cmp ecx, 0x100
je 0x140147550
jmp 0x140146bd0
sub rax, rsi
mov qword [rsp + 0xc0], rax
mov r15, qword [rsp + 0xc0]
jmp 0x1401475c4
mov r11, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x90]
not ebp
mov dword [rdx], ebp
mov dword [rdx - 4], r8d
add r12, 0xfffffffffffffffc
cmp r12, qword [rsp + 0x58]
jb 0x1401465aa
movsxd r8, dword [r12]
lea rdx, [r12 + 4]
mov rcx, qword [rsp + 0x50]
movsxd r9, dword [rcx + r8*4]
mov ebp, dword [r12 + 4]
mov r10, r9
add r10, rsi
movsxd rax, ebp
movsxd r11, dword [rcx + rax*4]
mov rcx, r11
add rcx, rsi
mov rbx, r10
mov rsi, r15
nop word cs:[rax + rax]
mov rax, qword [rsp + 0xa0]
cmp rbx, rax
jg 0x140147640
cmp rcx, rax
jg 0x140147640
mov rdi, qword [rsp + 0x70]
movzx eax, byte [rdi + rbx]
movzx edi, byte [rdi + rcx]
cmp al, dil
jne 0x140147650
inc rcx
inc rbx
dec rsi
jne 0x140147600
jmp 0x1401475a0
sub r11d, r9d
jmp 0x140147655
sub eax, edi
mov r11d, eax
test r11d, r11d
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x90]
jle 0x140147696
add rdx, 4
mov dword [rdx - 8], ebp
cmp rdx, rax
jae 0x140147690
mov ebp, dword [rdx]
add rdx, 4
test ebp, ebp
js 0x140147670
add rdx, 0xfffffffffffffffc
jmp 0x1401475e1
mov r11d, 1
test r11d, r11d
je 0x1401476a5
mov r11, qword [rsp + 0x60]
jmp 0x1401475b1
mov ebp, dword [rdx]
mov r11, qword [rsp + 0x60]
jmp 0x1401475ad
test ebx, ebx
jne 0x1401476c8
test edi, edi
jns 0x1401476c8
mov rax, qword [rsp + 0x78]
not eax
mov dword [rsi + 4], eax
jmp 0x1401465aa
test ebx, ebx
jne 0x14014781d
test edi, edi
jle 0x14014781d
mov eax, dword [rsp + 0x88]
mov dword [rsi + 4], eax
mov rax, qword [rsp + 0x98]
mov dword [rsi], eax
mov rax, qword [rsp + 0x78]
jmp 0x140147950
lea edx, [r15 + 2]
cmp edx, dword [rsp + 0xd0]
mov r8, qword [rsp + 0x60]
jge 0x140147744
mov rdi, qword [rsp + 0xd0]
sub edi, r15d
add rdi, 0xfffffffffffffffe
add rbx, 2
mov rsi, qword [rsp + 0x70]
cmp rbx, qword [rsp + 0xa0]
jge 0x140147744
movsxd rbp, edx
movzx ecx, byte [rsi + rbx]
cmp byte [rsi + rbp], cl
jne 0x14014785f
inc edx
inc rbx
dec rdi
jne 0x140147720
cmp r15d, dword [rsp + 0x90]
jge 0x140147865
mov rsi, qword [rsp + 0x68]
sub rsi, r12
sub r12, qword [rsp + 0x58]
mov rbp, rsi
shr rbp, 2
cmp ax, r10w
mov rbx, qword [rsp + 0x50]
mov r11, r8
jae 0x1401477ac
mov rdx, qword [rsp + 0x58]
lea rax, [rdx + 4]
mov rcx, qword [rsp + 0x68]
cmp rcx, rax
cmova rax, rcx
mov r8, rdx
not r8
add r8, rax
and r8, 0xfffffffffffffffc
add r8, 4
mov rcx, qword [rsp + 0xa8]
call fcn.14038cc40
mov r11, qword [rsp + 0x60]
mov rdi, r12
shr rdi, 2
test ebp, ebp
jle 0x1401477e5
movsxd rax, edi
mov rcx, qword [rsp + 0xa8]
lea rdx, [rcx + rax*4]
movabs rax, 0x3fffffffc
and rsi, rax
mov rcx, qword [rsp + 0x58]
mov r8, rsi
call fcn.14038cc40
mov r11, qword [rsp + 0x60]
movsxd rsi, ebp
test edi, edi
mov rdi, qword [rsp + 0x58]
jle 0x140147817
lea rcx, [rdi + rsi*4]
movabs rax, 0x3fffffffc
and r12, rax
mov rdx, qword [rsp + 0xa8]
mov r8, r12
call fcn.14038cc40
mov r11, qword [rsp + 0x60]
lea r12, [rdi + rsi*4]
jmp 0x140147872
test edi, edi
sete cl
and cl, bpl
cmp cl, 1
jne 0x140147839
mov rax, qword [rsp + 0x98]
not eax
jmp 0x1401470d7
test edi, edi
jne 0x14014793b
test ebx, ebx
jle 0x14014793b
mov rax, qword [rsp + 0x78]
mov dword [rsi], eax
mov eax, dword [rsp + 0x88]
mov dword [rsi + 4], eax
jmp 0x140147948
ja 0x140147752
mov rbx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov r11, r8
mov rax, r12
sub rax, rdi
cmp rax, 5
jl 0x1401478cf
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r11
mov rax, qword [rsp + 0x1e0]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x1d8]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x70]
mov rdx, rbx
mov r8, rdi
mov r9, r12
call fcn.140147de0
mov r11, qword [rsp + 0x60]
mov rax, qword [rsp + 0x68]
sub rax, r12
cmp rax, 5
jl 0x1401465aa
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r11
mov rax, qword [rsp + 0x1e0]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x1d8]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x50]
mov r8, r12
mov r9, qword [rsp + 0x68]
call fcn.140147de0
mov r11, qword [rsp + 0x60]
jmp 0x1401465aa
test eax, eax
sete cl
and cl, bpl
cmp cl, 1
jne 0x14014795a
mov rax, qword [rsp + 0x98]
not eax
mov dword [rsi + 8], eax
jmp 0x1401465aa
test eax, eax
jne 0x140147978
test ebx, ebx
jle 0x140147978
mov rax, qword [rsp + 0x78]
mov dword [rsi], eax
mov rax, qword [rsp + 0x98]
not eax
jmp 0x140147141
or ebx, eax
jne 0x1401465aa
mov rcx, qword [rsp + 0x78]
not ecx
mov rax, qword [rsp + 0x58]
mov dword [rax + 4], ecx
mov rcx, qword [rsp + 0x98]
not ecx
mov dword [rax + 8], ecx
jmp 0x1401465aa
mov eax, r14d
mov edx, eax
mov ebp, dword [r13 + rdx*4]
test ebp, ebp
js 0x1401479eb
xor eax, eax
nop word cs:[rax + rax]
mov rcx, rdx
mov edx, ebp
mov word [rbx + rdx*2], cx
test ecx, ecx
jle 0x140147a26
mov ebp, dword [r13 + rcx*4 - 4]
dec eax
lea rdx, [rcx - 1]
test ebp, ebp
jns 0x1401479c0
mov dword [r13 + rdx*4 + 4], eax
test ecx, 0xfffffffe
je 0x140147a2d
mov eax, edx
movsxd rcx, eax
lea rdx, [rcx*4]
add rdx, r13
mov ebp, dword [r13 + rcx*4]
inc ecx
not ebp
mov dword [rdx], ebp
movsxd rbp, ebp
mov word [rbx + rbp*2], ax
mov ebp, dword [rdx - 4]
add rdx, 0xfffffffffffffffc
dec ecx
test ebp, ebp
js 0x140147a00
mov word [rbx + rbp*2], ax
lea eax, [rcx - 2]
cmp ecx, 1
jg 0x1401479a4
jmp 0x140147a2d
dec eax
mov dword [r13 + rcx*4], eax
mov rcx, rbx
mov rdx, r13
mov r8, qword [rsp + 0x108]
mov r9d, 1
call fcn.1401481e0
cmp dword [rsp + 0xd0], 0
jle 0x140147b23
mov rax, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x120]
movzx edi, byte [rax + rsi]
lea r8, [rax - 1]
mov r9d, esi
lea r10, [r8 + r9]
lea ebp, [rsi - 1]
add esi, 0xfffffffe
xor edx, edx
mov ecx, edi
nop word [rax + rax]
mov ebx, ebp
mov rbp, r9
add rbp, rdx
je 0x140147b23
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 0x140147a80
lea rcx, [r9 + rdx]
lea ebp, [rcx + 1]
cmp ebp, 1
jle 0x140147ad9
mov eax, eax
add rax, qword [rsp + 0x70]
mov ebp, edi
mov r10, qword [rsp + 0x60]
nop
movzx edi, byte [rax]
dec ebx
cmp ebp, edi
jb 0x140147ae7
dec rax
mov ebp, edi
test ebx, ebx
jg 0x140147ac0
mov esi, 0xffffffff
jmp 0x140147ae9
lea esi, [r9 - 1]
add rsi, rdx
mov r10, qword [rsp + 0x60]
jmp 0x140147ae9
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 + 0x100]
movzx eax, word [r10 + rcx*2 - 2]
dec rcx
mov qword [rsp + 0x100], rcx
mov dword [r13 + rax*4], edx
test esi, esi
jns 0x140147a69
mov rax, qword [rsp + 0xd0]
mov dword [r12 + 0x3fffc], eax
mov r9d, 0xfe
jmp 0x140147b6c
mov eax, r8d
or eax, r9d
lea edx, [r9 + 1]
cdqe
mov ebp, ecx
sub ebp, dword [r12 + rax*4]
inc ebp
or edx, r8d
movsxd rdx, edx
mov dword [r12 + rdx*4], ebp
mov dword [r12 + rax*4], ecx
sub r9, 1
jb 0x140147c4a
mov r8d, r9d
shl r8d, 8
mov ecx, dword [r15 + r9*4 + 4]
dec ecx
mov ebp, 0xff
jmp 0x140147b9c
dec ebx
mov r14d, ebx
dec ebp
cmp ebp, r9d
jbe 0x140147b40
mov eax, ecx
mov edx, ebp
shl edx, 8
or edx, r9d
movsxd rdx, edx
sub ecx, dword [r12 + rdx*4]
mov dword [r12 + rdx*4], eax
mov eax, ebp
or eax, r8d
cdqe
movsxd rbx, dword [r12 + rax*4]
cmp ebx, r14d
jg 0x140147b95
movsxd rcx, ecx
movsxd rsi, r14d
sub r14d, ebx
inc r14d
mov r10, rsi
sub r10, rbx
and r14, 3
je 0x140147bf8
mov rax, r13
xor edx, edx
nop
mov edi, dword [rax + rsi*4]
mov dword [rax + rcx*4], edi
inc rdx
add rax, 0xfffffffffffffffc
cmp r14, rdx
jne 0x140147be0
sub rsi, rdx
sub rcx, rdx
cmp r10, 3
jb 0x140147b90
inc rsi
nop word cs:[rax + rax]
mov eax, dword [r13 + rsi*4 - 4]
mov dword [r13 + rcx*4], eax
mov eax, dword [r13 + rsi*4 - 8]
mov dword [r13 + rcx*4 - 4], eax
mov eax, dword [r13 + rsi*4 - 0xc]
mov dword [r13 + rcx*4 - 8], eax
mov eax, dword [r13 + rsi*4 - 0x10]
mov dword [r13 + rcx*4 - 0xc], eax
add rcx, 0xfffffffffffffffc
add rsi, 0xfffffffffffffffc
cmp rsi, rbx
jg 0x140147c10
jmp 0x140147b90
lea r8, [r13 - 4]
mov r9d, 0xfe
mov r14, qword [rsp + 0x70]
jmp 0x140147c6a
sub r9, 1
jb 0x140147d0b
lea eax, [r9 + 1]
mov r10d, r9d
shl r10d, 8
or eax, r10d
cdqe
movsxd rax, dword [r12 + rax*4]
lea r11, [rax*4]
add r11, r13
movsxd rax, dword [r15 + r9*4 + 4]
lea rbx, [r8 + rax*4]
cmp r11, rbx
ja 0x140147c60
mov eax, 0xffffffff
xor esi, esi
jmp 0x140147cb3
mov ecx, eax
mov dword [rsi], edi
add rsi, 0xfffffffffffffffc
mov eax, ecx
add rbx, 0xfffffffffffffffc
cmp r11, rbx
ja 0x140147c60
mov edx, dword [rbx]
mov ecx, edx
not ecx
mov dword [rbx], ecx
test edx, edx
jle 0x140147caa
lea ebp, [rdx - 1]
movzx ecx, byte [r14 + rbp]
xor edi, edi
cmp edx, 1
je 0x140147cdc
lea edi, [rdx - 2]
neg edx
cmp byte [r14 + rdi], cl
cmova ebp, edx
mov edi, ebp
cmp eax, ecx
je 0x140147ca0
test eax, eax
js 0x140147cf4
sub rsi, r13
shr rsi, 2
or eax, r10d
cdqe
mov dword [r12 + rax*4], esi
lea eax, [r10 + rcx]
cdqe
movsxd rax, dword [r12 + rax*4]
lea rsi, [rax*4]
add rsi, r13
jmp 0x140147ca2
mov rcx, qword [rsp + 0x120]
movzx eax, byte [r14 + rcx]
mov rbp, qword [rsp + 0xd0]
mov edx, ebp
neg edx
mov rbx, qword [rsp + 0xa0]
cmp byte [rbx + r14 - 2], al
cmovae edx, ecx
movsxd rcx, dword [r15 + rax*4]
mov dword [r13 + rcx*4], edx
test ebp, ebp
jle 0x140147dc0
lea rdx, [rcx*4]
add rdx, r13
lea r8, [rbx*4]
add r8, r13
add rdx, 4
mov rbp, r13
jmp 0x140147d6e
not ebx
mov dword [rbp], ebx
add rbp, 4
cmp rbp, r8
jae 0x140147dc0
mov ebx, dword [rbp]
test ebx, ebx
jle 0x140147d60
mov esi, ebx
dec esi
movzx edi, byte [r14 + rsi]
je 0x140147d89
lea ecx, [rbx - 2]
cmp byte [r14 + rcx], dil
jae 0x140147d8d
neg ebx
mov esi, ebx
cmp eax, edi
je 0x140147db1
sub rdx, r13
shr rdx, 2
mov eax, eax
mov dword [r15 + rax*4], edx
mov eax, edi
movsxd rax, dword [r15 + rax*4]
lea rdx, [rax*4]
add rdx, r13
mov eax, edi
mov dword [rdx], esi
add rdx, 4
add rbp, 4
cmp rbp, r8
jb 0x140147d6e
xor eax, eax
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret