Function at 0x140069be0
Capabilities:
Encode data using base64

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
mov eax, 0x16f8
call fcn.1400d8e70
sub rsp, rax
lea rbp, [rsp + 0x80]
and rsp, 0xffffffffffffffc0
mov rax, qword [0x140135388]
xor rax, rbp
mov qword [rsp + 0x16f0], rax
mov edi, dword [r9 + 8]
test edi, edi
jle 0x140069c2e
mov rsi, r9
mov r12, qword [r9]
mov rbx, qword [r12]
test bl, 1
jne 0x140069c4f
mov dword [rsp + 0x20], 0x392
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
xor r12d, r12d
mov ecx, 3
xor edx, edx
mov r8d, 0x68
jmp 0x140069ccd
cmp dword [rsi + 0x10], 0
je 0x140069c76
mov dword [rsp + 0x20], 0x396
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
xor r12d, r12d
mov ecx, 3
xor edx, edx
mov r8d, 0x6d
jmp 0x140069ccd
mov r14, rdx
cmp dword [rdx + 0x10], 0
jne 0x140069cae
mov r13, r8
mov r8, rcx
mov r15d, dword [r14 + 8]
movsxd rdx, r15d
mov rcx, qword [r14]
mov qword [rsp + 0xb8], r8
mov r8, r12
mov r9, rdi
call fcn.140066a10
mov rcx, qword [rsp + 0xb8]
test eax, eax
js 0x140069cf9
mov dword [rsp + 0x20], 0x39a
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
xor r12d, r12d
mov ecx, 3
xor edx, edx
mov r8d, 0x6b
call fcn.1400a8ab0
mov rcx, qword [rsp + 0x16f0]
xor rcx, rbp
call fcn.1400d8ee0
mov eax, r12d
lea rsp, [rbp + 0x1678]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r8d, dword [r13 + 8]
test r8d, r8d
jne 0x140069dc5
xor rbx, 1
cmp edi, 2
jl 0x140069d7a
lea rdx, [rdi - 1]
add rdi, 0xfffffffffffffffe
mov eax, edx
and eax, 7
cmp rdi, 7
jae 0x140069d29
mov edi, 1
jmp 0x140069d63
and rdx, 0xfffffffffffffff8
xor edi, edi
or rbx, qword [r12 + rdi*8 + 8]
or rbx, qword [r12 + rdi*8 + 0x10]
or rbx, qword [r12 + rdi*8 + 0x18]
or rbx, qword [r12 + rdi*8 + 0x20]
or rbx, qword [r12 + rdi*8 + 0x28]
or rbx, qword [r12 + rdi*8 + 0x30]
or rbx, qword [r12 + rdi*8 + 0x38]
or rbx, qword [r12 + rdi*8 + 0x40]
add rdi, 8
cmp rdx, rdi
jne 0x140069d2f
inc rdi
test rax, rax
je 0x140069d7a
lea rdi, [r12 + rdi*8]
xor edx, edx
or rbx, qword [rdi + rdx*8]
inc rdx
cmp rax, rdx
jne 0x140069d6e
test rbx, rbx
je 0x140069daa
mov edx, 1
mov rsi, rcx
call fcn.140064cf0
test eax, eax
je 0x140069dbd
mov dword [rsi + 0x10], 0
mov rax, qword [rsi]
mov qword [rax], 1
mov dword [rsi + 8], 1
jmp 0x140069db2
xor eax, eax
mov dword [rcx + 0x10], eax
mov dword [rcx + 8], eax
mov r12d, 1
jmp 0x140069cd2
xor r12d, r12d
jmp 0x140069cd2
mov rcx, qword [rbp + 0x16e8]
mov rdx, qword [rbp + 0x16e0]
xor r12d, r12d
test rcx, rcx
mov qword [rsp + 0xb0], r8
jne 0x140069dfd
mov rcx, rsi
call fcn.140068e50
test rax, rax
jne 0x140069e09
xor ecx, ecx
xor esi, esi
xor edi, edi
xor ebx, ebx
jmp 0x14006a118
xor eax, eax
mov qword [rsp + 0x90], rax
jmp 0x140069e20
mov r15d, dword [r14 + 8]
mov rcx, rax
mov qword [rsp + 0x90], rax
mov r8, qword [rsp + 0xb0]
mov qword [rsp + 0xa8], rcx
mov r12d, dword [rcx + 0x20]
cmp r15d, 0x10
jne 0x140069e93
cmp dword [r13 + 8], 0x10
jne 0x140069e93
mov rcx, rsi
call fcn.140066380
mov r8, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xb8]
cmp eax, 0x400
jne 0x140069e93
mov ebx, dword [0x14013bfd8]
mov eax, ebx
and eax, 0x80100
mov edx, 0x80100
cmp eax, edx
je 0x140069e93
and ebx, 0x20
je 0x140069e93
mov edx, 0x10
call fcn.140064cf0
test eax, eax
jne 0x14006a430
xor esi, esi
xor edi, edi
xor ebx, ebx
xor r12d, r12d
jmp 0x14006a48a
movsxd rax, r12d
mov qword [rsp + 0x88], rax
mov eax, 6
cmp r8d, 0xe
jg 0x140069eca
mov eax, 5
cmp r8d, 4
jg 0x140069eca
mov eax, 4
cmp r8d, 1
jg 0x140069eca
sete al
movzx eax, al
add eax, eax
add eax, 1
mov rdi, qword [rsp + 0x88]
lea rcx, [rdi*8]
xor edx, edx
cmp eax, 4
mov esi, 5
cmovbe esi, eax
mov qword [rsp + 0xc8], rcx
mov eax, ecx
mov ecx, 0
mov qword [rsp + 0xa0], rcx
cmovbe rax, rdx
mov edx, 1
mov ecx, esi
shl edx, cl
mov ebx, edi
mov dword [rsp + 0x70], esi
shl ebx, cl
lea r15, [rdi + rdi]
cmp r15d, edx
mov dword [rsp + 0xc4], edx
mov ecx, edx
cmovge ecx, r15d
add ecx, ebx
movsxd rcx, ecx
lea rax, [rax + rcx*8]
mov rsi, rax
shl rsi, 0x20
mov qword [rsp + 0x98], rax
movsxd rdi, eax
cmp rdi, 0x15c1
jb 0x140069f7a
movabs rcx, 0x4000000000
add rcx, rsi
sar rcx, 0x20
call fcn.140090490
test rax, rax
jne 0x140069f8c
xor ebx, ebx
xor r12d, r12d
mov rcx, qword [rsp + 0x90]
xor esi, esi
jmp 0x14006a110
lea rax, [rsp + 0x100]
mov qword [rsp + 0x80], rax
jmp 0x140069fa7
mov rcx, rax
and rcx, 0xffffffffffffffc0
add rcx, 0x40
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x78], r12
test rsi, rsi
je 0x140069fc3
mov rcx, qword [rsp + 0x80]
xor edx, edx
mov r8, rdi
call fcn.1400dc190
movsxd rax, ebx
mov rbx, qword [rsp + 0x80]
lea rax, [rbx + rax*8]
mov qword [rsp + 0xe8], rax
mov rcx, qword [rsp + 0x88]
lea rax, [rax + rcx*8]
mov qword [rsp + 0xd0], rax
xor r12d, r12d
mov dword [rsp + 0xd8], r12d
mov dword [rsp + 0xf0], r12d
mov dword [rsp + 0xdc], ecx
mov dword [rsp + 0xf4], ecx
movabs rax, 0x200000000
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xf8], rax
mov rdi, qword [rsp + 0xa8]
movsxd rax, dword [rdi + 0x20]
test rax, rax
jle 0x14006a0c0
mov rcx, qword [rdi + 0x18]
cmp qword [rcx + rax*8 - 8], 0
jns 0x14006a0c0
mov edx, eax
lea rcx, [rsp + 0xe8]
call fcn.140064cf0
test eax, eax
je 0x14006a100
mov rax, qword [rdi + 0x18]
xor ecx, ecx
sub rcx, qword [rax]
mov rax, qword [rsp + 0xe8]
mov qword [rax], rcx
mov ecx, dword [rdi + 0x20]
cmp ecx, 2
jl 0x14006a0a5
mov eax, 1
mov rcx, qword [rdi + 0x18]
mov rcx, qword [rcx + rax*8]
not rcx
mov rdx, qword [rsp + 0xe8]
mov qword [rdx + rax*8], rcx
inc rax
movsxd rcx, dword [rdi + 0x20]
cmp rax, rcx
jl 0x14006a082
mov dword [rsp + 0xf0], ecx
mov dword [rsp + 0xf8], 0
mov rsi, qword [rbp + 0x16e0]
jmp 0x14006a0e1
lea rcx, [rsp + 0xe8]
mov rdx, rdi
mov r8, rdi
mov rsi, qword [rbp + 0x16e0]
mov r9, rsi
call fcn.140069150
test eax, eax
je 0x14006a100
mov qword [rsp + 0x20], rsi
lea rcx, [rsp + 0xd0]
mov rdx, r14
mov r8, rdi
mov r9, rdi
call fcn.140068f30
test eax, eax
jne 0x14006a13f
mov rcx, qword [rsp + 0x90]
mov rsi, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0x98]
call fcn.140069280
test rsi, rsi
jne 0x14006a132
test rbx, rbx
je 0x14006a132
movsxd rdx, edi
mov rcx, rbx
call fcn.140090500
mov rcx, rsi
call fcn.1400904c0
jmp 0x140069cd2
mov rax, qword [rsp + 0xb0]
shl eax, 6
mov qword [rsp + 0xb0], rax
cmp dword [rsp + 0x78], 2
jl 0x14006a2c3
cmp dword [rsp + 0x70], 5
jne 0x14006a2c3
movsxd rax, dword [rsp + 0xd8]
mov rbx, qword [rsp + 0x78]
cmp eax, ebx
jge 0x14006a1f7
mov edx, ebx
sub edx, eax
mov rcx, rax
not rcx
add rcx, qword [rsp + 0x88]
and rdx, 3
je 0x14006a1a9
mov rbx, qword [rsp + 0xd0]
mov qword [rbx + rax*8], 0
inc rax
dec rdx
jne 0x14006a191
cmp rcx, 3
mov rbx, qword [rsp + 0x78]
jb 0x14006a1f7
xor ecx, ecx
mov rdx, qword [rsp + 0xd0]
mov qword [rdx + rax*8], rcx
mov rdx, qword [rsp + 0xd0]
mov qword [rdx + rax*8 + 8], rcx
mov rdx, qword [rsp + 0xd0]
mov qword [rdx + rax*8 + 0x10], rcx
mov rdx, qword [rsp + 0xd0]
mov qword [rdx + rax*8 + 0x18], rcx
add rax, 4
cmp qword [rsp + 0x88], rax
jne 0x14006a1b6
movsxd rax, dword [rsp + 0xf0]
cmp eax, ebx
jge 0x14006a281
mov edx, ebx
sub edx, eax
mov rcx, rax
not rcx
add rcx, qword [rsp + 0x88]
and rdx, 3
je 0x14006a233
mov rbx, qword [rsp + 0xe8]
mov qword [rbx + rax*8], 0
inc rax
dec rdx
jne 0x14006a21b
cmp rcx, 3
mov rbx, qword [rsp + 0x78]
jb 0x14006a281
xor ecx, ecx
mov rdx, qword [rsp + 0xe8]
mov qword [rdx + rax*8], rcx
mov rdx, qword [rsp + 0xe8]
mov qword [rdx + rax*8 + 8], rcx
mov rdx, qword [rsp + 0xe8]
mov qword [rdx + rax*8 + 0x10], rcx
mov rdx, qword [rsp + 0xe8]
mov qword [rdx + rax*8 + 0x18], rcx
add rax, 4
cmp qword [rsp + 0x88], rax
jne 0x14006a240
mov rax, qword [rsp + 0xa8]
lea r14, [rax + 0x30]
mov rcx, qword [rsp + 0xd0]
mov rax, qword [rsp + 0x88]
lea r15, [rcx + rax*8]
test ebx, ebx
jle 0x14006a7e0
lea rdx, [rbx - 1]
mov eax, ebx
and eax, 3
cmp rdx, 3
jae 0x14006a758
xor ecx, ecx
jmp 0x14006a7ba
lea r8, [rsp + 0xe8]
mov rcx, rbx
mov rsi, qword [rsp + 0x88]
mov rdx, rsi
call fcn.1400664b0
lea rcx, [rbx + rsi*8]
lea r8, [rsp + 0xd0]
mov rdx, rsi
call fcn.1400664b0
cmp dword [rsp + 0x70], 2
jb 0x14006a3c8
mov rax, qword [rbp + 0x16e0]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0xe8]
lea rdx, [rsp + 0xd0]
mov r8, rdx
mov r9, qword [rsp + 0xa8]
call fcn.140068f30
test eax, eax
je 0x14006b4d3
mov rdi, qword [rsp + 0x80]
lea rcx, [rdi + r15*8]
lea r14, [rsp + 0xe8]
mov rbx, qword [rsp + 0x88]
mov rdx, rbx
mov r8, r14
call fcn.1400664b0
mov eax, dword [rsp + 0xc4]
cmp eax, 4
mov esi, 4
cmova esi, eax
lea rax, [rbx + rbx*2]
lea rdi, [rdi + rax*8]
add rsi, 0xfffffffffffffffd
lea rbx, [rsp + 0xd0]
mov rax, qword [rbp + 0x16e0]
mov qword [rsp + 0x20], rax
mov rcx, r14
mov rdx, rbx
mov r8, r14
mov r9, qword [rsp + 0xa8]
call fcn.140068f30
test eax, eax
je 0x14006b4d3
mov rcx, rdi
mov rdx, qword [rsp + 0x88]
mov r8, r14
call fcn.1400664b0
add rdi, qword [rsp + 0xc8]
dec rsi
jne 0x14006a37e
mov rax, qword [rsp + 0xb0]
dec eax
mov r15, rax
cdq
idiv dword [rsp + 0x70]
xor r12d, r12d
test edx, edx
js 0x14006a497
inc edx
xor r14d, r14d
mov eax, r14d
add eax, r14d
mov r14d, 0
mov rcx, r15
test ecx, ecx
js 0x14006a420
movsxd rbx, dword [r13 + 8]
mov edi, ecx
shr edi, 6
mov r14d, 0
cmp rdi, rbx
jae 0x14006a420
mov rbx, qword [r13]
mov r14, qword [rbx + rdi*8]
shr r14, cl
and r14d, 1
or r14d, eax
dec ecx
mov r15, rcx
dec edx
test edx, edx
jg 0x14006a3ea
jmp 0x14006a49a
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rbx, qword [rcx + 0x30]
mov r9, qword [rsi]
mov r8, qword [r13]
mov rdx, qword [r14]
mov rsi, qword [rsp + 0xb8]
mov rcx, qword [rsi]
lea rdi, [rsp + 0x100]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
call fcn.14006b510
mov dword [rsi + 8], 0x10
mov dword [rsi + 0x10], 0
mov r12d, 1
xor esi, esi
xor edi, edi
xor ebx, ebx
mov rcx, qword [rsp + 0x90]
jmp 0x14006a118
xor r14d, r14d
lea rcx, [rsp + 0xe8]
mov rdx, qword [rsp + 0x88]
call fcn.140064cf0
test eax, eax
je 0x14006b4d3
cmp dword [rsp + 0x78], 0
je 0x14006a4d5
mov rcx, qword [rsp + 0xe8]
xor edx, edx
mov r8, qword [rsp + 0xc8]
call fcn.1400dc190
mov r8, qword [rsp + 0x78]
and r8d, 0xfffffffe
xor ecx, ecx
mov rdx, qword [rsp + 0x80]
cmp dword [rsp + 0x78], 0
jle 0x14006a566
mov ebx, ecx
xor ebx, r14d
movsxd rbx, ebx
mov rdi, rbx
movabs rax, 0x8000000000000000
xor rdi, rax
dec rbx
and rbx, rdi
sar rbx, 0x3f
cmp dword [rsp + 0x78], 1
jne 0x14006a51c
xor edi, edi
jmp 0x14006a54f
xor edi, edi
mov rax, qword [rdx + rdi*8]
and rax, rbx
mov rsi, qword [rsp + 0xe8]
or qword [rsi + rdi*8], rax
mov rax, qword [rdx + rdi*8 + 8]
and rax, rbx
mov rsi, qword [rsp + 0xe8]
or qword [rsi + rdi*8 + 8], rax
add rdi, 2
cmp r8, rdi
jne 0x14006a51e
test byte [rsp + 0x78], 1
je 0x14006a566
and rbx, qword [rdx + rdi*8]
mov rax, qword [rsp + 0xe8]
or qword [rax + rdi*8], rbx
inc ecx
add rdx, qword [rsp + 0xc8]
cmp ecx, dword [rsp + 0xc4]
jne 0x14006a4e8
mov eax, dword [rsp + 0x70]
cmp eax, 1
lea rcx, [rsp + 0xe8]
mov esi, 1
cmova esi, eax
mov rax, qword [rsp + 0x78]
mov dword [rcx + 8], eax
and eax, 0xfffffffe
mov qword [rsp + 0xb0], rax
mov r14d, esi
neg r14d
test r15d, r15d
js 0x14006b41d
mov eax, r15d
sub eax, esi
mov dword [rsp + 0x70], eax
xor r12d, r12d
xor ebx, ebx
xor edi, edi
mov rax, qword [rbp + 0x16e0]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0xe8]
mov rdx, rcx
mov r8, rcx
mov r9, qword [rsp + 0xa8]
call fcn.140068f30
test eax, eax
je 0x14006b4d3
lea ecx, [r15 + rbx]
mov eax, edi
add eax, edi
xor edi, edi
test ecx, ecx
js 0x14006a61f
movsxd r8, dword [r13 + 8]
mov edx, ecx
shr edx, 6
cmp rdx, r8
jae 0x14006a61f
mov rdi, qword [r13]
mov rdi, qword [rdi + rdx*8]
shr rdi, cl
and edi, 1
or edi, eax
dec ebx
cmp r14d, ebx
jne 0x14006a5c6
lea rcx, [rsp + 0xd0]
mov rdx, qword [rsp + 0x88]
call fcn.140064cf0
xor r12d, r12d
test eax, eax
je 0x14006b4d3
cmp dword [rsp + 0x78], 0
je 0x14006a666
mov rcx, qword [rsp + 0xd0]
xor edx, edx
mov r8, qword [rsp + 0xc8]
call fcn.1400dc190
xor eax, eax
mov rcx, qword [rsp + 0x80]
cmp dword [rsp + 0x78], 0
jle 0x14006a6f2
mov edx, eax
xor edx, edi
movsxd r8, edx
mov rbx, r8
movabs rdx, 0x8000000000000000
xor rbx, rdx
dec r8
and r8, rbx
sar r8, 0x3f
cmp dword [rsp + 0x78], 1
jne 0x14006a6a3
xor ebx, ebx
jmp 0x14006a6db
xor ebx, ebx
mov r9, qword [rcx + rbx*8]
and r9, r8
mov rdx, qword [rsp + 0xd0]
or qword [rdx + rbx*8], r9
mov r9, qword [rcx + rbx*8 + 8]
and r9, r8
mov rdx, qword [rsp + 0xd0]
or qword [rdx + rbx*8 + 8], r9
add rbx, 2
cmp qword [rsp + 0xb0], rbx
jne 0x14006a6a5
test byte [rsp + 0x78], 1
je 0x14006a6f2
and r8, qword [rcx + rbx*8]
mov rdx, qword [rsp + 0xd0]
or qword [rdx + rbx*8], r8
inc eax
add rcx, qword [rsp + 0xc8]
cmp eax, dword [rsp + 0xc4]
jne 0x14006a670
mov rax, qword [rsp + 0x78]
mov dword [rsp + 0xd8], eax
mov rax, qword [rbp + 0x16e0]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0xe8]
mov rdx, rcx
lea r8, [rsp + 0xd0]
mov r9, qword [rsp + 0xa8]
call fcn.140068f30
xor r12d, r12d
mov ecx, dword [rsp + 0x70]
mov r15d, ecx
test eax, eax
jne 0x14006a5ad
jmp 0x14006b4d3
mov r8, qword [rsp + 0x78]
and r8d, 0xfffffffc
mov rdx, qword [rsp + 0x88]
lea rbx, [rcx + rdx*8]
add rbx, 0x18
xor ecx, ecx
mov rdx, qword [rsp + 0xa8]
mov rsi, qword [rdx + 0x18]
mov rsi, qword [rsi + rcx*8]
mov qword [rbx + rcx*8 - 0x18], rsi
mov rsi, qword [rdx + 0x18]
mov rsi, qword [rsi + rcx*8 + 8]
mov qword [rbx + rcx*8 - 0x10], rsi
mov rsi, qword [rdx + 0x18]
mov rsi, qword [rsi + rcx*8 + 0x10]
mov qword [rbx + rcx*8 - 8], rsi
mov rsi, qword [rdx + 0x18]
mov rsi, qword [rsi + rcx*8 + 0x18]
mov qword [rbx + rcx*8], rsi
add rcx, 4
cmp r8, rcx
jne 0x14006a77b
test rax, rax
mov rbx, qword [rsp + 0x78]
je 0x14006a7e0
mov rdx, qword [rsp + 0xa8]
mov rdx, qword [rdx + 0x18]
mov rdx, qword [rdx + rcx*8]
mov qword [r15 + rcx*8], rdx
inc rcx
dec rax
jne 0x14006a7c4
mov rcx, qword [rsp + 0xe8]
xor eax, eax
mov qword [rsp + 0x70], rax
mov rdi, qword [rsp + 0x88]
mov rdx, rdi
mov rsi, qword [rsp + 0x80]
mov r8, rsi
xor r9d, r9d
call fcn.1400b1a70
movsxd rdx, dword [rsp + 0xd8]
mov rcx, qword [rsp + 0xd0]
mov r9d, 1
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov r8, rdx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov r9d, 2
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov r9d, 4
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov r9d, 8
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x10
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 2
mov r8, rsi
mov r9, r15
call fcn.1400ae800
mov rcx, qword [rsp + 0xe8]
mov r9d, 3
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov r9d, 6
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov r9d, 0xc
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x18
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 4
mov r8, rsi
mov r9, r15
call fcn.1400ae800
mov rcx, qword [rsp + 0xe8]
mov r9d, 5
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov r9d, 0xa
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x14
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 6
mov r8, rsi
mov r9, r15
call fcn.1400ae800
mov rcx, qword [rsp + 0xe8]
mov r9d, 7
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov r9d, 0xe
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x1c
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 8
mov r8, rsi
mov r9, r15
call fcn.1400ae800
mov rcx, qword [rsp + 0xe8]
mov r9d, 9
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x12
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 0xa
mov r8, rsi
mov r9, r15
call fcn.1400ae800
mov rcx, qword [rsp + 0xe8]
mov r9d, 0xb
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x16
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 0xc
mov r8, rsi
mov r9, r15
call fcn.1400ae800
mov rcx, qword [rsp + 0xe8]
mov r9d, 0xd
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x1a
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 0xe
mov r8, rsi
mov r9, r15
call fcn.1400ae800
mov rcx, qword [rsp + 0xe8]
mov r9d, 0xf
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x1e
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 0x10
mov r8, rsi
mov r9, r15
call fcn.1400ae800
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x11
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 0x12
mov r8, rsi
mov r9, r15
call fcn.1400ae800
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x13
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 0x14
mov r8, rsi
mov r9, r15
call fcn.1400ae800
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x15
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 0x16
mov r8, rsi
mov r9, r15
call fcn.1400ae800
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x17
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 0x18
mov r8, rsi
mov r9, r15
call fcn.1400ae800
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x19
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 0x1a
mov r8, rsi
mov r9, r15
call fcn.1400ae800
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x1b
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 0x1c
mov r8, rsi
mov r9, r15
call fcn.1400ae800
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x1d
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 0x1e
mov r8, rsi
mov r9, r15
call fcn.1400ae800
mov rcx, qword [rsp + 0xe8]
mov r9d, 0x1f
mov rdx, rdi
mov r8, rsi
call fcn.1400b1a70
mov rax, qword [rsp + 0xb0]
lea r12d, [rax - 1]
movsxd rcx, r12d
imul rax, rcx, 0x66666667
mov rdx, rax
shr rdx, 0x3f
sar rax, 0x21
add eax, edx
lea eax, [rax + rax*4]
sub ecx, eax
js 0x14006b11e
mov rax, qword [rsp + 0xb0]
add eax, 0xffffffc0
or eax, 0x3f
js 0x14006aff1
movsxd rbx, dword [r13 + 8]
mov rdx, rax
shr rdx, 6
cmp rdx, rbx
jae 0x14006aff1
mov rbx, qword [r13]
mov rdx, qword [rbx + rdx*8]
shr rdx, 0x3f
mov qword [rsp + 0x70], rdx
lea r12, [rax - 1]
test ecx, ecx
jle 0x14006b10a
mov rdx, qword [rsp + 0x70]
add edx, edx
mov qword [rsp + 0x70], rdx
xor edx, edx
test r12d, r12d
js 0x14006b02c
movsxd rbx, dword [r13 + 8]
shr r12, 6
cmp r12, rbx
jae 0x14006b02c
mov rdx, qword [r13]
mov rdx, qword [rdx + r12*8]
shr rdx, 0x3e
and edx, 1
or edx, dword [rsp + 0x70]
lea r12, [rax - 2]
cmp ecx, 2
jl 0x14006b105
add edx, edx
xor ebx, ebx
mov qword [rsp + 0x70], rbx
test r12d, r12d
js 0x14006b06c
movsxd rbx, dword [r13 + 8]
shr r12, 6
cmp r12, rbx
jae 0x14006b06c
mov rbx, qword [r13]
mov rbx, qword [rbx + r12*8]
shr rbx, 0x3d
and ebx, 1
mov qword [rsp + 0x70], rbx
mov rbx, qword [rsp + 0x70]
or ebx, edx
mov qword [rsp + 0x70], rbx
lea r12, [rax - 3]
cmp ecx, 3
jl 0x14006b10a
mov rdx, qword [rsp + 0x70]
add edx, edx
mov qword [rsp + 0x70], rdx
xor edx, edx
test r12d, r12d
js 0x14006b0b4
movsxd rbx, dword [r13 + 8]
shr r12, 6
cmp r12, rbx
jae 0x14006b0b4
mov rdx, qword [r13]
mov rdx, qword [rdx + r12*8]
shr rdx, 0x3c
and edx, 1
or edx, dword [rsp + 0x70]
lea r12, [rax - 4]
cmp ecx, 4
jl 0x14006b105
add edx, edx
xor ecx, ecx
mov qword [rsp + 0x70], rcx
test r12d, r12d
js 0x14006b0f0
movsxd rcx, dword [r13 + 8]
shr r12, 6
cmp r12, rcx
jae 0x14006b0f0
mov rcx, qword [r13]
mov rcx, qword [rcx + r12*8]
shr rcx, 0x3b
and ecx, 1
mov qword [rsp + 0x70], rcx
mov rcx, qword [rsp + 0x70]
or ecx, edx
mov qword [rsp + 0x70], rcx
add rax, 0xfffffffffffffffb
mov r12, rax
jmp 0x14006b10a
mov qword [rsp + 0x70], rdx
mov rax, qword [rsp + 0x70]
mov eax, eax
mov qword [rsp + 0x70], rax
mov rsi, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0x88]
mov r8, rsi
mov r9, qword [rsp + 0x70]
call fcn.1400b1aa0
test byte [rsp + 0x78], 7
jne 0x14006b202
mov rsi, qword [r13]
mov rax, qword [rsp + 0xb0]
add eax, 0xfffffffc
cmp r12d, eax
jl 0x14006b1a1
movsxd rax, dword [r13 + 8]
movzx eax, byte [rsi + rax*8 - 1]
lea ecx, [r12 + 4]
and cl, 7
shr eax, cl
and eax, 0x1f
add r12d, 0xfffffffb
mov rcx, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0x78]
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], eax
mov rdx, rcx
mov r8, qword [rsp + 0x80]
mov r9, r15
call fcn.1400af7c0
test r12d, r12d
js 0x14006b3ee
add r12d, 5
lea ecx, [r12 - 9]
mov eax, ecx
sar eax, 3
cdqe
movzx eax, word [rsi + rax]
and cl, 7
shr eax, cl
and eax, 0x1f
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x78]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, qword [rsp + 0x80]
mov r9, r15
call fcn.1400af7c0
add r12d, 0xfffffffb
cmp r12d, 4
jg 0x14006b1ae
jmp 0x14006b3ee
test r12d, r12d
js 0x14006b3ee
add r12d, 0xfffffffc
mov rdi, qword [rsp + 0x88]
lea r9d, [r12 + 4]
movsxd rdx, dword [r13 + 8]
mov ecx, r9d
shr ecx, 6
xor esi, esi
cmp rcx, rdx
jae 0x14006b23e
mov rdx, qword [r13]
mov rsi, qword [rdx + rcx*8]
mov ecx, r9d
shr rsi, cl
and esi, 1
test r9d, r9d
jg 0x14006b248
shl esi, 2
jmp 0x14006b2a5
lea ecx, [r12 + 3]
movsxd rax, dword [r13 + 8]
mov ebx, ecx
shr ebx, 6
xor edx, edx
cmp rbx, rax
jae 0x14006b26b
mov rax, qword [r13]
mov rdx, qword [rax + rbx*8]
shr rdx, cl
and edx, 1
add edx, edx
lea esi, [rdx + rsi*4]
cmp r9d, 2
jl 0x14006b2a5
lea ecx, [r12 + 2]
movsxd rax, dword [r13 + 8]
mov ebx, ecx
shr ebx, 6
xor edx, edx
cmp rbx, rax
jae 0x14006b299
mov rax, qword [r13]
mov rdx, qword [rax + rbx*8]
shr rdx, cl
and edx, 1
or esi, edx
cmp r9d, 3
jge 0x14006b38c
shl esi, 2
xor edx, edx
or esi, edx
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, rcx
mov r9, r15
call fcn.1400ad540
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x30], esi
mov rax, qword [rsp + 0x78]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r14
mov rdx, rcx
mov r8, qword [rsp + 0x80]
mov r9, r15
call fcn.1400ae800
lea eax, [r12 - 5]
test r12d, r12d
mov r12d, eax
jg 0x14006b217
jmp 0x14006b3ee
lea ecx, [r12 + 1]
movsxd rax, dword [r13 + 8]
mov r8d, ecx
shr r8d, 6
xor edx, edx
mov ebx, 0
cmp r8, rax
jae 0x14006b3b6
mov rax, qword [r13]
mov rbx, qword [rax + r8*8]
shr rbx, cl
and ebx, 1
add ebx, ebx
lea esi, [rbx + rsi*4]
cmp r9d, 4
jl 0x14006b2aa
movsxd rcx, dword [r13 + 8]
mov eax, r12d
shr eax, 6
cmp rax, rcx
jae 0x14006b2aa
mov rcx, qword [r13]
mov rdx, qword [rcx + rax*8]
mov ecx, r12d
shr rdx, cl
and edx, 1
jmp 0x14006b2aa
mov rcx, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x78]
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], r14
mov rdx, rcx
xor r8d, r8d
mov r9, r15
call fcn.1400b0320
mov dword [rsp + 0xf0], esi
test eax, eax
jne 0x14006b44f
lea rdx, [rsp + 0xe8]
mov rcx, qword [rsp + 0xb8]
mov r8, qword [rsp + 0xa8]
mov r9, qword [rbp + 0x16e0]
call fcn.140069150
xor r12d, r12d
test eax, eax
setne r12b
jmp 0x14006b4d3
mov r12d, eax
lea rax, [rsp + 0xe8]
cmp rax, qword [rsp + 0xb8]
je 0x14006b4c4
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0x88]
call fcn.140064cf0
xor ecx, ecx
test eax, eax
je 0x14006b4f8
movsxd r8, dword [rsp + 0xf0]
test r8, r8
je 0x14006b4af
shl r8, 3
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax]
mov rdx, qword [rsp + 0xe8]
call fcn.1400dbd80
mov ecx, dword [rsp + 0xf0]
mov rdx, qword [rsp + 0xb8]
mov dword [rdx + 8], ecx
mov eax, dword [rsp + 0xf8]
mov dword [rdx + 0x10], eax
xor eax, eax
cmp qword [rsp + 0xb8], 0
cmove r12d, eax
mov rcx, qword [rsp + 0x90]
mov rsi, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x80]
jmp 0x14006a118
xor eax, eax
mov qword [rsp + 0xb8], rax
jmp 0x14006b4c4