Function at 0x140015d40
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x40
mov rsi, rcx
call fcn.140063130
mov ecx, 0xc3d440f8
xor ecx, 0xc3d440f8
cmp eax, ecx
jne 0x140015fa5
jmp 0x140015fe6
movabs rax, 0xe21c2b90aef3ae56
movabs rcx, 0x7cbad353a8964d7e
sub rax, rcx
mov rcx, rsi
sub rcx, rax
movabs rax, 0x27000000000000
shr rax, 0x30
movabs rdx, 0x27000000000000
shl rdx, 0x10
or rax, rdx
add rcx, rax
movabs rax, 0x1583d065d60d8656
shr rax, 0xc
movabs rdx, 0x1583d065d60d8656
shl rdx, 0x34
or rax, rdx
add rcx, rax
call fcn.140086460
mov qword [rsp + 0x30], rax
mov eax, 0x467f8ed6
xor eax, 0x467f8d98
mov dword [rsp + 0x28], eax
jmp 0x140015fb8
xor eax, eax
sub ecx, 0x34e
sete al
lea rcx, case.0x140015e08.0
mov rax, qword [rcx + rax*8]
mov ecx, dword [0x1401129b0]
xor ecx, 0x49030e13
sub rax, rcx
jmp rax
call fcn.140063262
mov edx, 0x62b92375
add edx, 0x9d46dc8b
mov cl, byte [rsp + 0x2f]
cmp eax, edx
jne 0x140015ed0
jmp 0x140015f2e
cmp ecx, 0x353
jl 0x140015d65
jmp 0x140015f33
jmp 0x140015fb8
cmp ecx, 0x34f
jl 0x140015de3
jmp 0x140016030
movzx eax, cl
and eax, 1
lea rcx, case.0x140015ef3.0
mov rax, qword [rcx + rax*8]
mov ecx, dword [0x1401129e0]
add ecx, 0xcf47c11b
movsxd rcx, ecx
sub rax, rcx
jmp rax
call fcn.140063223
xor ecx, ecx
shl ecx, 0xe
xor edx, edx
shr edx, 0x12
or ecx, edx
cmp eax, ecx
jne 0x140015f2e
jmp 0x140015e0a
jmp 0x140015f3d
jmp 0x140015e0a
cmp ecx, 0x354
jl 0x140015f4e
jmp 0x140015ef5
cmp ecx, 0x351
jl 0x140015e92
jmp 0x140015e2b
movabs rax, 0xfeba0a271e7b9668
movabs rcx, 0x145f5d8e18469b1
xor rax, rcx
cmp rsi, rax
setb al
and al, 1
mov byte [rsp + 0x2f], al
mov eax, 0xd5000000
shr eax, 0x16
mov ecx, 0xd5000000
shl ecx, 0xa
or eax, ecx
mov dword [rsp + 0x28], eax
jmp 0x140015dde
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov qword [rax - 8], rcx
mov rax, qword [rsp + 0x38]
add rsp, 0x40
pop rsi
ret
mov eax, 0x211a440
xor eax, 0x211a713
mov dword [rsp + 0x28], eax
jmp 0x140015d60
call fcn.14006315e
mov ecx, 0x6ad49744
sub ecx, 0x6ad49744
cmp eax, ecx
jne 0x140016042
jmp 0x14001603e
call fcn.1400583f3
mov ecx, 0xd521516
xor ecx, 0xd521516
mov edx, 0x6a600000
shr edx, 0x15
mov r8d, 0x6a600000
shl r8d, 0xb
or edx, r8d
mov dword [rsp + 0x28], edx
cmp eax, ecx
jne 0x140015fe6
jmp 0x140015e3c
cmp ecx, 0x350
jl 0x140015f8c
jmp 0x140015fe6
mov eax, dword [rsp + 0x28]
jmp 0x140016044
call fcn.14005886c
mov edx, 0x743edec1
add edx, 0x8bc1213f
mov ecx, dword [rsp + 0x28]
cmp eax, edx
jne 0x140015f0f
jmp 0x140016044
lea rdx, [rbp - 0x40]
call fcn.14009c740
nop
mov rsi, qword [rbp - 0x30]
mov rdx, rbx
mov rcx, r12
call fcn.140092b6c
xor ebx, ebx
test al, al
je 0x14009c680
or dword [r14], 1
test rsi, rsi
jne 0x14009c68b
or dword [r14], 2
jmp 0x14009c709
mov rdx, rsi
mov rcx, rdi
cmp rsi, qword [rdi + 0x10]
ja 0x14009c69e
call fcn.14008e808
jmp 0x14009c6aa
xor r8d, r8d
sub rdx, qword [rdi + 0x10]
call fcn.14009eafc
lea rax, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rax, qword [rbp - 0x40]
cmp byte [rax], 0x2d
jne 0x14009c704
mov rcx, rdi
cmp qword [rdi + 0x18], 7
jbe 0x14009c6ca
mov rcx, qword [rdi]
movzx eax, word [rbp - 0xc]
mov word [rcx], ax
mov ebx, 1
jmp 0x14009c704
lea rax, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rax, qword [rbp - 0x40]
movsx rax, byte [rax + rbx]
movzx ecx, word [rbp + rax*2 - 0x80]
mov rax, rdi
cmp qword [rdi + 0x18], 7
jbe 0x14009c6fd
mov rax, qword [rdi]
mov word [rax + rbx*2], cx
inc rbx
cmp rbx, rsi
jb 0x14009c6d8
movups xmm0, xmmword [r12]
movdqu xmmword [r15], xmm0
lea rcx, [rbp - 0x40]
call fcn.140087070
mov rax, r15
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1400865d0
add rsp, 0x80
invalid
add byte [rax], 0
add byte [rcx + 0x5f], al
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
invalid
mov qword [rsp + 0x50], rax
test rbx, rbx
je 0x14009c81b
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 0x10]
call qword [0x1400ea118]
test rax, rax
mov rcx, rax
je 0x14009c81b
mov rax, qword [rax]
mov edx, r13d
mov rax, qword [rax]
call qword [0x1400ea118]
mov r13b, sil
mov dword [rsp + 0x38], r13d
mov byte [rsp + 0x34], sil
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], rsi
mov qword [rbp - 0x10], 7
add byte [rax], al
add byte [rax], al
mov word [rbp - 0x28], si
mov rax, qword [r14]
lea rdx, [rsp + 0x70]
mov rcx, r14
mov rax, qword [rax + 0x58]
call qword [0x1400ea118]
xorps xmm0, xmm0
movups xmmword [r12], xmm0
mov qword [r12 + 0x10], rsi
mov qword [r12 + 0x18], 0xf
mov byte [r12], sil
mov eax, 1
mov esi, eax
mov dword [rsp + 0x30], eax
mov rax, qword [rbp + 0x108]
mov rax, qword [rax + 0x40]
mov rbx, qword [rax + 8]
mov qword [rbp - 0x80], rbx
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [0x1400ea118]
nop
lea rcx, [rsp + 0x78]
call fcn.14009961c
mov rcx, rax
mov qword [rsp + 0x78], rax
test rbx, rbx
je 0x14009c8e2
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 0x10]
call qword [0x1400ea118]
mov rcx, rax
test rax, rax
je 0x14009c8dd
mov rax, qword [rax]
mov edx, 1
mov rax, qword [rax]
call qword [0x1400ea118]
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
mov r9, qword [rsp + 0x60]
lea r8, [0x1400dc644]
lea rdx, [0x1400dc638]
mov rax, qword [rax + 0x58]
call qword [0x1400ea118]
xor r9d, r9d
mov ebx, r9d
mov qword [rsp + 0x40], rbx
cmp rbx, 4
jae 0x14009d788
mov al, byte [rsp + rbx + 0x70]
cmp al, 0x20
je 0x14009c93b
cmp al, 0x24
je 0x14009d3fb
cmp al, 0x2b
je 0x14009d04b
cmp al, 0x76
je 0x14009c9a8
cmp al, 0x78
jne 0x14009d772
cmp rbx, 3
je 0x14009d772
mov bl, r9b
mov rdx, r15
mov rcx, rdi
call fcn.140092b6c
xor r9d, r9d
test al, al
jne 0x14009d74f
mov r12, qword [rsp + 0x78]
lea r14d, [r9 + 1]
mov r13d, 0xffff
cmp byte [rdi + 8], r9b
jne 0x14009d6b2
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009d6ab
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x14009d68f
mov rax, qword [rcx + 0x50]
cmp dword [rax], r9d
jle 0x14009d68f
movzx eax, word [rdx]
jmp 0x14009d69f
mov dword [rsp + 0x4c], r9d
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x48]
call qword [0x1400ea118]
mov r13d, eax
mov dword [rsp + 0x48], eax
mov rax, qword [r14]
lea rdx, [rbp + 0x18]
mov rcx, r14
mov rax, qword [rax + 0x28]
call qword [0x1400ea118]
bts esi, 9
mov dword [rbp - 0x78], esi
mov dword [rsp + 0x30], esi
xor ebx, ebx
cmp qword [rbp + 0x28], rbx
je 0x14009cd15
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x20]
call qword [0x1400ea118]
movzx r12d, ax
test ax, ax
je 0x14009cd10
lea rcx, [rbp + 0x18]
cmp qword [rbp + 0x30], 0xf
cmova rcx, qword [rbp + 0x18]
cmp byte [rcx], 0x7f
jae 0x14009cd10
xorps xmm0, xmm0
movups xmmword [rbp - 0x68], xmm0
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x50], 0xf
mov byte [rbp - 0x68], bl
xor edx, edx
lea rcx, [rbp - 0x68]
call fcn.1400232d0
mov rdx, r15
mov rcx, rdi
call fcn.140092b6c
xor r10d, r10d
test al, al
jne 0x14009cc70
mov r9, qword [rsp + 0x60]
lea r13, [r9 + 0x16]
lea r14, [rdi + 0xa]
mov r15, r14
cmp byte [rdi + 8], r10b
jne 0x14009cac1
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009caba
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x14009ca92
mov rax, qword [rcx + 0x50]
cmp dword [rax], r10d
jle 0x14009ca92
movzx eax, word [rdx]
jmp 0x14009caa7
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [0x1400ea118]
mov r9, qword [rsp + 0x60]
xor r10d, r10d
mov ecx, 0xffff
cmp cx, ax
je 0x14009caba
mov word [r15], ax
mov r14, r15
jmp 0x14009cabd
mov qword [rdi], r10
mov byte [rdi + 8], 1
movzx r8d, word [r14]
mov rdx, r13
mov rcx, r9
call fcn.14008e1b0
sub rax, qword [rsp + 0x60]
sar rax, 1
cmp rax, 0xa
jae 0x14009cb25
lea rcx, [0x1400dc638]
mov dl, byte [rax + rcx]
mov rcx, qword [rsp + 0x58]
call fcn.1400232d0
lea rax, [rbp - 0x68]
cmp qword [rbp - 0x50], 0xf
cmova rax, qword [rbp - 0x68]
cmp byte [rbx + rax], 0x7f
je 0x14009cbb5
lea rax, [rbp - 0x68]
cmp qword [rbp - 0x50], 0xf
cmova rax, qword [rbp - 0x68]
mov ecx, 1
add byte [rax + rbx], cl
jmp 0x14009cbb5
lea rax, [rbp - 0x68]
mov r8, qword [rbp - 0x68]
mov r9, qword [rbp - 0x50]
cmp r9, 0xf
cmova rax, r8
xor r10d, r10d
cmp byte [rbx + rax], r10b
je 0x14009cc36
cmp byte [rdi + 8], r10b
jne 0x14009cb9d
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009cb96
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x14009cb6e
mov rax, qword [rcx + 0x50]
cmp dword [rax], r10d
jle 0x14009cb6e
movzx eax, word [rdx]
jmp 0x14009cb86
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [0x1400ea118]
mov r9, qword [rbp - 0x50]
mov r8, qword [rbp - 0x68]
xor r10d, r10d
mov ecx, 0xffff
cmp cx, ax
je 0x14009cb96
mov word [r14], ax
jmp 0x14009cb99
mov qword [rdi], r10
mov byte [rdi + 8], 1
cmp word [r14], r12w
jne 0x14009cc36
xor edx, edx
lea rcx, [rbp - 0x68]
call fcn.1400232d0
inc rbx
mov rcx, qword [rdi]
xor r8d, r8d
test rcx, rcx
je 0x14009cc06
mov rax, qword [rcx + 0x38]
cmp qword [rax], r8
je 0x14009cbe7
mov rax, qword [rcx + 0x50]
cmp dword [rax], r8d
jle 0x14009cbe7
dec dword [rax]
mov rcx, qword [rcx + 0x38]
mov rdx, qword [rcx]
lea rax, [rdx + 2]
mov qword [rcx], rax
movzx eax, word [rdx]
jmp 0x14009cbf7
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
call qword [0x1400ea118]
xor r8d, r8d
mov ecx, 0xffff
cmp cx, ax
je 0x14009cc06
mov al, r8b
jmp 0x14009cc0e
mov qword [rdi], r8
mov eax, 1
mov byte [rdi + 8], al
mov rdx, qword [rsp + 0x68]
mov rcx, rdi
call fcn.140092b6c
xor r10d, r10d
test al, al
mov r9, qword [rsp + 0x60]
je 0x14009ca6a
mov r9, qword [rbp - 0x50]
mov r8, qword [rbp - 0x68]
mov r11d, 1
mov r13d, dword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
mov r15, qword [rsp + 0x68]
test rbx, rbx
je 0x14009cc7e
lea rax, [rbp - 0x68]
cmp r9, 0xf
cmova rax, r8
cmp byte [rbx + rax], r10b
jle 0x14009cc67
add rbx, r11
jmp 0x14009cc7e
mov al, r11b
mov dword [rsp + 0x38], eax
jmp 0x14009cc82
mov r9, qword [rbp - 0x50]
mov r8, qword [rbp - 0x68]
mov r11d, 1
mov eax, dword [rsp + 0x38]
lea rcx, [rbp + 0x18]
cmp qword [rbp + 0x30], 0xf
cmova rcx, qword [rbp + 0x18]
test al, al
jne 0x14009ccee
test rbx, rbx
je 0x14009cce0
mov dl, byte [rcx]
cmp dl, 0x7f
je 0x14009cce0
sub rbx, r11
je 0x14009ccb6
lea rax, [rbp - 0x68]
cmp r9, 0xf
cmova rax, r8
cmp dl, byte [rbx + rax]
jne 0x14009ccd6
test rbx, rbx
jne 0x14009cccb
lea rax, [rbp - 0x68]
cmp r9, 0xf
cmova rax, r8
cmp dl, byte [rax]
jl 0x14009ccd6
cmp byte [rcx + 1], r10b
jle 0x14009cc94
inc rcx
jmp 0x14009cc94
mov r13b, r11b
mov dword [rsp + 0x38], r13d
jmp 0x14009ccf3
lea rcx, [rbp - 0x68]
call fcn.140087070
jmp 0x14009ce44
mov r13d, dword [rsp + 0x38]
lea rcx, [rbp - 0x68]
call fcn.140087070
nop
lea rcx, [rbp + 0x18]
call fcn.140087070
mov r12, qword [rsp + 0x58]
jmp 0x14009d682
mov r12, qword [rsp + 0x58]
mov rdx, r15
mov rcx, rdi
call fcn.140092b6c
xor r8d, r8d
test al, al
jne 0x14009ce44
lea rbx, [rdi + 0xa]
mov r14, rbx
mov rsi, qword [rsp + 0x60]
mov r13, qword [rsp + 0x68]
cmp byte [rdi + 8], r8b
jne 0x14009cd8e
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009cd87
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x14009cd64
mov rax, qword [rcx + 0x50]
cmp dword [rax], r8d
jle 0x14009cd64
movzx eax, word [rdx]
jmp 0x14009cd74
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [0x1400ea118]
xor r8d, r8d
mov ecx, 0xffff
cmp cx, ax
je 0x14009cd87
mov word [r14], ax
mov rbx, r14
jmp 0x14009cd8a
mov qword [rdi], r8
mov byte [rdi + 8], 1
movzx r8d, word [rbx]
lea rdx, [rsi + 0x16]
mov rcx, rsi
call fcn.14008e1b0
sub rax, rsi
sar rax, 1
cmp rax, 0xa
jae 0x14009ce32
lea rcx, [0x1400dc638]
mov dl, byte [rax + rcx]
mov rcx, r12
call fcn.1400232d0
mov rcx, qword [rdi]
xor r8d, r8d
test rcx, rcx
je 0x14009ce11
mov rax, qword [rcx + 0x38]
cmp qword [rax], r8
je 0x14009cdf2
mov rax, qword [rcx + 0x50]
cmp dword [rax], r8d
jle 0x14009cdf2
dec dword [rax]
mov rcx, qword [rcx + 0x38]
mov rdx, qword [rcx]
lea rax, [rdx + 2]
mov qword [rcx], rax
movzx eax, word [rdx]
jmp 0x14009ce02
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
call qword [0x1400ea118]
xor r8d, r8d
mov ecx, 0xffff
cmp cx, ax
je 0x14009ce11
mov al, r8b
jmp 0x14009ce19
mov qword [rdi], r8
mov eax, 1
mov byte [rdi + 8], al
mov rdx, r13
mov rcx, rdi
call fcn.140092b6c
xor r8d, r8d
test al, al
je 0x14009cd3c
mov esi, dword [rbp - 0x78]
mov r13d, dword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
mov r15, qword [rsp + 0x68]
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [0x1400ea118]
movzx ebx, ax
mov rdx, r15
mov rcx, rdi
call fcn.140092b6c
xor r8d, r8d
test al, al
jne 0x14009cff2
test bx, bx
je 0x14009cff2
cmp byte [rdi + 8], r8b
jne 0x14009cec5
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009cebe
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x14009ce9e
mov rax, qword [rcx + 0x50]
cmp dword [rax], r8d
jle 0x14009ce9e
movzx eax, word [rdx]
jmp 0x14009ceae
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [0x1400ea118]
xor r8d, r8d
mov ecx, 0xffff
cmp cx, ax
je 0x14009cebe
mov word [rdi + 0xa], ax
jmp 0x14009cec1
mov qword [rdi], r8
mov byte [rdi + 8], 1
cmp word [rdi + 0xa], bx
mov ebx, dword [rsp + 0x4c]
jne 0x14009cff6
mov r12, qword [rsp + 0x60]
mov eax, 1
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009cf30
mov rax, qword [rcx + 0x38]
cmp qword [rax], r8
invalid
je 0x14009cf0c
mov rax, qword [rcx + 0x50]
cmp dword [rax], r8d
jle 0x14009cf0c
dec dword [rax]
mov rcx, qword [rcx + 0x38]
mov rdx, qword [rcx]
lea rax, [rdx + 2]
mov qword [rcx], rax
movzx eax, word [rdx]
jmp 0x14009cf1c
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
call qword [0x1400ea118]
xor r8d, r8d
mov ecx, 0xffff
cmp cx, ax
je 0x14009cf2b
mov al, r8b
jmp 0x14009cf33
mov eax, 1
mov qword [rdi], r8
mov byte [rdi + 8], al
mov rdx, r15
mov rcx, rdi
call fcn.140092b6c
cmp ebx, r13d
jge 0x14009cff6
xor r8d, r8d
test al, al
jne 0x14009cfe5
cmp byte [rdi + 8], r8b
jne 0x14009cfa4
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009cf9d
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x14009cf7d
mov rax, qword [rcx + 0x50]
cmp dword [rax], r8d
jle 0x14009cf7d
movzx eax, word [rdx]
jmp 0x14009cf8d
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [0x1400ea118]
xor r8d, r8d
mov ecx, 0xffff
cmp cx, ax
je 0x14009cf9d
mov word [rdi + 0xa], ax
jmp 0x14009cfa0
mov qword [rdi], r8
mov byte [rdi + 8], 1
lea rdx, [r12 + 0x16]
movzx r8d, word [rdi + 0xa]
mov rcx, r12
call fcn.14008e1b0
sub rax, r12
sar rax, 1
cmp rax, 0xa
jae 0x14009cfe5
lea rcx, [0x1400dc638]
mov dl, byte [rax + rcx]
mov rcx, qword [rsp + 0x58]
call fcn.1400232d0
mov eax, 1
add ebx, eax
xor r8d, r8d
jmp 0x14009cedd
mov ecx, 1
mov al, cl
mov dword [rsp + 0x38], eax
jmp 0x14009cffb
mov ebx, dword [rsp + 0x4c]
mov ecx, 1
mov r12, qword [rsp + 0x58]
xor eax, eax
cmp qword [r12 + 0x10], rax
jne 0x14009d013
mov r13b, cl
mov dword [rsp + 0x38], r13d
jmp 0x14009d03d
cmp ebx, r13d
jge 0x14009d038
sub r13d, ebx
mov ebx, r13d
mov r14d, 1
mov dl, 0x30
mov rcx, r12
call fcn.1400232d0
sub rbx, r14
jne 0x14009d024
mov r14, qword [rsp + 0x50]
mov r13d, dword [rsp + 0x38]
lea rcx, [rbp + 0x18]
call fcn.140087070
jmp 0x14009d682
mov rdx, r15
mov rcx, rdi
call fcn.140092b6c
xor r9d, r9d
test al, al
jne 0x14009d772
mov rax, qword [r14]
lea rdx, [rbp - 8]
mov rcx, r14
mov rax, qword [rax + 0x38]
call qword [0x1400ea118]
add byte [rdi], cl
mov edx, 0xce8308ee
add cl, byte [rcx + 0x33302474]
fisttp dword [rax + 0x39]
pop rbp
or byte [rdi], cl
invalid
lea eax, [rax]
add byte [rax], al
mov rax, qword [r14]
lea rdx, [rbp + 0x38]
mov rcx, r14
mov rax, qword [rax + 0x38]
call qword [0x1400ea118]
bts esi, 0xb
or esi, 4
mov dword [rsp + 0x30], esi
cmp byte [rdi + 8], bl
jne 0x14009d0fb
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009d0ee
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x14009d0d1
mov rax, qword [rcx + 0x50]
cmp dword [rax], ebx
jle 0x14009d0d1
movzx eax, word [rdx]
jmp 0x14009d0de
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [0x1400ea118]
mov ecx, 0xffff
cmp cx, ax
je 0x14009d0ee
mov word [rdi + 0xa], ax
jmp 0x14009d0f1
mov qword [rdi], rbx
mov edx, 1
mov byte [rdi + 8], dl
jmp 0x14009d100
mov edx, 1
movzx ecx, word [rdi + 0xa]
lea rax, [rbp + 0x38]
cmp qword [rbp + 0x50], 7
cmova rax, qword [rbp + 0x38]
cmp word [rax], cx
jne 0x14009d119
mov bl, dl
test sil, 4
je 0x14009d130
and esi, 0xfffffffb
mov dword [rsp + 0x30], esi
lea rcx, [rbp + 0x38]
call fcn.14009ecb0
nop
test sil, 2
je 0x14009d146
and esi, 0xfffffffd
mov dword [rsp + 0x30], esi
lea rcx, [rbp - 8]
call fcn.14009ecb0
xor r8d, r8d
test bl, bl
je 0x14009d1dc
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009d19f
mov rax, qword [rcx + 0x38]
cmp qword [rax], r8
je 0x14009d180
mov rax, qword [rcx + 0x50]
cmp dword [rax], r8d
jle 0x14009d180
dec dword [rax]
mov rcx, qword [rcx + 0x38]
mov rdx, qword [rcx]
lea rax, [rdx + 2]
mov qword [rcx], rax
movzx eax, word [rdx]
jmp 0x14009d190
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
call qword [0x1400ea118]
xor r8d, r8d
mov ecx, 0xffff
cmp cx, ax
je 0x14009d19f
mov al, r8b
jmp 0x14009d1a7
mov qword [rdi], r8
mov eax, 1
mov byte [rdi + 8], al
mov rax, qword [r14]
lea rdx, [rbp - 8]
mov rcx, r14
mov rax, qword [rax + 0x38]
call qword [0x1400ea118]
bts esi, 0xa
mov dword [rsp + 0x30], esi
lea rdx, [rbp - 8]
lea rcx, [rbp - 0x28]
call fcn.14009e994
lea rcx, [rbp - 8]
jmp 0x14009d67d
mov rax, qword [r14]
lea rdx, [rbp - 8]
mov rcx, r14
mov rax, qword [rax + 0x40]
call qword [0x1400ea118]
bts esi, 0xc
or esi, 8
mov dword [rsp + 0x30], esi
xor ebx, ebx
cmp qword [rbp + 8], rbx
jbe 0x14009d294
mov rax, qword [r14]
lea rdx, [rbp + 0x58]
mov rcx, r14
mov rax, qword [rax + 0x40]
call qword [0x1400ea118]
bts esi, 0xd
or esi, 0x10
mov dword [rsp + 0x30], esi
cmp byte [rdi + 8], bl
jne 0x14009d276
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009d269
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x14009d24c
mov rax, qword [rcx + 0x50]
cmp dword [rax], ebx
jle 0x14009d24c
movzx eax, word [rdx]
jmp 0x14009d259
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [0x1400ea118]
mov ecx, 0xffff
cmp cx, ax
je 0x14009d269
mov word [rdi + 0xa], ax
jmp 0x14009d26c
mov qword [rdi], rbx
mov edx, 1
mov byte [rdi + 8], dl
jmp 0x14009d27b
mov edx, 1
movzx ecx, word [rdi + 0xa]
lea rax, [rbp + 0x58]
cmp qword [rbp + 0x70], 7
cmova rax, qword [rbp + 0x58]
cmp word [rax], cx
jne 0x14009d294
mov bl, dl
test sil, 0x10
je 0x14009d2ab
and esi, 0xffffffef
mov dword [rsp + 0x30], esi
lea rcx, [rbp + 0x58]
call fcn.14009ecb0
nop
test sil, 8
je 0x14009d2c1
and esi, 0xfffffff7
mov dword [rsp + 0x30], esi
lea rcx, [rbp - 8]
call fcn.14009ecb0
xor r8d, r8d
test bl, bl
je 0x14009d361
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009d31a
mov rax, qword [rcx + 0x38]
cmp qword [rax], r8
je 0x14009d2fb
mov rax, qword [rcx + 0x50]
cmp dword [rax], r8d
jle 0x14009d2fb
dec dword [rax]
mov rcx, qword [rcx + 0x38]
mov rdx, qword [rcx]
lea rax, [rdx + 2]
mov qword [rcx], rax
movzx eax, word [rdx]
jmp 0x14009d30b
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
call qword [0x1400ea118]
xor r8d, r8d
mov ecx, 0xffff
cmp cx, ax
je 0x14009d31a
mov al, r8b
jmp 0x14009d322
mov qword [rdi], r8
mov eax, 1
mov byte [rdi + 8], al
mov rax, qword [r14]
lea rdx, [rbp - 8]
mov rcx, r14
mov rax, qword [rax + 0x40]
call qword [0x1400ea118]
bts esi, 0xf
mov dword [rsp + 0x30], esi
lea rdx, [rbp - 8]
lea rcx, [rbp - 0x28]
call fcn.14009e994
lea rcx, [rbp - 8]
call fcn.14009ecb0
mov byte [rsp + 0x34], 1
jmp 0x14009d682
mov rax, qword [r14]
lea rdx, [rbp + 0x78]
mov rcx, r14
mov rax, qword [rax + 0x38]
call qword [0x1400ea118]
bts esi, 0xe
or esi, 0x20
mov dword [rsp + 0x30], esi
xor ebx, ebx
cmp qword [rbp + 0x88], rbx
je 0x14009d3b4
mov rax, qword [r14]
lea rdx, [rbp - 8]
mov rcx, r14
mov rax, qword [rax + 0x40]
call qword [0x1400ea118]
or esi, 0x10040
mov dword [rsp + 0x30], esi
cmp qword [rbp + 8], rbx
jne 0x14009d3b4
mov ebx, 1
test sil, 0x40
je 0x14009d3cb
and esi, 0xffffffbf
mov dword [rsp + 0x30], esi
lea rcx, [rbp - 8]
call fcn.14009ecb0
nop
test sil, 0x20
je 0x14009d3e1
and esi, 0xffffffdf
mov dword [rsp + 0x30], esi
lea rcx, [rbp + 0x78]
call fcn.14009ecb0
xor r9d, r9d
test bl, bl
mov rbx, qword [rsp + 0x40]
je 0x14009d772
mov byte [rsp + 0x34], 1
jmp 0x14009d772
mov rax, qword [r14]
lea rdx, [rbp - 0x48]
mov rcx, r14
mov rax, qword [rax + 0x30]
call qword [0x1400ea118]
bts esi, 7
mov dword [rsp + 0x30], esi
mov rax, qword [rbp + 0x108]
test byte [rax + 0x18], 8
jne 0x14009d4a2
mov rdx, r15
mov rcx, rdi
call fcn.140092b6c
xor ebx, ebx
test al, al
jne 0x14009d4a4
lea rbx, [rbp - 0x48]
cmp qword [rbp - 0x30], 7
cmova rbx, qword [rbp - 0x48]
xor r8d, r8d
cmp byte [rdi + 8], r8b
jne 0x14009d495
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009d48e
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x14009d46e
mov rax, qword [rcx + 0x50]
cmp dword [rax], r8d
jle 0x14009d46e
movzx eax, word [rdx]
jmp 0x14009d47e
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [0x1400ea118]
xor r8d, r8d
mov ecx, 0xffff
cmp cx, ax
je 0x14009d48e
mov word [rdi + 0xa], ax
jmp 0x14009d491
mov qword [rdi], r8
mov byte [rdi + 8], 1
movzx eax, word [rbx]
cmp word [rdi + 0xa], ax
jne 0x14009d52b
xor ebx, ebx
cmp qword [rsp + 0x40], 3
jne 0x14009d536
mov eax, 1
cmp qword [rbp - 0x18], rax
ja 0x14009d536
mov rdx, r15
mov rcx, rdi
call fcn.140092b6c
test al, al
jne 0x14009d52b
cmp byte [rdi + 8], bl
jne 0x14009d514
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009d50d
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x14009d4f0
mov rax, qword [rcx + 0x50]
cmp dword [rax], ebx
jle 0x14009d4f0
movzx eax, word [rdx]
jmp 0x14009d4fd
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [0x1400ea118]
mov ecx, 0xffff
cmp cx, ax
je 0x14009d50d
mov word [rdi + 0xa], ax
jmp 0x14009d510
mov qword [rdi], rbx
mov byte [rdi + 8], 1
movzx ecx, word [rdi + 0xa]
lea rax, [rbp - 0x48]
cmp qword [rbp - 0x30], 7
cmova rax, qword [rbp - 0x48]
cmp cx, word [rax]
je 0x14009d536
xor edx, edx
lea rcx, [rbp - 0x48]
call fcn.14008e808
lea rbx, [rbp - 0x48]
cmp qword [rbp - 0x30], 7
cmova rbx, qword [rbp - 0x48]
mov rdx, r15
mov rcx, rdi
call fcn.140092b6c
xor r8d, r8d
test al, al
jne 0x14009d64e
lea r12d, [r8 + 1]
mov r14d, 0xffff
lea rcx, [rbp - 0x48]
cmp qword [rbp - 0x30], 7
cmova rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x38]
lea rcx, [rcx + rax*2]
cmp rbx, rcx
je 0x14009d644
cmp byte [rdi + 8], r8b
jne 0x14009d5ce
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009d5c7
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x14009d5ab
mov rax, qword [rcx + 0x50]
cmp dword [rax], r8d
jle 0x14009d5ab
movzx eax, word [rdx]
jmp 0x14009d5bb
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [0x1400ea118]
xor r8d, r8d
cmp r14w, ax
je 0x14009d5c7
mov word [rdi + 0xa], ax
jmp 0x14009d5ca
mov qword [rdi], r8
mov byte [rdi + 8], r12b
movzx eax, word [rbx]
cmp word [rdi + 0xa], ax
jne 0x14009d644
add rbx, 2
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009d625
mov rax, qword [rcx + 0x38]
cmp qword [rax], r8
je 0x14009d60a
mov rax, qword [rcx + 0x50]
cmp dword [rax], r8d
jle 0x14009d60a
dec dword [rax]
mov rcx, qword [rcx + 0x38]
mov rdx, qword [rcx]
lea rax, [rdx + 2]
mov qword [rcx], rax
movzx eax, word [rdx]
jmp 0x14009d61a
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
call qword [0x1400ea118]
xor r8d, r8d
cmp r14w, ax
je 0x14009d625
mov al, r8b
jmp 0x14009d62b
mov qword [rdi], r8
mov al, r12b
mov byte [rdi + 8], al
mov rdx, r15
mov rcx, rdi
call fcn.140092b6c
xor r8d, r8d
test al, al
je 0x14009d564
mov r14, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
lea rcx, [rbp - 0x48]
cmp qword [rbp - 0x30], 7
cmova rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x38]
lea rcx, [rcx + rax*2]
movzx r13d, r13b
cmp rbx, rcx
mov eax, 1
cmovne r13d, eax
mov dword [rsp + 0x38], r13d
lea rcx, [rbp - 0x48]
call fcn.14009ecb0
mov rbx, qword [rsp + 0x40]
xor r9d, r9d
jmp 0x14009d772
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [0x1400ea118]
xor r9d, r9d
cmp r13w, ax
je 0x14009d6ab
mov word [rdi + 0xa], ax
jmp 0x14009d6ae
mov qword [rdi], r9
mov byte [rdi + 8], r14b
mov rax, qword [r12]
mov edx, 0x48
movzx r8d, word [rdi + 0xa]
mov rcx, r12
mov rax, qword [rax + 0x20]
call qword [0x1400ea118]
xor r9d, r9d
test al, al
je 0x14009d740
mov bl, r14b
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009d721
mov rax, qword [rcx + 0x38]
cmp qword [rax], r9
je 0x14009d706
mov rax, qword [rcx + 0x50]
cmp dword [rax], r9d
jle 0x14009d706
dec dword [rax]
mov rcx, qword [rcx + 0x38]
mov rdx, qword [rcx]
lea rax, [rdx + 2]
mov qword [rcx], rax
movzx eax, word [rdx]
jmp 0x14009d716
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
call qword [0x1400ea118]
xor r9d, r9d
cmp r13w, ax
je 0x14009d721
mov al, r9b
jmp 0x14009d727
mov qword [rdi], r9
mov al, r14b
mov byte [rdi + 8], al
mov rdx, r15
mov rcx, rdi
call fcn.140092b6c
xor r9d, r9d
test al, al
je 0x14009c96d
mov r14, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov r13d, dword [rsp + 0x38]
mov rax, qword [rsp + 0x40]
cmp byte [rsp + rax + 0x70], 0x20
jne 0x14009d76f
movzx r13d, r13b
test bl, bl
mov ebx, 1
cmove r13d, ebx
mov dword [rsp + 0x38], r13d
mov rbx, rax
inc rbx
mov qword [rsp + 0x40], rbx
test r13b, r13b
je 0x14009c90d
jmp 0x14009d8c2
mov rcx, qword [rbp - 0x18]
mov esi, 1
cmp rcx, rsi
jbe 0x14009d8ce
lea rbx, [rbp - 0x28]
mov rdx, qword [rbp - 0x28]
mov r8, qword [rbp - 0x10]
cmp r8, 7
cmova rbx, rdx
add rbx, 2
lea rax, [rbp - 0x28]
cmp r8, 7
cmova rax, rdx
lea rax, [rax + rcx*2]
cmp rbx, rax
je 0x14009d8ad
mov rdx, r15
mov rcx, rdi
call fcn.140092b6c
xor r9d, r9d
test al, al
jne 0x14009d8a1
cmp byte [rdi + 8], r9b
jne 0x14009d830
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009d829
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x14009d809
mov rax, qword [rcx + 0x50]
cmp dword [rax], r9d
jle 0x14009d809
movzx eax, word [rdx]
jmp 0x14009d819
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [0x1400ea118]
xor r9d, r9d
mov ecx, 0xffff
cmp cx, ax
je 0x14009d829
mov word [rdi + 0xa], ax
jmp 0x14009d82c
mov qword [rdi], r9
mov byte [rdi + 8], sil
movzx eax, word [rbx]
cmp word [rdi + 0xa], ax
jne 0x14009d8a1
mov rcx, qword [rdi]
test rcx, rcx
je 0x14009d887
mov rax, qword [rcx + 0x38]
cmp qword [rax], r9
je 0x14009d868
mov rax, qword [rcx + 0x50]
cmp dword [rax], r9d
jle 0x14009d868
dec dword [rax]
mov rcx, qword [rcx + 0x38]
mov rdx, qword [rcx]
lea rax, [rdx + 2]
mov qword [rcx], rax
movzx eax, word [rdx]
jmp 0x14009d878
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
call qword [0x1400ea118]
xor r9d, r9d
mov ecx, 0xffff
cmp cx, ax
je 0x14009d887
mov al, r9b
jmp 0x14009d88d
mov qword [rdi], r9
mov al, sil
mov byte [rdi + 8], al
mov r8, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x28]
jmp 0x14009d7ae
mov r8, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x28]
lea rax, [rbp - 0x28]
cmp r8, 7
cmova rax, rdx
lea rax, [rax + rcx*2]
cmp rbx, rax
je 0x14009d8ce
xor edx, edx
mov rcx, r12
call fcn.140086ff0
jmp 0x14009d8e6
cmp byte [rsp + 0x34], 0
je 0x14009d8e6
mov r9b, 0x2d
mov r8, rsi
xor edx, edx
mov rcx, r12
call fcn.140086ee4
nop
lea rcx, [rbp - 0x28]
call fcn.14009ecb0
mov rax, r12
mov rcx, qword [rbp + 0x98]
xor rcx, rsp
call fcn.1400865d0
mov rbx, qword [rsp + 0x1e0]
add rsp, 0x1a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret