Function at 0x1402a4690
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
lea rbp, [rsp - 0x4f]
sub rsp, 0xe8
mov rax, qword [0x140415a10]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov r9, r8
mov qword [rbp - 0x39], r8
mov r8d, dword [rcx + 0x4c4]
mov dword [rbp - 0x65], edx
mov rbx, rcx
cmp dword [rcx + 0x4c0], r8d
je 0x1402a46f7
lea rdx, [r8 + r8*2]
add rdx, rdx
mov eax, dword [rcx + rdx*8 + 0x4ec]
mov ecx, dword [rcx + rdx*8 + 0x4f0]
mov dword [r9], ecx
mov ecx, dword [rbx + rdx*8 + 0x4ec]
sub eax, r8d
mov dword [rbx + 0x4c4], ecx
jmp 0x1402a5c30
xor eax, eax
mov qword [rsp + 0xe0], rdi
mov qword [rsp + 0xd8], r12
mov qword [rsp + 0xd0], r13
mov qword [rcx + 0x4c0], rax
cmp dword [rcx + 0x32f6c], eax
jne 0x1402a4736
lea rdx, [rbp - 0x5d]
call fcn.1402a43d0
mov r12d, dword [rbp - 0x5d]
mov r9, qword [rbp - 0x39]
mov r13d, eax
jmp 0x1402a4744
mov r13d, dword [rcx + 0x4c8]
mov r12d, dword [rcx + 0x4cc]
mov edi, dword [rbx + 0x4d0]
mov dword [rbp - 0x6d], r12d
mov dword [rbp - 0x61], r13d
cmp edi, 2
jae 0x1402a4768
mov dword [r9], 0xffffffff
mov eax, 1
jmp 0x1402a5c18
mov rcx, qword [rbx + 0x30]
mov eax, 0x111
mov qword [rsp + 0x118], rsi
cmp edi, eax
mov qword [rsp + 0xc8], r14
mov qword [rsp + 0xc0], r15
cmova edi, eax
call qword [rbx + 0x18]
movzx r14d, byte [rax - 1]
lea r10, [rax - 1]
lea rax, [rbp - 1]
mov r15, rbx
xor esi, esi
xor r11d, r11d
sub r15, rax
xor r9d, r9d
nop dword [rax]
lea rax, [rbp - 1]
mov r8, r10
add rax, r9
mov ecx, dword [rax + r15 + 0x32f70]
mov dword [rax], ecx
inc ecx
sub r8, rcx
cmp r14b, byte [r8]
jne 0x1402a4814
movzx eax, byte [r8 + 1]
cmp byte [r10 + 1], al
jne 0x1402a4814
mov edx, 2
cmp edi, edx
jbe 0x1402a4802
lea rcx, [r10 + 2]
sub r8, r10
nop dword [rax]
movzx eax, byte [r8 + rcx]
cmp byte [rcx], al
jne 0x1402a4802
inc edx
inc rcx
cmp edx, edi
jb 0x1402a47f0
mov eax, esi
mov dword [rbp + r9 + 0xf], edx
cmp edx, dword [rbp + rax*4 + 0xf]
jbe 0x1402a481d
mov esi, r11d
jmp 0x1402a481d
mov dword [rbp + r9 + 0xf], 0
inc r11d
add r9, 4
cmp r11d, 4
jb 0x1402a47b0
mov ecx, dword [rbx + 0x32f68]
mov eax, esi
mov r15d, dword [rbp + rax*4 + 0xf]
mov dword [rbp - 0x79], r15d
cmp r15d, ecx
jb 0x1402a4863
mov rdx, qword [rbp - 0x39]
mov dword [rdx], esi
lea edx, [r15 - 1]
test edx, edx
je 0x1402a485b
mov rcx, qword [rbx + 0x30]
add dword [rbx + 0x32f6c], edx
call qword [rbx + 0x28]
mov eax, r15d
jmp 0x1402a5c00
cmp r13d, ecx
jb 0x1402a489a
mov rdx, qword [rbp - 0x39]
lea eax, [r12 - 1]
mov eax, dword [rbx + rax*4 + 0x326d4]
add eax, 4
mov dword [rdx], eax
lea edx, [r13 - 1]
test edx, edx
je 0x1402a4892
mov rcx, qword [rbx + 0x30]
add dword [rbx + 0x32f6c], edx
call qword [rbx + 0x28]
mov eax, r13d
jmp 0x1402a5c00
mov ecx, dword [rbp - 1]
mov rax, r10
inc ecx
sub rax, rcx
movzx edi, byte [rax]
cmp r13d, 2
jae 0x1402a48cd
cmp r14b, dil
je 0x1402a48cd
cmp r15d, 2
jae 0x1402a48cd
mov rdx, qword [rbp - 0x39]
mov eax, 1
mov dword [rdx], 0xffffffff
jmp 0x1402a5c00
mov eax, dword [rbx + 0x32f80]
mov r15d, dword [rbp - 0x65]
mov ecx, 8
mov dword [rbx + 0x4d8], eax
sub cl, byte [rbx + 0x33bcc]
mov eax, dword [rbp - 0x65]
and eax, dword [rbx + 0x33bd8]
movzx edx, byte [r10 - 1]
mov esi, dword [rbx + 0x32f80]
and r15d, dword [rbx + 0x33bdc]
shr edx, cl
mov ecx, dword [rbx + 0x33bcc]
shl eax, cl
add edx, eax
mov rax, qword [rbx + 0x33be0]
lea ecx, [rdx + rdx*2]
movzx edx, r14b
shl ecx, 8
lea rcx, [rax + rcx*2]
cmp esi, 7
jb 0x1402a493b
lea r9, [rbx + 0x324d4]
movzx r8d, dil
call fcn.1402a3e00
jmp 0x1402a4947
lea r8, [rbx + 0x324d4]
call fcn.1402a3db0
mov r9d, eax
mov r12d, r15d
mov rax, rsi
shl rax, 4
add rax, r12
movzx eax, word [rbx + rax*2 + 0x33be8]
shr rax, 4
mov r8d, dword [rbx + rax*4 + 0x324d4]
mov dword [rbx + 0x520], 0xffffffff
mov dword [rbx + 0x50c], 0
add r8d, r9d
mov dword [rbx + 0x504], r8d
mov edx, dword [rbx + 0x32f80]
mov eax, edx
shl rax, 4
add rax, r12
movzx ecx, word [rbx + rax*2 + 0x33be8]
movzx eax, word [rbx + rdx*2 + 0x33d68]
xor rcx, 0x7f0
xor rax, 0x7f0
shr rax, 4
shr rcx, 4
mov ecx, dword [rbx + rcx*4 + 0x324d4]
mov r9d, dword [rbx + rax*4 + 0x324d4]
add r9d, ecx
mov dword [rbp - 0x55], ecx
cmp dil, r14b
jne 0x1402a4a28
mov eax, edx
shl rax, 4
add rax, r12
movzx ecx, word [rbx + rax*2 + 0x33dc8]
movzx eax, word [rbx + rdx*2 + 0x33d80]
shr rcx, 4
shr rax, 4
mov edx, dword [rbx + rcx*4 + 0x324d4]
add edx, dword [rbx + rax*4 + 0x324d4]
add edx, r9d
cmp edx, r8d
jae 0x1402a4a28
mov dword [rbx + 0x504], edx
mov dword [rbx + 0x520], 0
mov dword [rbx + 0x50c], 0
mov ecx, dword [rbp - 0x79]
cmp r13d, ecx
cmovae ecx, r13d
mov dword [rbp - 0x79], ecx
cmp ecx, 2
jae 0x1402a4a50
mov eax, dword [rbx + 0x520]
mov rdx, qword [rbp - 0x39]
mov dword [rdx], eax
mov eax, 1
jmp 0x1402a5c00
mov eax, dword [rbp - 1]
mov dword [rbx + 0x51c], 0
mov edx, ecx
mov dword [rbx + 0x4f4], eax
mov eax, dword [rbp + 3]
mov dword [rbx + 0x4f8], eax
mov eax, dword [rbp + 7]
mov dword [rbx + 0x4fc], eax
mov eax, dword [rbp + 0xb]
mov dword [rbx + 0x500], eax
mov eax, edx
dec edx
lea rcx, [rax + rax*2]
add rcx, rcx
mov dword [rbx + rcx*8 + 0x4d4], 0x40000000
cmp edx, 2
jae 0x1402a4a80
xor esi, esi
lea r14, [rbp + 0xf]
mov r13d, r9d
mov edi, dword [r14]
cmp edi, 2
jb 0x1402a4b20
mov r8d, dword [rbx + 0x32f80]
mov r9d, r15d
mov edx, esi
mov rcx, rbx
call fcn.1402a44a0
add eax, r13d
imul r9, r12, 0x110
nop word [rax + rax]
lea edx, [rdi - 2]
mov ecx, edi
add rdx, r9
mov r8d, dword [rbx + rdx*4 + 0x38e98]
lea rdx, [rcx + rcx*2]
add rdx, rdx
add r8d, eax
cmp r8d, dword [rbx + rdx*8 + 0x4d4]
jae 0x1402a4b19
mov dword [rbx + rdx*8 + 0x4d4], r8d
mov dword [rbx + rdx*8 + 0x4ec], 0
mov dword [rbx + rdx*8 + 0x4f0], esi
mov dword [rbx + rdx*8 + 0x4dc], 0
dec edi
cmp edi, 2
jae 0x1402a4ad0
inc esi
add r14, 4
cmp esi, 4
jb 0x1402a4aa4
mov r10d, dword [rbp + 0xf]
mov eax, dword [rbx + 0x32f80]
mov r15d, dword [rbp - 0x55]
movzx ecx, word [rbx + rax*2 + 0x33d68]
shr rcx, 4
add r15d, dword [rbx + rcx*4 + 0x324d4]
cmp r10d, 2
inc r10d
jae 0x1402a4b60
mov r10d, 2
cmp r10d, dword [rbp - 0x61]
ja 0x1402a4c81
lea rdx, [rbx + 0x326d4]
xor r9d, r9d
cmp r10d, dword [rdx]
jbe 0x1402a4b8a
nop dword [rax]
add r9d, 2
cmp r10d, dword [rdx + r9*4]
ja 0x1402a4b80
mov r13d, dword [rbp - 0x6d]
imul r14, r12, 0x110
nop word [rax + rax]
lea eax, [r9 + 1]
lea ecx, [r10 - 2]
mov esi, 3
mov edi, dword [rdx + rax*4]
mov eax, ecx
add rax, r14
mov r11d, dword [rbx + rax*4 + 0x34650]
add r11d, r15d
cmp r10d, 5
cmovb esi, ecx
cmp edi, 0x80
jae 0x1402a4be2
mov ecx, esi
shl rcx, 7
add rcx, rdi
add r11d, dword [rbx + rcx*4 + 0x33384]
jmp 0x1402a4c2e
mov ecx, 0x7ffff
mov r8, rdi
mov rax, rdi
sub ecx, edi
and r8d, 0xf
shr ecx, 0x1f
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + rbx + 0x304d4]
lea edx, [rax + rcx*2]
mov eax, esi
shl rax, 6
add rdx, rax
mov eax, dword [rbx + rdx*4 + 0x32f84]
lea rdx, [rbx + 0x326d4]
add eax, dword [rbx + r8*4 + 0x33b84]
add r11d, eax
mov eax, r10d
lea rcx, [rax + rax*2]
add rcx, rcx
cmp r11d, dword [rbx + rcx*8 + 0x4d4]
jae 0x1402a4c6a
lea eax, [rdi + 4]
mov dword [rbx + rcx*8 + 0x4d4], r11d
mov dword [rbx + rcx*8 + 0x4ec], 0
mov dword [rbx + rcx*8 + 0x4f0], eax
mov dword [rbx + rcx*8 + 0x4dc], 0
cmp r10d, dword [rdx + r9*4]
jne 0x1402a4c79
add r9d, 2
cmp r9d, r13d
je 0x1402a4c81
inc r10d
jmp 0x1402a4ba0
mov esi, 1
mov dword [rbp - 0x71], esi
cmp dword [rbp - 0x79], esi
je 0x1402a5bf1
lea r15, [0x140000000]
nop dword [rax]
mov rcx, qword [rbx + 0x30]
xor edi, edi
mov dword [rbp - 0x6d], edi
call qword [rbx + 0x10]
mov rcx, qword [rbx + 0x30]
lea rdx, [rbx + 0x326d4]
mov dword [rbx + 0x4d0], eax
call qword [rbx + 0x20]
mov r14d, eax
mov dword [rbp - 0x5d], eax
test eax, eax
je 0x1402a4d35
lea ecx, [rax - 2]
mov edi, dword [rbx + rcx*4 + 0x326d4]
mov dword [rbp - 0x6d], edi
cmp edi, dword [rbx + 0x32f68]
jne 0x1402a4d35
mov rcx, qword [rbx + 0x30]
call qword [rbx + 0x18]
mov r8d, dword [rbx + 0x4d0]
lea ecx, [r14 - 1]
mov ecx, dword [rbx + rcx*4 + 0x326d4]
lea r9, [rax - 1]
mov eax, 0x111
inc ecx
cmp r8d, eax
mov rdx, r9
cmova r8d, eax
sub rdx, rcx
cmp edi, r8d
jae 0x1402a4d35
lea rcx, [r9 + rdi]
sub rdx, r9
nop dword [rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx], al
jne 0x1402a4d32
inc edi
inc rcx
cmp edi, r8d
jb 0x1402a4d20
mov dword [rbp - 0x6d], edi
inc dword [rbx + 0x32f6c]
cmp edi, dword [rbx + 0x32f68]
jae 0x1402a5be4
inc dword [rbp - 0x65]
mov eax, esi
lea rdi, [rbx + 0x4d4]
lea rcx, [rax + rax*2]
shl rcx, 4
add rdi, rcx
mov r8d, dword [rdi + 8]
mov edx, dword [rdi + 0x18]
test r8d, r8d
je 0x1402a4dcb
dec edx
cmp dword [rdi + 0xc], 0
je 0x1402a4db1
mov eax, dword [rdi + 0x10]
lea rcx, [rax + rax*2]
add rcx, rcx
cmp dword [rdi + 0x14], 4
mov eax, dword [rbx + rcx*8 + 0x4d8]
jae 0x1402a4d9d
mov ecx, dword [r15 + rax*4 + 0x330960]
mov eax, ecx
mov ecx, dword [r15 + rax*4 + 0x3309f0]
jmp 0x1402a4dd9
mov ecx, dword [r15 + rax*4 + 0x330990]
mov eax, ecx
mov ecx, dword [r15 + rax*4 + 0x3309f0]
jmp 0x1402a4dd9
lea rcx, [rdx + rdx*2]
add rcx, rcx
mov ecx, dword [rbx + rcx*8 + 0x4d8]
mov eax, ecx
mov ecx, dword [r15 + rax*4 + 0x3309f0]
jmp 0x1402a4dd9
lea rcx, [rdx + rdx*2]
add rcx, rcx
mov ecx, dword [rbx + rcx*8 + 0x4d8]
lea eax, [rsi - 1]
cmp edx, eax
jne 0x1402a4e0a
cmp dword [rdi + 0x1c], 0
mov eax, ecx
jne 0x1402a4df9
mov r9d, dword [r15 + rax*4 + 0x3309c0]
mov dword [rbp - 0x75], r9d
jmp 0x1402a4ee2
mov r9d, dword [r15 + rax*4 + 0x3309f0]
mov dword [rbp - 0x75], r9d
jmp 0x1402a4ee2
test r8d, r8d
je 0x1402a4e28
cmp dword [rdi + 0xc], 0
je 0x1402a4e28
mov edx, dword [rdi + 0x10]
mov r8d, dword [rdi + 0x14]
mov eax, ecx
mov r9d, dword [r15 + rax*4 + 0x330960]
jmp 0x1402a4e46
mov r8d, dword [rdi + 0x1c]
mov eax, ecx
cmp r8d, 4
jae 0x1402a4e3e
mov r9d, dword [r15 + rax*4 + 0x330960]
jmp 0x1402a4e46
mov r9d, dword [r15 + rax*4 + 0x330990]
mov eax, edx
lea rsi, [rbx + 0x4d4]
mov dword [rbp - 0x75], r9d
lea rcx, [rax + rax*2]
shl rcx, 4
add rsi, rcx
cmp r8d, 4
jae 0x1402a4ec9
mov r14d, r8d
mov r9d, 1
mov eax, dword [rsi + r14*4 + 0x20]
mov dword [rbp - 1], eax
cmp r8d, r9d
jb 0x1402a4e9e
mov r8d, r14d
lea rdx, [rsi + 0x20]
lea rcx, [rbp + 3]
shl r8, 2
call fcn.1402b7460
lea r9d, [r14 + 1]
cmp r9d, 4
jb 0x1402a4e9e
mov r9d, dword [rbp - 0x75]
jmp 0x1402a4ee2
mov eax, r9d
mov r8d, 4
lea rcx, [rbp - 1]
lea rdx, [rax + 8]
sub r8d, r9d
lea rcx, [rcx + rax*4]
lea rdx, [rsi + rdx*4]
shl r8, 2
call fcn.1402b7460
mov r9d, dword [rbp - 0x75]
jmp 0x1402a4ee2
lea eax, [r8 - 4]
mov dword [rbp - 1], eax
mov eax, dword [rsi + 0x20]
mov dword [rbp + 3], eax
mov eax, dword [rsi + 0x24]
mov dword [rbp + 7], eax
mov eax, dword [rsi + 0x28]
mov dword [rbp + 0xb], eax
mov eax, dword [rbp + 3]
mov r15d, dword [rbp - 1]
mov dword [rdi + 4], r9d
mov dword [rdi + 0x24], eax
mov eax, dword [rbp + 7]
mov dword [rdi + 0x20], r15d
mov dword [rdi + 0x28], eax
mov eax, dword [rbp + 0xb]
xor r14d, r14d
mov dword [rdi + 0x2c], eax
mov rcx, qword [rbx + 0x30]
mov r13d, dword [rdi]
call qword [rbx + 0x18]
mov ecx, dword [rbp - 0x65]
mov r8d, dword [rbp - 0x75]
and ecx, dword [rbx + 0x33bdc]
movzx esi, byte [rax - 1]
lea r9, [rax - 1]
mov dword [rbp - 0x29], ecx
mov qword [rbp - 0x21], rcx
lea edx, [r15 + 1]
mov eax, r8d
mov r12, r9
mov qword [rbp - 0x49], r9
shl rax, 4
sub r12, rdx
movzx edx, byte [r9 - 1]
movzx r15d, byte [r12]
add rax, rcx
mov ecx, 8
sub cl, byte [rbx + 0x33bcc]
mov qword [rbp - 0x31], rax
movzx eax, word [rbx + rax*2 + 0x33be8]
shr rax, 4
shr edx, cl
mov ecx, dword [rbx + 0x33bcc]
mov r10d, dword [rbx + rax*4 + 0x324d4]
mov eax, dword [rbp - 0x65]
and eax, dword [rbx + 0x33bd8]
add r10d, r13d
shl eax, cl
mov dword [rbp - 0x55], r10d
add edx, eax
mov rax, qword [rbx + 0x33be0]
lea ecx, [rdx + rdx*2]
shl ecx, 8
cmp r8d, 7
movzx r8d, sil
lea rdi, [rax + rcx*2]
jb 0x1402a5016
mov r10d, 0x100
xor r11d, r11d
movzx r9d, r15b
or r8d, r10d
nop word [rax + rax]
mov ecx, r8d
add r9d, r9d
mov eax, r10d
shr ecx, 8
and eax, r9d
add eax, r10d
add ecx, eax
movzx edx, word [rdi + rcx*2]
mov ecx, r8d
add r8d, r8d
shr ecx, 7
shr rdx, 4
mov eax, r8d
and ecx, 1
xor eax, r9d
neg ecx
not eax
sar rcx, 4
and r10d, eax
and ecx, 0x7f
xor rdx, rcx
add r11d, dword [rbx + rdx*4 + 0x324d4]
cmp r8d, 0x10000
jb 0x1402a4fc0
mov r10d, dword [rbp - 0x55]
jmp 0x1402a505b
xor r9d, r9d
bts r8d, 8
nop
mov ecx, r8d
mov eax, r8d
add r8d, r8d
shr ecx, 7
shr rax, 8
movzx edx, word [rdi + rax*2]
and ecx, 1
neg ecx
shr rdx, 4
sar rcx, 4
and ecx, 0x7f
xor rdx, rcx
add r9d, dword [rbx + rdx*4 + 0x324d4]
cmp r8d, 0x10000
jb 0x1402a5020
mov r11d, r9d
mov r9d, dword [rbp - 0x71]
lea rdx, [rbx + 0x4d4]
add r10d, r11d
lea eax, [r9 + 1]
mov dword [rbp - 0x61], eax
lea rcx, [rax + rax*2]
shl rcx, 4
add rdx, rcx
cmp r10d, dword [rdx]
jae 0x1402a5098
mov dword [rdx + 8], r14d
mov dword [rdx], r10d
mov dword [rdx + 0x18], r9d
mov r14d, 1
mov dword [rdx + 0x1c], 0xffffffff
mov r11d, dword [rbp - 0x75]
mov rcx, qword [rbp - 0x31]
movzx eax, word [rbx + rcx*2 + 0x33be8]
xor rax, 0x7f0
shr rax, 4
mov r8d, dword [rbx + rax*4 + 0x324d4]
lea rax, [r11 + 0x19eb4]
lea rax, [rbx + rax*2]
add r8d, r13d
mov r13d, r11d
mov qword [rbp + 0xf], rax
movzx eax, word [rax]
mov dword [rbp - 0x3d], r8d
xor rax, 0x7f0
shr rax, 4
mov edi, dword [rbx + rax*4 + 0x324d4]
add edi, r8d
mov dword [rbp - 0x25], edi
cmp r15b, sil
jne 0x1402a5142
cmp dword [rdx + 0x18], r9d
jae 0x1402a50fe
cmp dword [rdx + 0x1c], 0
je 0x1402a5142
movzx ecx, word [rbx + rcx*2 + 0x33dc8]
movzx eax, word [rbx + r11*2 + 0x33d80]
shr rcx, 4
shr rax, 4
mov r8d, dword [rbx + rcx*4 + 0x324d4]
add r8d, dword [rbx + rax*4 + 0x324d4]
add r8d, edi
cmp r8d, dword [rdx]
ja 0x1402a5142
xor eax, eax
mov dword [rdx], r8d
mov dword [rdx + 0x18], r9d
lea r14d, [rax + 1]
mov dword [rdx + 0x1c], eax
mov dword [rdx + 8], eax
mov edi, dword [rbx + 0x4d0]
mov eax, 0xfff
sub eax, r9d
cmp eax, edi
cmovb edi, eax
mov dword [rbp - 0x55], edi
cmp edi, 2
jb 0x1402a5bcc
mov r8d, dword [rbx + 0x32f68]
cmp edi, r8d
mov eax, r8d
cmovbe eax, edi
mov dword [rbp - 0x69], eax
test r14d, r14d
jne 0x1402a5318
cmp r15b, sil
je 0x1402a5318
inc r8d
mov edx, 1
cmp r8d, edi
cmova r8d, edi
cmp r8d, edx
jbe 0x1402a51b9
mov r9, qword [rbp - 0x49]
lea rcx, [r12 + 1]
sub r9, r12
movzx eax, byte [rcx]
cmp byte [r9 + rcx], al
jne 0x1402a51b9
inc edx
inc rcx
cmp edx, r8d
jb 0x1402a51a6
lea r9d, [rdx - 1]
cmp r9d, 2
jb 0x1402a5318
mov edi, dword [rbp - 0x65]
mov r14d, dword [rbp - 0x79]
lea rcx, [0x140000000]
mov r11d, dword [rcx + r11*4 + 0x3309f0]
inc edi
and edi, dword [rbx + 0x33bdc]
movzx ecx, word [rbx + r11*2 + 0x33d68]
mov esi, r11d
shl rsi, 4
xor rcx, 0x7f0
add rsi, rdi
shr rcx, 4
movzx eax, word [rbx + rsi*2 + 0x33be8]
mov r8d, dword [rbx + rcx*4 + 0x324d4]
xor rax, 0x7f0
shr rax, 4
add r8d, dword [rbx + rax*4 + 0x324d4]
add r8d, r10d
mov r10d, dword [rbp - 0x71]
inc r10d
add r10d, r9d
cmp r14d, r10d
jae 0x1402a526f
lea rcx, [r14 + r14*2]
lea rdx, [rbx + 0x4d4]
mov eax, r10d
shl rcx, 4
sub eax, r14d
add rdx, rcx
add r14d, eax
mov ecx, eax
mov dword [rbp - 0x79], r14d
nop dword [rax + rax]
lea rdx, [rdx + 0x30]
mov dword [rdx], 0x40000000
dec rcx
jne 0x1402a5260
imul rax, rdi, 0x110
lea ecx, [r9 - 2]
add rcx, rax
movzx eax, word [rbx + rsi*2 + 0x33dc8]
mov edx, dword [rbx + rcx*4 + 0x38e98]
xor rax, 0x7f0
lea rcx, [r10 + r10*2]
shr rax, 4
add rcx, rcx
add edx, dword [rbx + rax*4 + 0x324d4]
movzx eax, word [rbx + r11*2 + 0x33d80]
shr rax, 4
add edx, dword [rbx + rax*4 + 0x324d4]
add edx, r8d
cmp edx, dword [rbx + rcx*8 + 0x4d4]
jae 0x1402a52ec
mov eax, dword [rbp - 0x61]
xor r11d, r11d
mov dword [rbx + rcx*8 + 0x4d4], edx
mov dword [rbx + rcx*8 + 0x4f0], r11d
mov qword [rbx + rcx*8 + 0x4dc], 1
mov dword [rbx + rcx*8 + 0x4ec], eax
mov r11d, dword [rbp - 0x75]
mov rdx, qword [rbp - 0x49]
lea rax, [r13*4]
xor r15d, r15d
mov qword [rbp - 0x31], rax
lea rax, [rbp - 1]
mov dword [rbp - 0x4d], 2
mov qword [rbp - 0x19], rax
mov dword [rbp - 0x59], r15d
jmp 0x1402a5324
mov r14d, dword [rbp - 0x79]
jmp 0x1402a52f0
mov r14d, dword [rbp - 0x79]
mov ecx, dword [rax]
mov r12d, dword [rbp - 0x69]
mov rsi, rdx
inc ecx
sub rsi, rcx
mov qword [rbp - 0x11], rsi
movzx eax, byte [rsi]
cmp byte [rdx], al
jne 0x1402a5846
movzx eax, byte [rsi + 1]
cmp byte [rdx + 1], al
jne 0x1402a5846
mov edi, 2
cmp r12d, edi
jbe 0x1402a5372
lea rcx, [rsi + 2]
sub rdx, rsi
nop
movzx eax, byte [rcx]
cmp byte [rdx + rcx], al
jne 0x1402a5372
inc edi
inc rcx
cmp edi, r12d
jb 0x1402a5360
mov r13d, dword [rbp - 0x71]
lea edx, [rdi + r13]
cmp r14d, edx
jae 0x1402a53af
mov eax, r14d
sub edx, r14d
lea rcx, [rax + rax*2]
lea rax, [rbx + 0x4d4]
shl rcx, 4
add rax, rcx
add r14d, edx
mov ecx, edx
mov dword [rbp - 0x79], r14d
lea rax, [rax + 0x30]
mov dword [rax], 0x40000000
dec rcx
jne 0x1402a53a0
mov r9d, dword [rbp - 0x29]
mov r14d, edi
mov r8d, r11d
mov edx, r15d
mov rcx, rbx
mov dword [rbp - 0x51], r14d
call fcn.1402a44a0
add eax, dword [rbp - 0x25]
mov dword [rbp - 0x41], eax
imul rsi, qword [rbp - 0x21], 0x110
mov qword [rbp - 9], rsi
nop word [rax + rax]
lea edx, [rdi - 2]
lea ecx, [rdi + r13]
add rdx, rsi
lea rcx, [rcx + rcx*2]
mov r8d, dword [rbx + rdx*4 + 0x38e98]
add rcx, rcx
add r8d, eax
cmp r8d, dword [rbx + rcx*8 + 0x4d4]
jae 0x1402a5429
mov dword [rbx + rcx*8 + 0x4d4], r8d
mov dword [rbx + rcx*8 + 0x4ec], r13d
mov dword [rbx + rcx*8 + 0x4f0], r15d
mov dword [rbx + rcx*8 + 0x4dc], 0
dec edi
cmp edi, 2
jae 0x1402a53e0
mov rsi, qword [rbp - 0x11]
test r15d, r15d
jne 0x1402a5440
lea eax, [r14 + 1]
mov dword [rbp - 0x4d], eax
mov edx, dword [rbx + 0x32f68]
lea r10d, [r14 + 1]
add edx, r10d
cmp edx, dword [rbp - 0x55]
cmova edx, dword [rbp - 0x55]
cmp r10d, edx
jae 0x1402a547a
mov r8, qword [rbp - 0x49]
mov ecx, r10d
add rcx, rsi
sub r8, rsi
movzx eax, byte [rcx]
cmp byte [r8 + rcx], al
jne 0x1402a547a
inc r10d
inc rcx
cmp r10d, edx
jb 0x1402a5466
or eax, 0xffffffff
sub eax, r14d
add r10d, eax
cmp r10d, 2
jb 0x1402a56d5
mov r8, qword [rbp - 0x49]
movzx edi, byte [r14 + rsi]
mov edx, dword [rbx + 0x33bcc]
mov r9d, dword [rbp - 0x65]
mov r13d, dword [rbx + 0x33bdc]
mov r15, qword [rbx + 0x33be0]
add r9d, r14d
mov rax, r14
xor r14d, r14d
movzx r11d, byte [rax + r8]
mov ecx, 8
sub cl, dl
mov r12d, r13d
mov esi, 0x100
and r12d, r9d
and r9d, dword [rbx + 0x33bd8]
or r11d, esi
dec eax
movzx r8d, byte [rax + r8]
shr r8d, cl
mov ecx, edx
shl r9d, cl
add r8d, r9d
lea r8d, [r8 + r8*2]
shl r8d, 8
add edi, edi
mov eax, esi
mov ecx, r11d
shr ecx, 8
and eax, edi
add eax, esi
add eax, ecx
mov ecx, r11d
add r11d, r11d
shr ecx, 7
add rax, r8
movzx edx, word [r15 + rax*2]
and ecx, 1
mov eax, r11d
neg ecx
shr rdx, 4
xor eax, edi
sar rcx, 4
not eax
and ecx, 0x7f
and esi, eax
xor rdx, rcx
add r14d, dword [rbx + rdx*4 + 0x324d4]
cmp r11d, 0x10000
jb 0x1402a54f2
mov r15d, dword [rbp - 0x51]
mov rax, qword [rbp - 0x31]
mov esi, dword [rbp - 0x65]
lea r11, [0x140000000]
inc esi
mov r8d, dword [rax + r11 + 0x330960]
add esi, r15d
mov eax, r12d
mov edi, dword [r11 + r8*4 + 0x3309f0]
mov ecx, r8d
and esi, r13d
mov r13d, dword [rbp - 0x71]
shl rcx, 4
add rcx, rax
lea r8d, [r13 + 1]
movzx edx, word [rbx + rcx*2 + 0x33be8]
lea ecx, [r15 - 2]
add rcx, qword [rbp - 9]
shr rdx, 4
mov r9d, dword [rbx + rdx*4 + 0x324d4]
add r9d, dword [rbx + rcx*4 + 0x38e98]
movzx ecx, word [rbx + rdi*2 + 0x33d68]
add r9d, r14d
xor rcx, 0x7f0
mov r14d, edi
add r9d, dword [rbp - 0x41]
shl r14, 4
shr rcx, 4
mov r11d, dword [rbx + rcx*4 + 0x324d4]
add r14, rsi
movzx eax, word [rbx + r14*2 + 0x33be8]
xor rax, 0x7f0
shr rax, 4
add r11d, dword [rbx + rax*4 + 0x324d4]
lea eax, [r10 + r15]
add r11d, r9d
mov r9d, dword [rbp - 0x79]
add r8d, eax
cmp r9d, r8d
jae 0x1402a562f
lea rcx, [r9 + r9*2]
lea rdx, [rbx + 0x4d4]
mov eax, r8d
shl rcx, 4
sub eax, r9d
add rdx, rcx
add r9d, eax
mov ecx, eax
mov dword [rbp - 0x79], r9d
nop
lea rdx, [rdx + 0x30]
mov dword [rdx], 0x40000000
dec rcx
jne 0x1402a5620
mov r12d, dword [rbp - 0x69]
imul rax, rsi, 0x110
lea ecx, [r10 - 2]
add rcx, rax
movzx eax, word [rbx + r14*2 + 0x33dc8]
mov edx, dword [rbx + rcx*4 + 0x38e98]
xor rax, 0x7f0
lea rcx, [r8 + r8*2]
shr rax, 4
add rcx, rcx
add edx, dword [rbx + rax*4 + 0x324d4]
movzx eax, word [rbx + rdi*2 + 0x33d80]
shr rax, 4
add edx, dword [rbx + rax*4 + 0x324d4]
add edx, r11d
cmp edx, dword [rbx + rcx*8 + 0x4d4]
jae 0x1402a583d
mov eax, dword [rbp - 0x61]
mov dword [rbx + rcx*8 + 0x4d4], edx
mov dword [rbx + rcx*8 + 0x4f0], 0
add eax, r15d
mov r15d, dword [rbp - 0x59]
mov dword [rbx + rcx*8 + 0x4dc], 1
mov dword [rbx + rcx*8 + 0x4ec], eax
mov dword [rbx + rcx*8 + 0x4e0], 1
mov dword [rbx + rcx*8 + 0x4e4], r13d
mov dword [rbx + rcx*8 + 0x4e8], r15d
mov rdx, qword [rbp - 0x49]
mov rax, qword [rbp - 0x19]
mov r11d, dword [rbp - 0x75]
inc r15d
add rax, 4
mov dword [rbp - 0x59], r15d
mov qword [rbp - 0x19], rax
cmp r15d, 4
jb 0x1402a5320
mov ecx, dword [rbp - 0x6d]
lea r11, [rbx + 0x326d4]
cmp ecx, r12d
jbe 0x1402a5726
xor edx, edx
mov ecx, r12d
cmp r12d, dword [r11]
jbe 0x1402a571c
add edx, 2
cmp r12d, dword [r11 + rdx*4]
ja 0x1402a5713
mov dword [r11 + rdx*4], r12d
add edx, 2
mov dword [rbp - 0x5d], edx
mov esi, dword [rbp - 0x4d]
cmp ecx, esi
jb 0x1402a5bcc
mov rax, qword [rbp + 0xf]
mov r9d, dword [rbp - 0x3d]
mov r8d, dword [rbp - 0x79]
movzx eax, word [rax]
lea edx, [rcx + r13]
shr rax, 4
mov eax, dword [rbx + rax*4 + 0x324d4]
add r9d, eax
mov dword [rbp - 0x41], r9d
cmp r8d, edx
jae 0x1402a578f
lea rcx, [r8 + r8*2]
sub edx, r8d
lea rax, [rbx + 0x4d4]
shl rcx, 4
add rax, rcx
add r8d, edx
mov ecx, edx
mov dword [rbp - 0x79], r8d
nop dword [rax]
lea rax, [rax + 0x30]
mov dword [rax], 0x40000000
dec rcx
jne 0x1402a5780
xor r13d, r13d
cmp esi, dword [r11]
jbe 0x1402a57aa
nop word [rax + rax]
add r13d, 2
cmp esi, dword [r11 + r13*4]
ja 0x1402a57a0
imul rdx, qword [rbp - 0x21], 0x110
mov r14d, dword [rbp - 0x71]
mov edi, dword [rbp - 0x65]
lea eax, [r13 + 1]
mov ecx, 0x7ffff
lea r10d, [r14 - 1]
mov r15d, dword [r11 + rax*4]
mov qword [rbp + 0xf], rdx
mov dword [rbp - 0x69], r10d
sub ecx, r15d
mov eax, r15d
shr ecx, 0x1f
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
dec edi
movzx eax, byte [rax + rbx + 0x304d4]
mov dword [rbp - 0x6d], edi
lea r8d, [rax + rcx*2]
mov dword [rbp - 0x59], r8d
nop dword [rax + rax]
lea ecx, [rsi - 2]
mov eax, ecx
add rax, rdx
mov r12d, dword [rbx + rax*4 + 0x34650]
mov eax, 3
add r12d, r9d
cmp esi, 5
cmovb eax, ecx
cmp r15d, 0x80
jae 0x1402a584f
mov ecx, eax
mov eax, r15d
shl rcx, 7
add rcx, rax
add r12d, dword [rbx + rcx*4 + 0x33384]
jmp 0x1402a5872
mov r15d, dword [rbp - 0x59]
jmp 0x1402a56d5
mov r13d, dword [rbp - 0x71]
jmp 0x1402a56d9
mov edx, eax
mov eax, r8d
mov ecx, r15d
shl rdx, 6
and ecx, 0xf
add rdx, rax
mov eax, dword [rbx + rdx*4 + 0x32f84]
add eax, dword [rbx + rcx*4 + 0x33b84]
add r12d, eax
lea r9d, [rsi + 1]
mov dword [rbp - 0x51], r9d
lea eax, [r9 + r10]
lea rcx, [rax + rax*2]
shl rcx, 4
add rcx, rbx
cmp r12d, dword [rcx + 0x4d4]
jae 0x1402a58b4
lea eax, [r15 + 4]
mov dword [rcx + 0x4d4], r12d
mov dword [rcx + 0x4ec], r14d
mov dword [rcx + 0x4f0], eax
mov dword [rcx + 0x4dc], 0
cmp esi, dword [r11 + r13*4]
jne 0x1402a5bb8
mov r8, qword [rbp - 0x49]
mov edx, dword [rbx + 0x32f68]
lea ecx, [r15 + 1]
add edx, r9d
mov r10, r8
mov r11d, r9d
sub r10, rcx
cmp edx, dword [rbp - 0x55]
cmova edx, dword [rbp - 0x55]
cmp r9d, edx
jae 0x1402a5908
mov ecx, r9d
add rcx, r10
sub r8, r10
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [r8 + rcx], al
jne 0x1402a5904
inc r11d
inc rcx
cmp r11d, edx
jb 0x1402a58f0
mov r8, qword [rbp - 0x49]
or eax, 0xffffffff
sub eax, esi
add r11d, eax
cmp r11d, 2
jb 0x1402a5b51
mov eax, dword [rbx + 0x33bdc]
mov edx, dword [rbx + 0x33bcc]
add r9d, edi
and eax, r9d
and r9d, dword [rbx + 0x33bd8]
xor r14d, r14d
mov dword [rbp - 0x3d], eax
mov eax, esi
mov ecx, 8
movzx edi, byte [rax + r10]
movzx r10d, byte [rax + r8]
mov eax, dword [rbp - 0x4d]
sub cl, dl
mov esi, 0x100
or r10d, esi
dec eax
movzx r8d, byte [rax + r8]
shr r8d, cl
mov ecx, edx
shl r9d, cl
add r8d, r9d
lea r9d, [r8 + r8*2]
mov r8, qword [rbx + 0x33be0]
shl r9d, 8
nop dword [rax + rax]
add edi, edi
mov eax, esi
mov ecx, r10d
shr ecx, 8
and eax, edi
add eax, esi
add eax, ecx
mov ecx, r10d
add r10d, r10d
shr ecx, 7
add rax, r9
movzx edx, word [r8 + rax*2]
and ecx, 1
mov eax, r10d
neg ecx
shr rdx, 4
xor eax, edi
sar rcx, 4
not eax
and ecx, 0x7f
and esi, eax
xor rdx, rcx
add r14d, dword [rbx + rdx*4 + 0x324d4]
cmp r10d, 0x10000
jb 0x1402a5980
mov r9d, dword [rbp - 0x3d]
mov rax, qword [rbp - 0x31]
lea r10, [0x140000000]
mov edx, dword [rax + r10 + 0x330990]
lea edi, [r9 + 1]
mov r10d, dword [r10 + rdx*4 + 0x3309f0]
and edi, dword [rbx + 0x33bdc]
mov ecx, edx
shl rcx, 4
mov esi, r10d
add rcx, r9
shl rsi, 4
movzx eax, word [rbx + rcx*2 + 0x33be8]
movzx ecx, word [rbx + r10*2 + 0x33d68]
add rsi, rdi
shr rax, 4
xor rcx, 0x7f0
mov r8d, dword [rbx + rax*4 + 0x324d4]
movzx eax, word [rbx + rsi*2 + 0x33be8]
shr rcx, 4
mov r9d, dword [rbx + rcx*4 + 0x324d4]
add r8d, r14d
mov r14d, dword [rbp - 0x71]
add r8d, r12d
mov r12d, dword [rbp - 0x79]
xor rax, 0x7f0
shr rax, 4
add r9d, dword [rbx + rax*4 + 0x324d4]
mov eax, dword [rbp - 0x4d]
add r9d, r8d
add eax, r11d
lea r8d, [r14 + 1]
add r8d, eax
cmp r12d, r8d
jae 0x1402a5aaf
lea rcx, [r12 + r12*2]
lea rdx, [rbx + 0x4d4]
mov eax, r8d
shl rcx, 4
sub eax, r12d
add rdx, rcx
add r12d, eax
mov ecx, eax
mov dword [rbp - 0x79], r12d
nop dword [rax + rax]
lea rdx, [rdx + 0x30]
mov dword [rdx], 0x40000000
dec rcx
jne 0x1402a5aa0
imul rax, rdi, 0x110
mov edi, dword [rbp - 0x6d]
lea ecx, [r11 - 2]
add rcx, rax
movzx eax, word [rbx + rsi*2 + 0x33dc8]
mov edx, dword [rbx + rcx*4 + 0x38e98]
xor rax, 0x7f0
lea rcx, [r8 + r8*2]
shr rax, 4
add rcx, rcx
add edx, dword [rbx + rax*4 + 0x324d4]
movzx eax, word [rbx + r10*2 + 0x33d80]
shr rax, 4
add edx, dword [rbx + rax*4 + 0x324d4]
add edx, r9d
mov r9d, dword [rbp - 0x51]
cmp edx, dword [rbx + rcx*8 + 0x4d4]
jae 0x1402a5b51
lea eax, [r9 + r14]
mov dword [rbx + rcx*8 + 0x4d4], edx
mov dword [rbx + rcx*8 + 0x4f0], 0
mov dword [rbx + rcx*8 + 0x4ec], eax
lea eax, [r15 + 4]
mov dword [rbx + rcx*8 + 0x4dc], 1
mov dword [rbx + rcx*8 + 0x4e0], 1
mov dword [rbx + rcx*8 + 0x4e4], r14d
mov dword [rbx + rcx*8 + 0x4e8], eax
add r13d, 2
cmp r13d, dword [rbp - 0x5d]
je 0x1402a5bcc
mov r10d, dword [rbp - 0x69]
lea eax, [r13 + 1]
lea r11, [rbx + 0x326d4]
mov r15d, dword [r11 + rax*4]
cmp r15d, 0x80
jb 0x1402a5bb4
mov rdx, qword [rbp + 0xf]
mov ecx, 0x7ffff
mov eax, r15d
sub ecx, r15d
mov esi, r9d
mov dword [rbp - 0x4d], r9d
mov r9d, dword [rbp - 0x41]
shr ecx, 0x1f
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + rbx + 0x304d4]
lea r8d, [rax + rcx*2]
mov dword [rbp - 0x59], r8d
jmp 0x1402a5800
mov r8d, dword [rbp - 0x59]
mov rdx, qword [rbp + 0xf]
mov esi, r9d
mov dword [rbp - 0x4d], r9d
mov r9d, dword [rbp - 0x41]
jmp 0x1402a5800
mov esi, dword [rbp - 0x61]
lea r15, [0x140000000]
mov dword [rbp - 0x71], esi
cmp esi, dword [rbp - 0x79]
jne 0x1402a4ca0
jmp 0x1402a5bf1
mov dword [rbx + 0x4cc], r14d
mov dword [rbx + 0x4c8], edi
mov rdx, qword [rbp - 0x39]
mov r8d, esi
mov rcx, rbx
call fcn.1402a4570
mov r14, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0x118]
mov r15, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xe0]
mov r12, qword [rsp + 0xd8]
mov r13, qword [rsp + 0xd0]
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.1402b6d40
add rsp, 0xe8
pop rbx
pop rbp
ret