Function at 0x1403af430
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0x598
mov rbp, rcx
xor r10d, r10d
xor r11d, r11d
mov rax, qword [0x14194d6d8]
xor rax, rsp
mov r12, r10
mov qword [rsp + 0x5e8], rdx
mov edx, 1
mov qword [rsp + 0x588], rax
xor al, al
mov qword [rsp + 0x5f0], r8
mov sil, al
mov r15, qword [rbp + 8]
mov rdi, rdx
mov qword [rsp + 0x128], 0
mov r13, r9
mov qword [rsp + 0x190], r10
mov dword [rsp + 0x168], r11d
mov qword [rsp + 0x170], rbp
mov ebp, r8d
jmp 0x1403af4b5
mov ebp, dword [rsp + 0x158]
mov r14b, byte [r15 + 0x295]
lea rcx, [rsp + 0x5e8]
and r14b, 0x10
lea rdx, [rsp + 0x5f0]
shr r14b, 4
lea r8, [rsp + 0x130]
lea r9, [rsp + 0x198]
call fcn.1403ca9c0
mov ebx, eax
test ebx, ebx
jne 0x1403b1d16
mov r11d, dword [rsp + 0x140]
cmp r11d, 2
je 0x1403b1cdc
cmp r11d, 1
je 0x1403b1c70
mov r8b, byte [r15 + 0x295]
test r8b, 0x20
je 0x1403af55c
cmp byte [r15 + 0x280], 0
jne 0x1403af55c
cmp qword [rsp + 0x148], 1
jle 0x1403af55c
lea ebp, [r11 - 5]
cmp ebp, 0xc
jbe 0x1403af555
lea ebp, [r11 - 0x19]
cmp ebp, 6
jbe 0x1403af555
lea ebp, [r11 - 0x32]
cmp ebp, 2
jbe 0x1403af555
lea ebp, [r11 - 0x28]
cmp ebp, 8
ja 0x1403af55c
mov ebp, 1
jmp 0x1403af55e
xor ebp, ebp
mov r10d, dword [rsp + 0x198]
lea edi, [r10 - 7]
cmp edi, 1
ja 0x1403af6ef
mov r13, qword [rsp + 0x148]
test r13, r13
je 0x1403af6dc
mov rcx, qword [rsp + 0x138]
mov rax, rcx
cqo
idiv r13
mov rdi, rax
test rdi, rdi
je 0x1403af6de
lea eax, [r11 - 0x1c]
cmp eax, 0x10
ja 0x1403af5c7
mov dword [rsp + 0x168], 1
mov r12d, 1
cmp r10d, 7
jne 0x1403af5d8
lea r10, [r13 + r13]
jmp 0x1403af5db
cmp r11d, 0x34
je 0x1403af5a9
mov dword [rsp + 0x168], 0
mov r10, r13
mov r11d, dword [rsp + 0x19c]
test r11d, r11d
jle 0x1403af679
cmp r10, qword [rsp + 0x1b8]
jne 0x1403af612
mov r10, qword [rsp + 0x1b0]
cmp r10, qword [rsp + 0x1a8]
jg 0x1403af612
cmp r10, 1
je 0x1403b085a
movsxd r10, r11d
cmp r10, 2
jl 0x1403b0852
and r11d, 0xfffffffe
xor eax, eax
movsxd r11, r11d
lea rdx, [rax + rax*2]
movq xmm0, qword [rsp + rdx*8 + 0x1b0]
movhpd xmm0, qword [rsp + rdx*8 + 0x1c8]
movdqu xmmword [rsp + rax*8 + 0x490], xmm0
add rax, 2
cmp rax, r11
jb 0x1403af628
lea rax, [r11 + r11*2]
shl rax, 3
cmp r11, r10
jae 0x1403af679
mov rdx, qword [rsp + rax + 0x1b0]
add rax, 0x18
mov qword [rsp + r11*8 + 0x490], rdx
inc r11
cmp r11, r10
jb 0x1403af65d
xor r10d, r10d
lea rcx, [rsp + 0x198]
mov dword [rcx - 0xf8], r10d
lea rdx, [rsp + 0x490]
call fcn.1403b8010
mov r10d, dword [rsp + 0xa0]
mov qword [rsp + 0x130], rax
test r10d, r10d
mov r10d, 0
mov r11d, dword [rsp + 0x168]
cmovne r11d, r10d
mov r10d, 0
mov dword [rsp + 0x168], r11d
cmovne r12, r10
or byte [r15 + 0x299], 0x80
jmp 0x1403af7d7
xor edi, edi
mov qword [rsp + 0x190], 1
jmp 0x1403af7d7
add r10d, 0xfffffffb
cmp r10d, 1
ja 0x1403af775
mov edi, 1
cmp qword [rsp + 0x148], 0
je 0x1403af764
mov r13, qword [rsp + 0x138]
test r13, r13
je 0x1403af767
test r8b, 0x10
je 0x1403af75a
mov rdx, r15
lea rcx, [rsp + 0x130]
call fcn.1403b88d0
test eax, eax
je 0x1403af757
test ebp, ebp
jne 0x1403af75a
mov r13, qword [rsp + 0x148]
test r13, r13
je 0x1403af753
mov rax, qword [rsp + 0x138]
cqo
idiv r13
mov rdi, rax
jmp 0x1403af75a
xor edi, edi
jmp 0x1403af75a
xor r14b, r14b
or byte [r15 + 0x299], 0x80
jmp 0x1403af7d7
xor r13d, r13d
mov qword [rsp + 0x190], 1
jmp 0x1403af7d7
lea edi, [r11 - 0x1c]
cmp edi, 0x10
jbe 0x1403af7bc
cmp r11d, 0x34
je 0x1403af7bc
mov r13, qword [rsp + 0x138]
mov edi, 1
or byte [r15 + 0x299], 0x80
test r13, r13
jne 0x1403af7d7
cmp dword [rsp + 0x140], 0x3f
mov r11, qword [rsp + 0x190]
cmovne r11, rdi
mov qword [rsp + 0x190], r11
jmp 0x1403af7d7
mov r13, qword [rsp + 0x148]
mov edi, 2
or byte [r15 + 0x299], 0x80
mov r12d, 1
mov dword [rsp + 0x178], ebx
mov byte [rsp + 0x160], r14b
mov dword [rsp + 0x158], ebp
mov r10b, byte [r15 + 0x297]
test r10b, 0x20
je 0x1403af877
movzx ebx, word [r15 + 0x27a]
test ebx, ebx
jg 0x1403af877
and r10b, 0xdf
mov byte [r15 + 0x297], r10b
cmp rdi, 1
je 0x1403b1c44
xor edx, edx
mov rcx, r15
xor r8d, r8d
call fcn.1403e0880
test eax, eax
jne 0x1403b1b2f
mov rdx, qword [r15 + 0x80]
mov r10b, byte [r15 + 0x297]
inc qword [r15 + 0x148]
and r10b, 0xfb
mov qword [r15 + 0x98], rdx
mov byte [r15 + 0x297], r10b
cmp byte [r15 + 0x27c], 3
je 0x1403b19da
mov qword [r15 + 0x110], 0
mov dword [rsp + 0x178], eax
test sil, sil
jne 0x1403b1427
cmp qword [rsp + 0x190], 0
jne 0x1403b07c9
cmp dword [rsp + 0x140], 0x3f
je 0x1403b13d3
mov rcx, qword [rsp + 0x148]
mov rbx, r13
mov r8, qword [rsp + 0x130]
xor edx, edx
mov qword [rsp + 0x188], r8
mov r14b, 1
mov qword [rsp + 0x180], r13
lea r9, [rcx - 1]
mov r11, r9
and r11, 0xfffffffffffffffd
cmp r11, 1
je 0x1403af8e3
mov r11, r9
and r11, 0xfffffffffffffff7
cmp r11, 7
jne 0x1403af8f7
mov rbp, r9
mov al, 1
mov r11, qword [r15 + 0x80]
and rbp, r8
and r9, r11
jmp 0x1403af906
mov r11, qword [r15 + 0x80]
xor al, al
mov ebp, r8d
mov r9d, r11d
test r10b, 0x40
jne 0x1403b033d
cmp dword [r15 + 0x238], 7
je 0x1403b02c2
test byte [r15 + 0x29c], 1
jne 0x1403b1e2d
mov r10, qword [r15 + 0x90]
mov qword [rsp + 0x110], r10
sub r10, r11
mov qword [rsp + 0x108], 0
cmp r13, r10
jle 0x1403afb26
mov byte [rsp + 0xf8], sil
mov r8, rbx
mov qword [rsp + 0xe8], rdi
mov ebx, edx
mov qword [rsp + 0x100], r12
mov r12b, al
mov qword [rsp + 0xf0], r13
mov rdx, r11
mov rdi, qword [rsp + 0x110]
mov r13d, ebp
mov rsi, qword [rsp + 0x108]
mov ebp, r9d
sub rdi, rdx
inc ebx
test rdi, rdi
jle 0x1403af9d3
mov r8, rdi
mov rcx, qword [rsp + 0x188]
call fcn.14042ae90
mov r8, qword [rsp + 0x180]
add rsi, rdi
sub r8, rdi
add qword [rsp + 0x188], rdi
add qword [r15 + 0x80], rdi
mov qword [rsp + 0x180], r8
mov dil, byte [r15 + 0x27c]
cmp dil, 3
je 0x1403b0db9
cmp dword [r15 + 0x238], 0xb
jne 0x1403afa01
test byte [r15 + 0x29a], 0x20
je 0x1403afa01
sub qword [r15 + 0x260], rsi
jmp 0x1403afa21
cmp dil, 5
je 0x1403b0d91
test r8, r8
jle 0x1403b0c6a
cmp rsi, qword [r15 + 0x260]
jae 0x1403b0c6a
xor edx, edx
mov rcx, r15
xor r8d, r8d
call fcn.1403e0880
test eax, eax
jne 0x1403b0b0b
mov r8, qword [rsp + 0x180]
mov rdx, qword [r15 + 0x80]
mov qword [r15 + 0x98], rdx
cmp r8, qword [r15 + 0x1b0]
jb 0x1403afa64
sub r8, qword [r15 + 0x1b8]
mov qword [rsp + 0x180], r8
cmp byte [r15 + 0x27c], 3
jne 0x1403afa79
add rdx, 2
mov qword [r15 + 0x80], rdx
mov rdi, qword [r15 + 0x90]
mov r10, rdi
sub r10, rdx
cmp r8, r10
jg 0x1403af994
mov r11, rdx
mov edx, ebx
mov dword [rsp + 0x178], eax
mov rbx, r8
mov sil, byte [rsp + 0xf8]
mov r9d, ebp
mov rdi, qword [rsp + 0xe8]
mov ebp, r13d
mov r13, qword [rsp + 0xf0]
mov al, r12b
mov r12, qword [rsp + 0x100]
test edx, edx
je 0x1403afb16
test rbx, rbx
jle 0x1403b04c6
mov rdx, r11
mov r8, rbx
mov rcx, qword [rsp + 0x188]
call fcn.14042ae90
mov rbx, qword [rsp + 0x180]
add qword [rsp + 0x188], rbx
add qword [r15 + 0x80], rbx
sub qword [r15 + 0x260], rbx
mov qword [rsp + 0x180], 0
jmp 0x1403b04c6
mov rcx, qword [rsp + 0x148]
mov r8, qword [rsp + 0x188]
mov qword [rsp + 0xb0], r8
lea r10, [r8 + rbx]
mov qword [rsp + 0xa8], r10
cmp dword [rsp + 0x158], 0
je 0x1403b0039
xor r14b, r14b
test ebp, 3
jne 0x1403afdfb
test r9d, 3
jne 0x1403afdfb
cmp rcx, 4
je 0x1403afd7c
cmp rcx, 8
jne 0x1403afc20
cmp r8, qword [rsp + 0xa8]
jae 0x1403b0276
xor edx, edx
sub r10, r8
mov eax, 1
add r10, 7
xor ecx, ecx
mov qword [rsp + 0xa8], r10
shr r10, 4
je 0x1403afbe5
mov r9d, dword [rcx + r11]
inc rdx
mov eax, dword [rcx + r11 + 4]
bswap eax
bswap r9d
mov dword [rcx + r8], eax
mov dword [rcx + r8 + 4], r9d
mov r9d, dword [rcx + r11 + 8]
mov eax, dword [rcx + r11 + 0xc]
bswap eax
bswap r9d
mov dword [rcx + r8 + 8], eax
mov dword [rcx + r8 + 0xc], r9d
add rcx, 0x10
cmp rdx, r10
jb 0x1403afba4
lea rax, [rdx + rdx + 1]
mov rdx, qword [rsp + 0xa8]
lea r10, [rax - 1]
shr rdx, 3
cmp r10, rdx
jae 0x1403afc14
mov r10d, dword [r11 + rax*8 - 8]
mov r11d, dword [r11 + rax*8 - 4]
bswap r11d
bswap r10d
mov dword [r8 + rax*8 - 8], r11d
mov dword [r8 + rax*8 - 4], r10d
mov r11, qword [r15 + 0x80]
jmp 0x1403b0276
cmp rcx, 0x10
jne 0x1403afd4a
cmp r8, qword [rsp + 0xa8]
jae 0x1403b0276
mov rcx, r10
xor edx, edx
sub rcx, r8
mov eax, 1
add rcx, 0xf
xor r10d, r10d
mov qword [rsp + 0xa8], rcx
shr rcx, 5
je 0x1403afcf3
mov qword [rsp + 0xf0], r13
mov qword [rsp + 0xe8], rdi
nop
mov r13d, dword [r10 + r11]
inc rdx
mov r9d, dword [r10 + r11 + 4]
mov edi, dword [r10 + r11 + 8]
mov eax, dword [r10 + r11 + 0xc]
bswap eax
bswap edi
bswap r9d
bswap r13d
mov dword [r10 + r8], eax
mov dword [r10 + r8 + 4], edi
mov dword [r10 + r8 + 8], r9d
mov dword [r10 + r8 + 0xc], r13d
mov r13d, dword [r10 + r11 + 0x10]
mov r9d, dword [r10 + r11 + 0x14]
mov edi, dword [r10 + r11 + 0x18]
mov eax, dword [r10 + r11 + 0x1c]
bswap eax
bswap edi
bswap r9d
bswap r13d
mov dword [r10 + r8 + 0x10], eax
mov dword [r10 + r8 + 0x14], edi
mov dword [r10 + r8 + 0x18], r9d
mov dword [r10 + r8 + 0x1c], r13d
add r10, 0x20
cmp rdx, rcx
jb 0x1403afc70
mov r13, qword [rsp + 0xf0]
lea rax, [rdx + rdx + 1]
mov rdi, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0xa8]
lea r10, [rax - 1]
shr rdx, 4
cmp r10, rdx
jae 0x1403afd3e
shl rax, 4
mov ecx, dword [rax + r11 - 0x10]
mov edx, dword [rax + r11 - 0xc]
mov r10d, dword [rax + r11 - 8]
mov r11d, dword [rax + r11 - 4]
bswap r11d
bswap r10d
bswap edx
bswap ecx
mov dword [rax + r8 - 0x10], r11d
mov dword [rax + r8 - 0xc], r10d
mov dword [rax + r8 - 8], edx
mov dword [rax + r8 - 4], ecx
mov r11, qword [r15 + 0x80]
jmp 0x1403b0276
cmp r8, qword [rsp + 0xa8]
jae 0x1403b0276
movsx eax, word [r11]
add r11, rcx
bswap eax
shr eax, 0x10
mov word [r8], ax
add r8, rcx
cmp r8, r10
jb 0x1403afd58
mov r11, qword [r15 + 0x80]
jmp 0x1403b0276
cmp r8, qword [rsp + 0xa8]
jae 0x1403b0276
mov rdx, r10
mov eax, 1
sub rdx, r8
xor r10d, r10d
add rdx, 3
mov qword [rsp + 0xa8], rdx
shr rdx, 3
je 0x1403afdcd
mov eax, dword [r11 + r10*8]
bswap eax
mov dword [r8 + r10*8], eax
mov eax, dword [r11 + r10*8 + 4]
bswap eax
mov dword [r8 + r10*8 + 4], eax
inc r10
cmp r10, rdx
jb 0x1403afdaa
lea rax, [r10 + r10 + 1]
mov rdx, qword [rsp + 0xa8]
lea r10, [rax - 1]
shr rdx, 2
cmp r10, rdx
jae 0x1403afdef
mov r10d, dword [r11 + rax*4 - 4]
bswap r10d
mov dword [r8 + rax*4 - 4], r10d
mov r11, qword [r15 + 0x80]
jmp 0x1403b0276
cmp r8, qword [rsp + 0xa8]
jae 0x1403b0276
mov rdx, rcx
lea r9, [r11 + rcx]
shr rdx, 0x3f
lea rax, [r8 + rcx]
add rdx, rcx
xor r10d, r10d
mov qword [rsp + 0xb8], r9
mov r9, rcx
sar rdx, 1
neg r9
mov qword [rsp + 0xc8], rdx
inc r9
shr rdx, 1
mov qword [rsp + 0x80], rdx
mov rdx, qword [rsp + 0xa8]
mov qword [rsp + 0x78], rax
sub rdx, r8
mov rax, r8
sub rdx, r9
sub rax, rcx
test rcx, rcx
mov r9, rcx
cmovg rax, rdx
mov rdx, rcx
sar rdx, 0x3f
xor r9, rdx
mov qword [rsp + 0xc0], r10
sub r9, rdx
cqo
mov qword [rsp + 0x98], rbx
mov dword [rsp + 0x90], ebp
mov byte [rsp + 0xf8], sil
mov qword [rsp + 0xe8], rdi
idiv r9
mov byte [rsp + 0x88], r14b
mov qword [rsp + 0x100], r12
mov qword [rsp + 0xe0], r15
mov qword [rsp + 0xf0], r13
mov r9, qword [rsp + 0x78]
mov rsi, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0x80]
mov rbx, qword [rsp + 0xc8]
mov rbp, r10
cmp rcx, 1
je 0x1403b09d4
test rbx, rbx
jle 0x1403affdf
mov r13d, 1
xor r12d, r12d
test rdi, rdi
je 0x1403affa1
mov qword [rsp + 0xc0], rbp
lea r14, [r11 + r10]
mov qword [rsp + 0xd0], rcx
lea r15, [r8 + r10]
lea rdx, [rsi + r10]
lea r13, [r9 + r10]
nop dword [rax]
nop dword [rax]
movsxd r12, r12d
mov sil, byte [r14 + r12*2]
lea rbx, [r12 + r12]
neg rbx
mov bpl, byte [rdx + rbx - 1]
xor sil, bpl
mov byte [r15 + r12*2], bpl
xor sil, byte [rdx + rbx - 1]
mov byte [r13 + rbx - 1], sil
mov bpl, byte [rdx + rbx - 2]
mov sil, byte [r14 + r12*2 + 1]
mov byte [r15 + r12*2 + 1], bpl
xor sil, bpl
inc r12d
xor sil, byte [rdx + rbx - 2]
mov byte [r13 + rbx - 2], sil
cmp r12, rdi
jb 0x1403aff30
add r12d, r12d
movsxd r13, r12d
mov rsi, qword [rsp + 0xb8]
inc r13
mov rbx, qword [rsp + 0xc8]
mov rbp, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xd0]
lea rdx, [r13 - 1]
mov r12d, edx
cmp r12, rbx
jae 0x1403affdf
lea r12, [r11 + r13 - 1]
mov r14b, byte [r12 + r10]
lea r12, [rsi + r10]
sub r12, rdx
neg rdx
add rdx, r9
lea r13, [r8 + r13 - 1]
mov r15b, byte [r12 - 1]
xor r14b, r15b
mov byte [r13 + r10], r15b
xor r14b, byte [r12 - 1]
mov byte [rdx + r10 - 1], r14b
inc rbp
add r10, rcx
cmp rbp, rax
jb 0x1403afee1
mov r15, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x90]
mov r14b, byte [rsp + 0x88]
mov sil, byte [rsp + 0xf8]
mov r12, qword [rsp + 0x100]
mov r13, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0xe8]
mov r11, qword [r15 + 0x80]
jmp 0x1403b0276
test al, al
je 0x1403b0249
test ebp, 7
jne 0x1403b0249
test r9d, 7
jne 0x1403b0249
cmp rcx, 4
je 0x1403b01ce
cmp rcx, 8
jne 0x1403b00f4
cmp r8, qword [rsp + 0xa8]
jae 0x1403b0276
mov rax, r10
sub rax, r8
add rax, 7
mov r10, rax
shr r10, 3
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x50], r10
cmp rax, 0xc
jbe 0x1403b09e3
mov rax, r11
sub rax, r8
xor ecx, ecx
lea rdx, [r10*8]
mov r10, rax
neg r10
cmp r10, rdx
mov qword [rsp + 0x60], rdx
setg cl
xor r10d, r10d
cmp rax, rdx
setg r10b
or ecx, r10d
je 0x1403b09e3
mov rcx, r8
mov rdx, r11
mov r8, qword [rsp + 0x60]
call fcn.14042ae90
mov r11, qword [r15 + 0x80]
jmp 0x1403b0276
cmp rcx, 0x10
jne 0x1403b019e
cmp r8, qword [rsp + 0xa8]
jae 0x1403b0276
mov rdx, r10
xor ecx, ecx
sub rdx, r8
mov eax, 1
add rdx, 0xf
xor r10d, r10d
mov qword [rsp + 0xa8], rdx
shr rdx, 5
je 0x1403b0165
mov rax, qword [r10 + r11]
inc rcx
mov qword [r10 + r8], rax
mov rax, qword [r10 + r11 + 8]
mov qword [r10 + r8 + 8], rax
mov rax, qword [r10 + r11 + 0x10]
mov qword [r10 + r8 + 0x10], rax
mov rax, qword [r10 + r11 + 0x18]
mov qword [r10 + r8 + 0x18], rax
add r10, 0x20
cmp rcx, rdx
jb 0x1403b012e
lea rax, [rcx + rcx + 1]
mov rdx, qword [rsp + 0xa8]
lea r10, [rax - 1]
shr rdx, 4
cmp r10, rdx
jae 0x1403b0192
shl rax, 4
mov r10, qword [rax + r11 - 0x10]
mov qword [r8 + rax - 0x10], r10
mov r11, qword [rax + r11 - 8]
mov qword [r8 + rax - 8], r11
mov r11, qword [r15 + 0x80]
jmp 0x1403b0276
cmp r8, qword [rsp + 0xa8]
jae 0x1403b0276
mov rax, r10
movzx r10d, word [r11]
add r11, rcx
mov word [r8], r10w
add r8, rcx
cmp r8, rax
jb 0x1403b01af
mov r11, qword [r15 + 0x80]
jmp 0x1403b0276
cmp r8, qword [rsp + 0xa8]
jae 0x1403b0276
mov rax, r10
sub rax, r8
add rax, 3
mov r10, rax
shr r10, 2
mov qword [rsp + 0x68], r10
cmp rax, 0x18
jbe 0x1403b0a41
mov rax, r11
sub rax, r8
xor ecx, ecx
lea rdx, [r10*4]
mov r10, rax
neg r10
cmp r10, rdx
mov qword [rsp + 0x58], rdx
setg cl
xor r10d, r10d
cmp rax, rdx
setg r10b
or ecx, r10d
je 0x1403b0a41
mov rcx, r8
mov rdx, r11
mov r8, qword [rsp + 0x58]
call fcn.14042ae90
mov r11, qword [r15 + 0x80]
jmp 0x1403b0276
mov rcx, r8
mov rdx, r11
mov r8, rbx
call fcn.14042ae90
mov rbx, qword [rsp + 0x188]
mov qword [rsp + 0xb0], rbx
mov rbx, qword [rsp + 0x180]
mov r11, qword [r15 + 0x80]
mov r10, qword [rsp + 0xb0]
add r11, rbx
sub qword [r15 + 0x260], rbx
add r10, rbx
mov qword [r15 + 0x80], r11
mov qword [rsp + 0x188], r10
mov qword [rsp + 0x180], 0
cmp dword [rsp + 0x158], 0
je 0x1403b078e
test r14b, r14b
jne 0x1403b04d4
jmp 0x1403b07c9
jne 0x1403b033d
mov rbx, qword [rsp + 0x5e8]
mov rax, rsp
mov rcx, r15
lea rdx, [rsp + 0x180]
lea r8, [rsp + 0x188]
movsx r10d, byte [rbx]
lea r9, [rsp + 0x128]
mov qword [rax + 0x20], r12
lea r11, [rsp + 0x118]
mov qword [rax + 0x28], rdi
lea r14, [rsp + 0x11c]
mov dword [rax + 0x30], r10d
lea rbx, [rsp + 0x120]
mov qword [rax + 0x38], r11
mov qword [rax + 0x40], r14
mov qword [rax + 0x48], rbx
call fcn.1403b1e40
mov dword [rsp + 0x178], eax
cmp dword [rsp + 0x178], 0
jne 0x1403b0f0e
jmp 0x1403b04c6
mov al, byte [r15 + 0x29c]
test al, 1
je 0x1403b04c6
test r13, r13
jle 0x1403b04c6
mov r10, qword [r15 + 0x260]
test r10, r10
jl 0x1403b13b3
mov r14, qword [r15 + 0x90]
sub r14, r11
test al, 0x40
je 0x1403b0419
test r14, r14
jne 0x1403b0419
cmp r13, qword [r15 + 0x268]
jl 0x1403b03c5
mov rcx, r15
mov rdx, r8
mov r8, r13
call fcn.1403e4ee0
mov dword [rsp + 0x178], eax
or byte [r15 + 0x29c], 0x80
cmp dword [rsp + 0x178], 0
jne 0x1403b104a
mov qword [rsp + 0x180], 0
jmp 0x1403b04c6
mov rcx, r15
call fcn.1403e68f0
mov dword [rsp + 0x178], eax
or byte [r15 + 0x29c], 0x80
cmp dword [rsp + 0x178], 0
jne 0x1403b1177
mov r11, qword [r15 + 0x80]
mov r14, qword [r15 + 0x90]
sub r14, r11
mov rbx, qword [rsp + 0x180]
cmp rbx, r14
cmovl r14, rbx
test r14, r14
jle 0x1403b0480
mov r8, qword [rsp + 0x188]
jmp 0x1403b0425
cmp r13, r14
cmovl r14, r13
test r14, r14
jle 0x1403b048d
mov rcx, r8
mov rdx, r11
mov r8, r14
call fcn.14042ae90
mov r10, qword [r15 + 0x260]
sub r10, r14
mov rbx, qword [rsp + 0x180]
add qword [rsp + 0x188], r14
sub rbx, r14
add qword [r15 + 0x80], r14
sub qword [r15 + 0x140], r14
mov qword [rsp + 0x180], rbx
test r10, r10
jle 0x1403b0479
test byte [r15 + 0x29a], 0x20
jne 0x1403b128c
mov qword [r15 + 0x260], r10
test rbx, rbx
jle 0x1403b04c6
mov r8, qword [rsp + 0x188]
mov rcx, r15
mov rdx, r8
mov r8, rbx
call fcn.1403e4ee0
mov dword [rsp + 0x178], eax
cmp dword [rsp + 0x178], 0
jne 0x1403b129e
mov bl, byte [r15 + 0x29c]
test bl, 0x40
je 0x1403b04c6
or bl, 0x80
mov byte [r15 + 0x29c], bl
cmp dword [rsp + 0x158], 0
je 0x1403b078e
mov r14, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x148]
lea rax, [r13 + r14]
test ebp, 3
jne 0x1403b0635
cmp rcx, 4
je 0x1403b05cf
cmp rcx, 8
jne 0x1403b052f
cmp r14, rax
jae 0x1403b07c9
mov r10d, dword [r14]
mov ebx, dword [r14 + 4]
bswap ebx
bswap r10d
mov dword [r14], ebx
mov dword [r14 + 4], r10d
add r14, 8
cmp r14, rax
jb 0x1403b050e
jmp 0x1403b07c9
cmp rcx, 0x10
jne 0x1403b0574
cmp r14, rax
jae 0x1403b07c9
mov edx, dword [r14]
mov r11d, dword [r14 + 4]
mov r10d, dword [r14 + 8]
mov ebx, dword [r14 + 0xc]
bswap ebx
bswap r10d
bswap r11d
bswap edx
mov dword [r14], ebx
mov dword [r14 + 4], r10d
mov dword [r14 + 8], r11d
mov dword [r14 + 0xc], edx
add r14, 0x10
cmp r14, rax
jb 0x1403b053e
jmp 0x1403b07c9
cmp r14, rax
jae 0x1403b07c9
mov r10, rcx
mov rax, r14
neg r10
sub rax, rcx
inc r10
mov r11, rcx
neg r10
xor ebx, ebx
add r10, r13
test rcx, rcx
cmovg rax, r10
mov r10, rcx
sar r11, 0x3f
xor r10, r11
cqo
sub r10, r11
idiv r10
movsx r10d, word [r14]
inc rbx
bswap r10d
shr r10d, 0x10
mov word [r14], r10w
add r14, rcx
cmp rbx, rax
jb 0x1403b05b0
jmp 0x1403b07c9
cmp r14, rax
jae 0x1403b07c9
mov r11d, 1
lea rbx, [r13 + 3]
mov rax, rbx
xor r10d, r10d
shr rax, 3
je 0x1403b0613
mov r11d, dword [r14 + r10*8]
bswap r11d
mov dword [r14 + r10*8], r11d
mov r11d, dword [r14 + r10*8 + 4]
bswap r11d
mov dword [r14 + r10*8 + 4], r11d
inc r10
cmp r10, rax
jb 0x1403b05ee
lea r11, [r10 + r10 + 1]
shr rbx, 2
lea r10, [r11 - 1]
cmp r10, rbx
jae 0x1403b07c9
mov ebx, dword [r14 + r11*4 - 4]
bswap ebx
mov dword [r14 + r11*4 - 4], ebx
jmp 0x1403b07c9
cmp r14, rax
jae 0x1403b07c9
mov r10, rcx
mov rax, r14
shr r10, 0x3f
sub rax, rcx
add r10, rcx
mov rbp, rcx
sar r10, 1
xor r11d, r11d
mov rbx, r10
shr rbx, 1
mov qword [rsp + 0xd8], rbx
mov rbx, rcx
neg rbx
inc rbx
neg rbx
add rbx, r13
test rcx, rcx
mov byte [rsp + 0xf8], sil
cmovg rax, rbx
mov rbx, rcx
sar rbx, 0x3f
xor rbp, rbx
cqo
sub rbp, rbx
idiv rbp
mov qword [rsp + 0x100], r12
mov rbx, rax
mov qword [rsp + 0xe0], r15
lea rbp, [r14 + rcx]
mov qword [rsp + 0xf0], r13
xor eax, eax
mov qword [rsp + 0xe8], rdi
mov rsi, qword [rsp + 0xd8]
test r10, r10
jle 0x1403b0755
mov edi, 1
xor edx, edx
test rsi, rsi
je 0x1403b0729
lea r8, [r14 + rax]
lea rdi, [rbp + rax]
movsxd rdx, edx
mov r13b, byte [r8 + rdx*2]
lea r9, [rdx + rdx]
neg r9
mov r12b, byte [rdi + r9 - 1]
xor r13b, r12b
mov byte [r8 + rdx*2], r12b
xor byte [rdi + r9 - 1], r13b
mov r15b, byte [rdi + r9 - 2]
mov r12b, byte [r8 + rdx*2 + 1]
mov byte [r8 + rdx*2 + 1], r15b
xor r12b, r15b
inc edx
xor byte [rdi + r9 - 2], r12b
cmp rdx, rsi
jb 0x1403b06e4
add edx, edx
movsxd rdi, edx
inc rdi
lea r8, [rdi - 1]
mov edx, r8d
cmp rdx, r10
jae 0x1403b0755
lea r9, [rbp + rax]
sub r9, r8
lea rdx, [r14 + rdi - 1]
mov dil, byte [rdx + rax]
mov r8b, byte [r9 - 1]
xor dil, r8b
mov byte [rdx + rax], r8b
xor byte [r9 - 1], dil
inc r11
add rax, rcx
cmp r11, rbx
jb 0x1403b06c6
mov sil, byte [rsp + 0xf8]
mov r12, qword [rsp + 0x100]
mov r15, qword [rsp + 0xe0]
mov r13, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0xe8]
jmp 0x1403b07c9
mov bl, byte [rsp + 0x160]
test bl, bl
je 0x1403b07c9
mov rdx, r15
lea rcx, [rsp + 0x130]
mov r8d, r13d
call fcn.1403b8280
mov dword [rsp + 0x178], eax
cmp dword [rsp + 0x178], 0
je 0x1403b07c9
mov ecx, 0x5f
xor edx, edx
call fcn.140383960
cmp rdi, 1
jle 0x1403af4ae
mov ebx, dword [rsp + 0x198]
add ebx, 0xfffffff9
cmp ebx, 1
ja 0x1403b0830
test r12, r12
je 0x1403b0802
mov rbx, qword [rsp + 0x148]
dec rdi
add qword [rsp + 0x130], rbx
xor r12d, r12d
jmp 0x1403af7ed
xor r12d, r12d
cmp dword [rsp + 0x168], 0
lea rcx, [rsp + 0x198]
setne r12b
lea rdx, [rsp + 0x490]
call fcn.1403b8010
mov qword [rsp + 0x130], rax
jmp 0x1403b084a
xor r10d, r10d
test r12, r12
mov rbx, qword [rsp + 0x148]
cmovne r12, r10
add qword [rsp + 0x130], rbx
dec rdi
jmp 0x1403af7ed
xor r11d, r11d
jmp 0x1403af650
mov r10d, 1
cmp r11d, 1
jle 0x1403b094f
lea edx, [r11 + 1]
movsxd r11, r11d
mov rax, r11
mov qword [rsp + 0x70], r11
lea r9, [r11 + r11*2 - 3]
shl r9, 3
dec rax
jl 0x1403b08b4
mov qword [rsp + 0xe8], rdi
mov rdi, qword [rsp + r9 + 0x1b0]
cmp rdi, qword [rsp + r9 + 0x1a8]
jne 0x1403b08ac
add r9, 0xffffffffffffffe8
mov edx, eax
dec rax
jns 0x1403b088f
mov rdi, qword [rsp + 0xe8]
mov qword [rsp + 0xe8], rdi
mov eax, 1
movsxd rdx, edx
mov r9d, 0x18
mov qword [rsp + 0xf0], r13
mov rdi, qword [rsp + 0x70]
mov r13, qword [rsp + r9 + 0x1a8]
cmp qword [rsp + r9 + 0x1b0], 1
je 0x1403b09c6
cmp rax, rdx
jl 0x1403b091e
mov r13, qword [rsp + r9 + 0x190]
sub r13, qword [rsp + r9 + 0x198]
inc r13
imul r13, qword [rsp + r9 + 0x1a0]
cmp rax, rdx
jge 0x1403b0933
cmp r13, qword [rsp + r9 + 0x1b8]
je 0x1403b0933
mov r13, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0xe8]
jmp 0x1403af612
inc rax
add r9, 0x18
cmp rax, rdi
jl 0x1403b08d7
mov r13, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0xe8]
test r8b, 0x10
jne 0x1403b095a
mov r13, rcx
jmp 0x1403b0996
mov rdx, r15
lea rcx, [rsp + 0x130]
mov dword [rcx - 0x90], r10d
call fcn.1403b88d0
mov r10d, dword [rsp + 0xa0]
test eax, eax
jne 0x1403b098a
mov r13, qword [rsp + 0x138]
xor r14b, r14b
jmp 0x1403b0996
test ebp, ebp
je 0x1403b09b0
mov r13, qword [rsp + 0x138]
mov r11, qword [rsp + 0x1a0]
mov edi, 1
mov qword [rsp + 0x130], r11
jmp 0x1403af6a8
mov r11d, dword [rsp + 0x19c]
test r11d, r11d
jg 0x1403af612
jmp 0x1403af679
test r13, r13
jg 0x1403b08f3
jmp 0x1403b08ee
mov r12b, byte [rbp + r11]
mov byte [rbp + r8], r12b
jmp 0x1403affdf
xor edx, edx
mov eax, 1
xor r10d, r10d
shr qword [rsp + 0xa8], 4
je 0x1403b0a23
mov rcx, qword [rsp + 0xa8]
mov rax, qword [r10 + r11]
inc rdx
mov qword [r10 + r8], rax
mov rax, qword [r10 + r11 + 8]
mov qword [r10 + r8 + 8], rax
add r10, 0x10
cmp rdx, rcx
jb 0x1403b0a00
lea rax, [rdx + rdx + 1]
lea r10, [rax - 1]
cmp r10, qword [rsp + 0x50]
jae 0x1403b00e8
mov r10, qword [r11 + rax*8 - 8]
mov qword [r8 + rax*8 - 8], r10
jmp 0x1403b00e8
cmp qword [rsp + 0x68], 4
jb 0x1403b0b07
mov r10, r8
and r10, 0xf
je 0x1403b0a6e
test r10, 3
jne 0x1403b0b07
neg r10
add r10, 0x10
shr r10, 2
lea rax, [r10 + 4]
cmp rax, qword [rsp + 0x68]
ja 0x1403b0b07
mov rdx, qword [rsp + 0x68]
mov rax, rdx
sub rax, r10
and rax, 3
neg rax
add rax, rdx
xor edx, edx
test r10, r10
jbe 0x1403b0aa9
mov ecx, dword [r11 + rdx*4]
mov dword [r8 + rdx*4], ecx
inc rdx
cmp rdx, r10
jb 0x1403b0a99
lea rdx, [r11 + r10*4]
test rdx, 0xf
je 0x1403b0acd
movdqu xmm0, xmmword [r11 + r10*4]
movdqu xmmword [r8 + r10*4], xmm0
add r10, 4
cmp r10, rax
jb 0x1403b0ab6
jmp 0x1403b0ae2
movdqu xmm0, xmmword [r11 + r10*4]
movdqu xmmword [r8 + r10*4], xmm0
add r10, 4
cmp r10, rax
jb 0x1403b0acd
cmp rax, qword [rsp + 0x68]
jae 0x1403b0240
mov rdx, qword [rsp + 0x68]
mov r10d, dword [r11 + rax*4]
mov dword [r8 + rax*4], r10d
inc rax
cmp rax, rdx
jb 0x1403b0af2
jmp 0x1403b0240
xor eax, eax
jmp 0x1403b0ae2
cmp byte [r15 + 0x27c], 5
je 0x1403b0c27
mov rbp, qword [r15 + 0x30]
test rbp, rbp
je 0x1403b0bf0
test byte [rbp + 0x74], 2
je 0x1403b0b84
mov dword [rbp + 0x68], eax
mov rbp, qword [r15 + 0x30]
mov dword [rbp + 0x6c], eax
mov rbp, qword [r15 + 0xd8]
test rbp, rbp
je 0x1403b0b50
xor r10d, r10d
mov qword [rbp + 8], r10
mov qword [r15 + 0xd8], r10
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
movzx ebp, byte [r15 + 0x29e]
mov r10, rsp
and ebp, 0x10
mov rcx, r15
movzx r8d, byte [r15 + 0x294]
mov edx, 0xffffffff
shr ebp, 1
and r8d, 7
or r8d, ebp
mov r9d, eax
mov dword [r10 + 0x20], eax
call fcn.1403be580
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
call fcn.14043dac0
mov ecx, 1
mov edx, eax
mov r8d, eax
mov r9, r15
call fcn.140381780
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
jmp 0x1403b0b70
mov rbp, qword [r15 + 0x80]
sub rbp, qword [r15 + 0x78]
test rbp, rbp
jg 0x1403b0b19
mov bpl, byte [r15 + 0x299]
and bpl, 0x80
cmp bpl, 0x80
jne 0x1403b0b19
mov rbp, qword [r15 + 0x170]
add rbp, qword [r15 + 0x178]
mov qword [r15 + 0x168], rbp
jmp 0x1403b0b19
mov rax, qword [r15 + 0x30]
test rax, rax
je 0x1403b0d53
test byte [rax + 0x74], 2
je 0x1403b0ce2
mov ebp, 0x43
mov dword [rax + 0x68], ebp
mov rax, qword [r15 + 0x30]
mov dword [rax + 0x6c], ebp
mov rax, qword [r15 + 0xd8]
test rax, rax
je 0x1403b0ca5
xor ebp, ebp
mov qword [rax + 8], rbp
mov qword [r15 + 0xd8], rbp
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
mov eax, 0x43
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
movzx eax, byte [r15 + 0x29e]
mov rbp, rsp
and eax, 0x10
mov rcx, r15
movzx r8d, byte [r15 + 0x294]
mov edx, 0xffffffff
shr eax, 1
and r8d, 7
or r8d, eax
mov r9d, 0x43
mov dword [rbp + 0x20], 0x43
call fcn.1403be580
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov edx, 0x43
mov ecx, 1
mov r8d, edx
mov r9, r15
call fcn.140381780
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
jmp 0x1403b0b70
cmp r8, qword [r15 + 0x1b0]
jb 0x1403afa21
mov rdi, qword [rsp + 0x188]
mov qword [r15 + 0x110], rdi
mov qword [r15 + 0x230], r8
jmp 0x1403afa21
mov rdi, qword [r15 + 0x98]
movzx r8d, byte [rdi + 1]
shl r8d, 8
movzx r10d, byte [rdi]
or r10d, r8d
movsx r11, r10w
lea edi, [r11 - 2]
cmp edi, 1
jbe 0x1403b0de7
cmp r11d, 0x1a
jne 0x1403afa21
mov rax, qword [r15 + 0x30]
test rax, rax
je 0x1403b0ed0
test byte [rax + 0x74], 2
je 0x1403b0e5f
mov ebp, 0x43
mov dword [rax + 0x68], ebp
mov rax, qword [r15 + 0x30]
mov dword [rax + 0x6c], ebp
mov rax, qword [r15 + 0xd8]
test rax, rax
je 0x1403b0e22
xor ebp, ebp
mov qword [rax + 8], rbp
mov qword [r15 + 0xd8], rbp
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
mov eax, 0x43
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
movzx eax, byte [r15 + 0x29e]
mov rbp, rsp
and eax, 0x10
mov rcx, r15
movzx r8d, byte [r15 + 0x294]
mov edx, 0xffffffff
shr eax, 1
and r8d, 7
or r8d, eax
mov r9d, 0x43
mov dword [rbp + 0x20], 0x43
call fcn.1403be580
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov edx, 0x43
mov ecx, 1
mov r8d, edx
mov r9, r15
call fcn.140381780
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
jmp 0x1403b0b70
mov rbp, qword [r15 + 0x30]
test rbp, rbp
je 0x1403b1003
test byte [rbp + 0x74], 2
je 0x1403b0f8c
mov eax, dword [rsp + 0x11c]
mov dword [rbp + 0x68], eax
mov r8, qword [r15 + 0x30]
mov ebp, dword [rsp + 0x120]
mov dword [r8 + 0x6c], ebp
mov rbp, qword [r15 + 0xd8]
test rbp, rbp
je 0x1403b0f54
xor r8d, r8d
mov qword [rbp + 8], r8
mov qword [r15 + 0xd8], r8
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
movzx eax, byte [r15 + 0x29e]
mov r10, rsp
and eax, 0x10
mov rcx, r15
movzx r8d, byte [r15 + 0x294]
mov edx, 0xffffffff
shr eax, 1
and r8d, 7
or r8d, eax
mov ebp, dword [rsp + 0x120]
mov r9d, dword [rsp + 0x11c]
mov dword [r10 + 0x20], ebp
call fcn.1403be580
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov r9, r15
mov ecx, dword [rsp + 0x118]
mov edx, dword [rsp + 0x11c]
mov r8d, dword [rsp + 0x120]
call fcn.140381780
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
jmp 0x1403b0b70
mov rbp, qword [r15 + 0x30]
test rbp, rbp
je 0x1403b1130
test byte [rbp + 0x74], 2
je 0x1403b10b9
mov dword [rbp + 0x68], eax
mov rbp, qword [r15 + 0x30]
mov dword [rbp + 0x6c], eax
mov rbp, qword [r15 + 0xd8]
test rbp, rbp
je 0x1403b1081
xor r10d, r10d
mov qword [rbp + 8], r10
mov qword [r15 + 0xd8], r10
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
movzx ebp, byte [r15 + 0x29e]
mov r10, rsp
and ebp, 0x10
mov rcx, r15
movzx r8d, byte [r15 + 0x294]
mov edx, 0xffffffff
shr ebp, 1
and r8d, 7
or r8d, ebp
mov r9d, eax
mov qword [rsp + 0x180], 0
mov dword [r10 + 0x20], eax
call fcn.1403be580
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov ecx, 1
mov edx, eax
mov r8d, eax
mov r9, r15
mov qword [rsp + 0x180], 0
call fcn.140381780
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
jmp 0x1403b0b70
mov rbp, qword [r15 + 0x30]
test rbp, rbp
je 0x1403b1251
test byte [rbp + 0x74], 2
je 0x1403b11e6
mov dword [rbp + 0x68], eax
mov rbp, qword [r15 + 0x30]
mov dword [rbp + 0x6c], eax
mov rbp, qword [r15 + 0xd8]
test rbp, rbp
je 0x1403b11ae
xor r10d, r10d
mov qword [rbp + 8], r10
mov qword [r15 + 0xd8], r10
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
movzx ebp, byte [r15 + 0x29e]
mov r10, rsp
and ebp, 0x10
mov rcx, r15
movzx r8d, byte [r15 + 0x294]
mov edx, 0xffffffff
shr ebp, 1
and r8d, 7
or r8d, ebp
mov r9d, eax
mov dword [r10 + 0x20], eax
call fcn.1403be580
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov ecx, 1
mov edx, eax
mov r8d, eax
mov r9, r15
call fcn.140381780
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
jmp 0x1403b0b70
neg r10d
movsxd r10, r10d
mov qword [r15 + 0x260], r10
jmp 0x1403b0480
mov rbp, qword [r15 + 0x30]
test rbp, rbp
je 0x1403b1378
test byte [rbp + 0x74], 2
je 0x1403b130d
mov dword [rbp + 0x68], eax
mov rbp, qword [r15 + 0x30]
mov dword [rbp + 0x6c], eax
mov rbp, qword [r15 + 0xd8]
test rbp, rbp
je 0x1403b12d5
xor r10d, r10d
mov qword [rbp + 8], r10
mov qword [r15 + 0xd8], r10
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
movzx ebp, byte [r15 + 0x29e]
mov r10, rsp
and ebp, 0x10
mov rcx, r15
movzx r8d, byte [r15 + 0x294]
mov edx, 0xffffffff
shr ebp, 1
and r8d, 7
or r8d, ebp
mov r9d, eax
mov dword [r10 + 0x20], eax
call fcn.1403be580
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov ecx, 1
mov edx, eax
mov r8d, eax
mov r9, r15
call fcn.140381780
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
jmp 0x1403b0b70
test byte [r15 + 0x29a], 0x20
je 0x1403b0365
neg r10d
movsxd r10, r10d
mov qword [r15 + 0x260], r10
jmp 0x1403b0365
mov rcx, r15
lea rdx, [rsp + 0x130]
mov r8d, 1
call fcn.1403cdf40
mov dword [rsp + 0x178], eax
cmp dword [rsp + 0x178], 0
je 0x1403b07c9
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
jmp 0x1403b0b70
mov eax, dword [rsp + 0x178]
mov rdx, rdi
mov rbp, qword [rsp + 0x170]
cmp dword [rsp + 0x140], 1
jne 0x1403b1739
movzx r11d, word [r15 + 0x27a]
test r11d, r11d
jg 0x1403b1739
cmp byte [r15 + 0x27c], 3
je 0x1403b184e
test r10b, 0x40
jne 0x1403b15eb
cmp dword [r15 + 0x238], 7
jne 0x1403b15eb
cmp qword [rsp + 0x128], 0
jne 0x1403b15eb
mov r8, rsp
xor eax, eax
mov qword [rsp + 0x180], rax
lea r10, [rsp + 0x118]
mov rcx, r15
lea r11, [rsp + 0x11c]
lea r9, [rsp + 0x128]
mov qword [r8 + 0x20], rax
lea rax, [rsp + 0x120]
mov qword [r8 + 0x28], rdx
lea rdx, [rsp + 0x180]
mov dword [r8 + 0x30], 1
mov qword [r8 + 0x38], r10
mov qword [r8 + 0x40], r11
mov qword [r8 + 0x48], rax
lea r8, [rsp + 0x188]
call fcn.1403b1e40
test eax, eax
je 0x1403b15eb
mov rbp, qword [r15 + 0x30]
test rbp, rbp
je 0x1403b1771
test byte [rbp + 0x74], 2
je 0x1403b1574
mov eax, dword [rsp + 0x11c]
mov dword [rbp + 0x68], eax
mov r8, qword [r15 + 0x30]
mov ebp, dword [rsp + 0x120]
mov dword [r8 + 0x6c], ebp
mov rbp, qword [r15 + 0xd8]
test rbp, rbp
je 0x1403b153c
xor r8d, r8d
mov qword [rbp + 8], r8
mov qword [r15 + 0xd8], r8
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
movzx eax, byte [r15 + 0x29e]
mov r10, rsp
and eax, 0x10
mov rcx, r15
movzx r8d, byte [r15 + 0x294]
mov edx, 0xffffffff
shr eax, 1
and r8d, 7
or r8d, eax
mov ebp, dword [rsp + 0x120]
mov r9d, dword [rsp + 0x11c]
mov dword [r10 + 0x20], ebp
call fcn.1403be580
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
test byte [r15 + 0x29c], 1
jne 0x1403b1824
mov r8, qword [r15 + 0x80]
sub r8, qword [r15 + 0x78]
cmp byte [r15 + 0x27c], 5
je 0x1403b17f0
mov rax, qword [r15 + 0x170]
add r8, rax
mov qword [r15 + 0x168], r8
mov ecx, dword [r15 + 0x1e0]
and byte [r15 + 0x294], 0xdc
and byte [r15 + 0x29e], 0xef
and byte [r15 + 0x296], 0xf7
call fcn.1403c0ed0
test eax, eax
je 0x1403b1729
mov rbp, qword [r15 + 0x30]
test rbp, rbp
je 0x1403b17b8
test byte [rbp + 0x74], 2
je 0x1403b16be
mov dword [rbp + 0x68], eax
mov rbp, qword [r15 + 0x30]
mov dword [rbp + 0x6c], eax
mov rbp, qword [r15 + 0xd8]
test rbp, rbp
je 0x1403b1686
xor r10d, r10d
mov qword [rbp + 8], r10
mov qword [r15 + 0xd8], r10
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
movzx ebp, byte [r15 + 0x29e]
mov r10, rsp
and ebp, 0x10
mov rcx, r15
movzx r8d, byte [r15 + 0x294]
mov edx, 0xffffffff
shr ebp, 1
and r8d, 7
or r8d, ebp
mov r9d, eax
mov dword [r10 + 0x20], eax
call fcn.1403be580
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov qword [rbp + 8], 0
and byte [r15 + 0x299], 0x7f
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov r9, r15
mov ecx, dword [rsp + 0x118]
mov edx, dword [rsp + 0x11c]
mov r8d, dword [rsp + 0x120]
call fcn.140381780
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
jmp 0x1403b0b70
xor ecx, ecx
mov edx, eax
mov r8d, eax
mov r9, r15
call fcn.140381780
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
jmp 0x1403b0b70
test r8, r8
jg 0x1403b1612
mov al, byte [r15 + 0x299]
and al, 0x80
cmp al, 0x80
jne 0x1403b1612
mov rax, qword [r15 + 0x170]
add rax, qword [r15 + 0x178]
mov qword [r15 + 0x168], rax
jmp 0x1403b1623
xor edx, edx
mov rcx, r15
xor r8d, r8d
call fcn.1403e4ee0
movzx eax, word [r15 + 0x27a]
test eax, eax
jg 0x1403b15f9
and byte [r15 + 0x29c], 0xfe
jmp 0x1403b15f9
mov rax, qword [r15 + 0x98]
movzx r8d, byte [rax + 1]
shl r8d, 8
movzx r11d, byte [rax]
or r11d, r8d
movsx rax, r11w
cmp eax, 0x1a
je 0x1403b1466
mov r13, rbp
mov rbp, rdx
cmp eax, 2
je 0x1403b18b3
cmp eax, 3
je 0x1403b18b3
xor edx, edx
mov rcx, r15
xor r8d, r8d
call fcn.1403e0880
test eax, eax
jne 0x1403b18c5
mov rax, qword [r15 + 0x80]
movzx r8d, byte [rax + 1]
shl r8d, 8
movzx r10d, byte [rax]
or r10d, r8d
movsx rax, r10w
cmp eax, 0x1a
jne 0x1403b1878
mov r10b, byte [r15 + 0x297]
mov rdx, rbp
mov rbp, r13
jmp 0x1403b1466
mov rbp, qword [r15 + 0x30]
test rbp, rbp
je 0x1403b199f
test byte [rbp + 0x74], 2
je 0x1403b1934
mov dword [rbp + 0x68], eax
mov rbp, qword [r15 + 0x30]
mov dword [rbp + 0x6c], eax
mov rbp, qword [r15 + 0xd8]
test rbp, rbp
je 0x1403b18fc
xor r10d, r10d
mov qword [rbp + 8], r10
mov qword [r15 + 0xd8], r10
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
movzx ebp, byte [r15 + 0x29e]
mov r10, rsp
and ebp, 0x10
mov rcx, r15
movzx r8d, byte [r15 + 0x294]
mov edx, 0xffffffff
shr ebp, 1
and r8d, 7
or r8d, ebp
mov r9d, eax
mov dword [r10 + 0x20], eax
call fcn.1403be580
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov ecx, 1
mov edx, eax
mov r8d, eax
mov r9, r15
call fcn.140381780
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
jmp 0x1403b0b70
movzx r11d, byte [rdx + 1]
shl r11d, 8
movzx r14d, byte [rdx]
or r14d, r11d
movsx r11, r14w
and r11d, 0xfffffffd
cmp r11d, 1
jne 0x1403b1a08
add rdx, 2
mov qword [r15 + 0x80], rdx
jmp 0x1403af865
mov rax, qword [r15 + 0x30]
test rax, rax
je 0x1403b1af1
test byte [rax + 0x74], 2
je 0x1403b1a80
mov ebp, 0x23
mov dword [rax + 0x68], ebp
mov rax, qword [r15 + 0x30]
mov dword [rax + 0x6c], ebp
mov rax, qword [r15 + 0xd8]
test rax, rax
je 0x1403b1a43
xor ebp, ebp
mov qword [rax + 8], rbp
mov qword [r15 + 0xd8], rbp
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
mov eax, 0x23
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
movzx eax, byte [r15 + 0x29e]
mov rbp, rsp
and eax, 0x10
mov rcx, r15
movzx r8d, byte [r15 + 0x294]
mov edx, 0xffffffff
shr eax, 1
and r8d, 7
or r8d, eax
mov r9d, 0x23
mov dword [rbp + 0x20], 0x23
call fcn.1403be580
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov edx, 0x23
mov ecx, 1
mov r8d, edx
mov r9, r15
call fcn.140381780
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
jmp 0x1403b0b70
mov rbp, qword [r15 + 0x30]
test rbp, rbp
je 0x1403b1c09
test byte [rbp + 0x74], 2
je 0x1403b1b9e
mov dword [rbp + 0x68], eax
mov rbp, qword [r15 + 0x30]
mov dword [rbp + 0x6c], eax
mov rbp, qword [r15 + 0xd8]
test rbp, rbp
je 0x1403b1b66
xor r10d, r10d
mov qword [rbp + 8], r10
mov qword [r15 + 0xd8], r10
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
movzx ebp, byte [r15 + 0x29e]
mov r10, rsp
and ebp, 0x10
mov rcx, r15
movzx r8d, byte [r15 + 0x294]
mov edx, 0xffffffff
shr ebp, 1
and r8d, 7
or r8d, ebp
mov r9d, eax
mov dword [r10 + 0x20], eax
call fcn.1403be580
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov ecx, 1
mov edx, eax
mov r8d, eax
mov r9, r15
call fcn.140381780
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
jmp 0x1403b0b70
mov rbx, qword [rsp + 0x5e8]
cmp byte [rbx], 1
jne 0x1403af81b
mov rbx, qword [rsp + 0x130]
mov qword [r15 + 0x110], rbx
mov qword [r15 + 0x230], r13
jmp 0x1403af81b
mov r10b, byte [r15 + 0x297]
mov sil, 1
test r10b, 0x20
je 0x1403b1cb9
movzx r11d, word [r15 + 0x27a]
test r11d, r11d
jle 0x1403b1ca5
mov rbp, qword [rsp + 0x170]
mov eax, ebx
mov rdx, rdi
jle 0x1403b1458
jmp 0x1403b1739
mov byte [rsp + 0x160], r14b
mov dword [rsp + 0x158], ebp
jmp 0x1403af806
movzx r11d, word [r15 + 0x27a]
mov eax, ebx
mov rbp, qword [rsp + 0x170]
mov rdx, rdi
test r11d, r11d
jle 0x1403b1458
jmp 0x1403b1739
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
xor eax, eax
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rbp, qword [r15 + 0x30]
mov eax, ebx
test rbp, rbp
je 0x1403b1df2
test byte [rbp + 0x74], 2
je 0x1403b1d87
mov dword [rbp + 0x68], eax
mov rbp, qword [r15 + 0x30]
mov dword [rbp + 0x6c], eax
mov rbp, qword [r15 + 0xd8]
test rbp, rbp
je 0x1403b1d4f
xor r10d, r10d
mov qword [rbp + 8], r10
mov qword [r15 + 0xd8], r10
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
movzx ebp, byte [r15 + 0x29e]
mov r10, rsp
and ebp, 0x10
mov rcx, r15
movzx r8d, byte [r15 + 0x294]
mov edx, 0xffffffff
shr ebp, 1
and r8d, 7
or r8d, ebp
mov r9d, eax
mov dword [r10 + 0x20], eax
call fcn.1403be580
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
add rsp, 0x598
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov ecx, 1
mov edx, eax
mov r8d, eax
mov r9, r15
call fcn.140381780
mov rcx, qword [rsp + 0x588]
mov qword [rsp + 0x588], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x1403b0beb
jmp 0x1403b0b70
cmp dword [r15 + 0x238], 7
je 0x1403b02c4
jmp 0x1403b033d