Function at 0x332c1ca29
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rsi, rcx
test rcx, rcx
je 0x332c1da4f
mov rcx, qword [rcx]
test rcx, rcx
je 0x332c1da4f
call fcn.332c1ca02
mov r12, rax
test rax, rax
jns 0x332c1ca72
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rax
call fcn.332c14b49
mov rdx, r12
xor ecx, ecx
movabs r12, 0x2000000100002400
call fcn.332c1471e
mov rdi, qword [rsi]
mov r13, rax
mov rbx, rdi
xor ebp, ebp
sub rbx, 1
jno 0x332c1caa1
mov ebp, 1
call fcn.332c139bc
mov rdx, qword [rsi]
test rbx, rbx
js 0x332c1caae
cmp rbx, rdx
jl 0x332c1cab9
dec rdx
mov rcx, rbx
call fcn.332c14c8d
mov cl, byte [rsi + rbx + 0x10]
cmp cl, 0x3d
ja 0x332c1cacc
mov rax, r12
shr rax, cl
test al, 1
jne 0x332c1cae1
mov rax, rdi
sub rax, 4
mov qword [rsp + 0x60], rax
jno 0x332c1caf2
call fcn.332c139bc
jmp 0x332c1caf2
test rbp, rbp
jne 0x332c1caeb
mov rdi, rbx
jmp 0x332c1ca8c
call fcn.332c139bc
jmp 0x332c1cae6
xor r12d, r12d
xor ebx, ebx
lea rbp, [0x332c2b380]
cmp qword [rsp + 0x60], rbx
jge 0x332c1cb44
mov rbp, rbx
sub rbp, rdi
jno 0x332c1d207
call fcn.332c139bc
jmp 0x332c1d207
cmp rbx, rdx
jge 0x332c1cb4c
mov cl, byte [rsi + rbx + 0x10]
cmp cl, 0x20
ja 0x332c1cb59
mov eax, 0x400009
shl rax, 0xa
shr rax, cl
test al, 1
je 0x332c1cb59
add rbx, 1
jno 0x332c1cb44
call fcn.332c139bc
mov rdx, qword [rsi]
test rbx, rbx
jns 0x332c1cb1b
dec rdx
mov rcx, rbx
call fcn.332c14c8d
jmp 0x332c1cb20
mov rdx, qword [rsi]
test rbx, rbx
js 0x332c1cb66
cmp rbx, rdx
jl 0x332c1cb71
dec rdx
mov rcx, rbx
call fcn.332c14c8d
movzx eax, byte [rsi + rbx + 0x10]
mov al, byte [rbp + rax]
mov byte [rsp + 0x30], al
inc al
jne 0x332c1ccc4
mov rcx, qword [0x334368ff0]
mov edx, 0x30
call fcn.332c14371
mov r14, rax
mov rax, qword [0x334369040]
mov qword [r14], rax
lea rax, [0x332c2b240]
mov qword [r14 + 0x10], rax
test rbx, rbx
js 0x332c1cbb9
cmp rbx, qword [rsi]
jl 0x332c1cbe1
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
test rbx, rbx
js 0x332c1cbd2
cmp rbx, qword [rsi]
jl 0x332c1cbe1
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.332c11744
mov rcx, rbx
mov qword [rsp + 0x38], rax
call fcn.332c11744
mov r8, qword [rsp + 0x38]
xor edx, edx
mov r15, rax
test r8, r8
je 0x332c1cc0a
mov rdx, qword [r8]
xor eax, eax
test r15, r15
je 0x332c1cc14
mov rax, qword [r15]
lea rcx, [rdx + rax + 0x38]
mov qword [rsp + 0x38], r8
call fcn.332c143a2
lea rdx, [0x332c2b340]
mov rcx, rax
mov r9, rax
call fcn.332c1c9d4
movsx edx, byte [rsi + rbx + 0x10]
mov rcx, r9
call fcn.332c1c970
lea rdx, [0x332c2b320]
call fcn.332c1c9d4
mov r8, qword [rsp + 0x38]
mov rcx, r9
mov rdx, r8
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b300]
call fcn.332c1c9d4
mov rcx, r9
mov rdx, r15
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b2e0]
call fcn.332c1c9d4
mov rdx, r9
lea rcx, [r14 + 0x18]
call fcn.332c1c983
lea rcx, [r14 + 8]
xor edx, edx
call fcn.332c1c983
lea r9, [0x332c2b24b]
lea r8, [0x332c2b256]
mov rcx, r14
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x332c2b240]
call fcn.332c14a36
add rbx, 1
jno 0x332c1cccf
call fcn.332c139bc
mov rdx, qword [rsi]
test rbx, rbx
js 0x332c1ccdc
cmp rbx, rdx
jl 0x332c1cce7
dec rdx
mov rcx, rbx
call fcn.332c14c8d
movzx eax, byte [rsi + rbx + 0x10]
movzx eax, byte [rbp + rax]
mov byte [rsp + 0x38], al
mov qword [rsp + 0x50], rax
cmp rax, 0xff
jne 0x332c1ce44
mov rcx, qword [0x334368ff0]
mov edx, 0x30
call fcn.332c14371
mov r14, rax
mov rax, qword [0x334369040]
mov qword [r14], rax
lea rax, [0x332c2b240]
mov qword [r14 + 0x10], rax
test rbx, rbx
js 0x332c1cd39
cmp rbx, qword [rsi]
jl 0x332c1cd61
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
test rbx, rbx
js 0x332c1cd52
cmp rbx, qword [rsi]
jl 0x332c1cd61
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.332c11744
mov rcx, rbx
mov qword [rsp + 0x40], rax
call fcn.332c11744
mov r8, qword [rsp + 0x40]
xor edx, edx
mov r15, rax
test r8, r8
je 0x332c1cd8a
mov rdx, qword [r8]
xor eax, eax
test r15, r15
je 0x332c1cd94
mov rax, qword [r15]
lea rcx, [rdx + rax + 0x38]
mov qword [rsp + 0x40], r8
call fcn.332c143a2
lea rdx, [0x332c2b340]
mov rcx, rax
mov r9, rax
call fcn.332c1c9d4
movsx edx, byte [rsi + rbx + 0x10]
mov rcx, r9
call fcn.332c1c970
lea rdx, [0x332c2b320]
call fcn.332c1c9d4
mov r8, qword [rsp + 0x40]
mov rcx, r9
mov rdx, r8
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b300]
call fcn.332c1c9d4
mov rcx, r9
mov rdx, r15
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b2e0]
call fcn.332c1c9d4
mov rdx, r9
lea rcx, [r14 + 0x18]
call fcn.332c1c983
lea rcx, [r14 + 8]
xor edx, edx
call fcn.332c1c983
lea r9, [0x332c2b24b]
lea r8, [0x332c2b256]
mov rcx, r14
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x332c2b240]
call fcn.332c14a36
add rbx, 1
jno 0x332c1ce4f
call fcn.332c139bc
mov rdx, qword [rsi]
test rbx, rbx
js 0x332c1ce5c
cmp rbx, rdx
jl 0x332c1ce67
dec rdx
mov rcx, rbx
call fcn.332c14c8d
movzx eax, byte [rsi + rbx + 0x10]
movzx eax, byte [rbp + rax]
mov byte [rsp + 0x40], al
mov qword [rsp + 0x58], rax
cmp rax, 0xff
jne 0x332c1cfc4
mov rcx, qword [0x334368ff0]
mov edx, 0x30
call fcn.332c14371
mov r14, rax
mov rax, qword [0x334369040]
mov qword [r14], rax
lea rax, [0x332c2b240]
mov qword [r14 + 0x10], rax
test rbx, rbx
js 0x332c1ceb9
cmp rbx, qword [rsi]
jl 0x332c1cee1
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
test rbx, rbx
js 0x332c1ced2
cmp rbx, qword [rsi]
jl 0x332c1cee1
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.332c11744
mov rcx, rbx
mov qword [rsp + 0x48], rax
call fcn.332c11744
mov r8, qword [rsp + 0x48]
xor edx, edx
mov r15, rax
test r8, r8
je 0x332c1cf0a
mov rdx, qword [r8]
xor eax, eax
test r15, r15
je 0x332c1cf14
mov rax, qword [r15]
lea rcx, [rdx + rax + 0x38]
mov qword [rsp + 0x48], r8
call fcn.332c143a2
lea rdx, [0x332c2b340]
mov rcx, rax
mov r9, rax
call fcn.332c1c9d4
movsx edx, byte [rsi + rbx + 0x10]
mov rcx, r9
call fcn.332c1c970
lea rdx, [0x332c2b320]
call fcn.332c1c9d4
mov r8, qword [rsp + 0x48]
mov rcx, r9
mov rdx, r8
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b300]
call fcn.332c1c9d4
mov rcx, r9
mov rdx, r15
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b2e0]
call fcn.332c1c9d4
mov rdx, r9
lea rcx, [r14 + 0x18]
call fcn.332c1c983
lea rcx, [r14 + 8]
xor edx, edx
call fcn.332c1c983
lea r9, [0x332c2b24b]
lea r8, [0x332c2b256]
mov rcx, r14
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x332c2b240]
call fcn.332c14a36
add rbx, 1
jno 0x332c1cfcf
call fcn.332c139bc
mov rdx, qword [rsi]
test rbx, rbx
js 0x332c1cfdc
cmp rbx, rdx
jl 0x332c1cfe7
dec rdx
mov rcx, rbx
call fcn.332c14c8d
movzx eax, byte [rsi + rbx + 0x10]
mov al, byte [rbp + rax]
mov byte [rsp + 0x48], al
inc al
jne 0x332c1d133
mov rcx, qword [0x334368ff0]
mov edx, 0x30
call fcn.332c14371
mov r14, rax
mov rax, qword [0x334369040]
mov qword [r14], rax
lea rax, [0x332c2b240]
mov qword [r14 + 0x10], rax
test rbx, rbx
js 0x332c1d02f
cmp rbx, qword [rsi]
jl 0x332c1d057
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
test rbx, rbx
js 0x332c1d048
cmp rbx, qword [rsi]
jl 0x332c1d057
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.332c11744
mov rcx, rbx
mov r15, rax
call fcn.332c11744
xor edx, edx
mov r8, rax
test r15, r15
je 0x332c1d079
mov rdx, qword [r15]
xor eax, eax
test r8, r8
je 0x332c1d083
mov rax, qword [r8]
lea rcx, [rdx + rax + 0x38]
mov qword [rsp + 0x68], r8
call fcn.332c143a2
lea rdx, [0x332c2b340]
mov rcx, rax
mov r9, rax
call fcn.332c1c9d4
movsx edx, byte [rsi + rbx + 0x10]
mov rcx, r9
call fcn.332c1c970
lea rdx, [0x332c2b320]
call fcn.332c1c9d4
mov rcx, r9
mov rdx, r15
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b300]
call fcn.332c1c9d4
mov r8, qword [rsp + 0x68]
mov rcx, r9
mov rdx, r8
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b2e0]
call fcn.332c1c9d4
mov rdx, r9
lea rcx, [r14 + 0x18]
call fcn.332c1c983
lea rcx, [r14 + 8]
xor edx, edx
call fcn.332c1c983
lea r9, [0x332c2b24b]
lea r8, [0x332c2b256]
mov rcx, r14
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x332c2b240]
call fcn.332c14a36
add rbx, 1
jno 0x332c1d13e
call fcn.332c139bc
test r13, r13
je 0x332c1d150
test r12, r12
js 0x332c1d150
cmp r12, qword [r13]
jl 0x332c1d169
jmp 0x332c1d159
or rdx, 0xffffffffffffffff
test r13, r13
je 0x332c1d161
mov rax, qword [r13]
lea rdx, [rax - 1]
mov rcx, r12
call fcn.332c14c8d
mov al, byte [rsp + 0x30]
mov rdx, qword [rsp + 0x50]
shl eax, 2
sar rdx, 4
or eax, edx
mov byte [r13 + r12 + 0x10], al
add r12, 1
jno 0x332c1d18b
call fcn.332c139bc
mov rdx, qword [r13]
test r12, r12
js 0x332c1d199
cmp r12, rdx
jl 0x332c1d1a4
dec rdx
mov rcx, r12
call fcn.332c14c8d
mov al, byte [rsp + 0x38]
mov rdx, qword [rsp + 0x58]
shl eax, 4
sar rdx, 2
or eax, edx
mov byte [r13 + r12 + 0x10], al
add r12, 1
jno 0x332c1d1c6
call fcn.332c139bc
mov rdx, qword [r13]
test r12, r12
js 0x332c1d1d4
cmp r12, rdx
jl 0x332c1d1df
dec rdx
mov rcx, r12
call fcn.332c14c8d
mov al, byte [rsp + 0x40]
mov r15b, byte [rsp + 0x48]
shl eax, 6
or r15d, eax
mov byte [r13 + r12 + 0x10], r15b
add r12, 1
jno 0x332c1cafe
call fcn.332c139bc
jmp 0x332c1cafe
mov rax, rbp
mov ecx, 4
cqo
idiv rcx
mov rax, rdx
sar rax, 0x3f
xor rdx, rax
sub rdx, rax
cmp rdx, 2
je 0x332c1d236
cmp rdx, 3
jne 0x332c1da1b
jmp 0x332c1d54c
mov rdx, qword [rsi]
test rbx, rbx
js 0x332c1d243
cmp rbx, rdx
jl 0x332c1d24e
dec rdx
mov rcx, rbx
call fcn.332c14c8d
movzx eax, byte [rsi + rbx + 0x10]
lea rbp, [0x332c2b380]
mov al, byte [rbp + rax]
mov byte [rsp + 0x30], al
inc al
jne 0x332c1d397
mov rcx, qword [0x334368ff0]
mov edx, 0x30
call fcn.332c14371
mov r14, rax
mov rax, qword [0x334369040]
mov qword [r14], rax
lea rax, [0x332c2b240]
mov qword [r14 + 0x10], rax
test rbx, rbx
js 0x332c1d29d
cmp rbx, qword [rsi]
jl 0x332c1d2c5
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
test rbx, rbx
js 0x332c1d2b6
cmp rbx, qword [rsi]
jl 0x332c1d2c5
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.332c11744
mov rcx, rbx
mov rdi, rax
call fcn.332c11744
xor edx, edx
mov r15, rax
test rdi, rdi
je 0x332c1d2e7
mov rdx, qword [rdi]
xor eax, eax
test r15, r15
je 0x332c1d2f1
mov rax, qword [r15]
lea rcx, [rdx + rax + 0x38]
call fcn.332c143a2
lea rdx, [0x332c2b340]
mov rcx, rax
mov r9, rax
call fcn.332c1c9d4
movsx edx, byte [rsi + rbx + 0x10]
mov rcx, r9
call fcn.332c1c970
lea rdx, [0x332c2b320]
call fcn.332c1c9d4
mov rcx, r9
mov rdx, rdi
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b300]
call fcn.332c1c9d4
mov rcx, r9
mov rdx, r15
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b2e0]
call fcn.332c1c9d4
mov rdx, r9
lea rcx, [r14 + 0x18]
call fcn.332c1c983
lea rcx, [r14 + 8]
xor edx, edx
call fcn.332c1c983
lea r9, [0x332c2b24b]
lea r8, [0x332c2b256]
mov rcx, r14
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x332c2b240]
call fcn.332c14a36
add rbx, 1
jno 0x332c1d3a2
call fcn.332c139bc
mov rdx, qword [rsi]
test rbx, rbx
js 0x332c1d3af
cmp rbx, rdx
jl 0x332c1d3ba
dec rdx
mov rcx, rbx
call fcn.332c14c8d
movzx eax, byte [rsi + rbx + 0x10]
movzx ebp, byte [rbp + rax]
cmp rbp, 0xff
jne 0x332c1d4fe
mov rcx, qword [0x334368ff0]
mov edx, 0x30
call fcn.332c14371
mov r14, rax
mov rax, qword [0x334369040]
mov qword [r14], rax
lea rax, [0x332c2b240]
mov qword [r14 + 0x10], rax
test rbx, rbx
js 0x332c1d404
cmp rbx, qword [rsi]
jl 0x332c1d42c
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
test rbx, rbx
js 0x332c1d41d
cmp rbx, qword [rsi]
jl 0x332c1d42c
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.332c11744
mov rcx, rbx
mov rdi, rax
call fcn.332c11744
mov r15, rax
xor eax, eax
test rdi, rdi
je 0x332c1d44e
mov rax, qword [rdi]
xor edx, edx
test r15, r15
je 0x332c1d458
mov rdx, qword [r15]
lea rcx, [rdx + rax + 0x38]
call fcn.332c143a2
lea rdx, [0x332c2b340]
mov rcx, rax
mov r9, rax
call fcn.332c1c9d4
movsx edx, byte [rsi + rbx + 0x10]
mov rcx, r9
call fcn.332c1c970
lea rdx, [0x332c2b320]
call fcn.332c1c9d4
mov rcx, r9
mov rdx, rdi
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b300]
call fcn.332c1c9d4
mov rcx, r9
mov rdx, r15
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b2e0]
call fcn.332c1c9d4
mov rdx, r9
lea rcx, [r14 + 0x18]
call fcn.332c1c983
lea rcx, [r14 + 8]
xor edx, edx
call fcn.332c1c983
lea r9, [0x332c2b24b]
lea r8, [0x332c2b256]
mov rcx, r14
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x332c2b240]
call fcn.332c14a36
add rbx, 1
jno 0x332c1d509
call fcn.332c139bc
test r13, r13
je 0x332c1d51b
test r12, r12
js 0x332c1d51b
cmp r12, qword [r13]
jl 0x332c1d534
jmp 0x332c1d524
or rdx, 0xffffffffffffffff
test r13, r13
je 0x332c1d52c
mov rax, qword [r13]
lea rdx, [rax - 1]
mov rcx, r12
call fcn.332c14c8d
mov dil, byte [rsp + 0x30]
sar rbp, 4
shl edi, 2
or edi, ebp
mov byte [r13 + r12 + 0x10], dil
jmp 0x332c1da10
mov rdx, qword [rsi]
test rbx, rbx
js 0x332c1d559
cmp rbx, rdx
jl 0x332c1d564
dec rdx
mov rcx, rbx
call fcn.332c14c8d
movzx eax, byte [rsi + rbx + 0x10]
lea rbp, [0x332c2b380]
mov al, byte [rbp + rax]
mov byte [rsp + 0x38], al
inc al
jne 0x332c1d6ad
mov rcx, qword [0x334368ff0]
mov edx, 0x30
call fcn.332c14371
mov r14, rax
mov rax, qword [0x334369040]
mov qword [r14], rax
lea rax, [0x332c2b240]
mov qword [r14 + 0x10], rax
test rbx, rbx
js 0x332c1d5b3
cmp rbx, qword [rsi]
jl 0x332c1d5db
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
test rbx, rbx
js 0x332c1d5cc
cmp rbx, qword [rsi]
jl 0x332c1d5db
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.332c11744
mov rcx, rbx
mov rdi, rax
call fcn.332c11744
xor edx, edx
mov r15, rax
test rdi, rdi
je 0x332c1d5fd
mov rdx, qword [rdi]
xor eax, eax
test r15, r15
je 0x332c1d607
mov rax, qword [r15]
lea rcx, [rdx + rax + 0x38]
call fcn.332c143a2
lea rdx, [0x332c2b340]
mov rcx, rax
mov r9, rax
call fcn.332c1c9d4
movsx edx, byte [rsi + rbx + 0x10]
mov rcx, r9
call fcn.332c1c970
lea rdx, [0x332c2b320]
call fcn.332c1c9d4
mov rcx, r9
mov rdx, rdi
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b300]
call fcn.332c1c9d4
mov rcx, r9
mov rdx, r15
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b2e0]
call fcn.332c1c9d4
mov rdx, r9
lea rcx, [r14 + 0x18]
call fcn.332c1c983
lea rcx, [r14 + 8]
xor edx, edx
call fcn.332c1c983
lea r9, [0x332c2b24b]
lea r8, [0x332c2b256]
mov rcx, r14
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x332c2b240]
call fcn.332c14a36
add rbx, 1
jno 0x332c1d6b8
call fcn.332c139bc
mov rdx, qword [rsi]
test rbx, rbx
js 0x332c1d6c5
cmp rbx, rdx
jl 0x332c1d6d0
dec rdx
mov rcx, rbx
call fcn.332c14c8d
movzx eax, byte [rsi + rbx + 0x10]
movzx eax, byte [rbp + rax]
mov qword [rsp + 0x30], rax
cmp rax, 0xff
jne 0x332c1d818
mov rcx, qword [0x334368ff0]
mov edx, 0x30
call fcn.332c14371
mov r15, rax
mov rax, qword [0x334369040]
mov qword [r15], rax
lea rax, [0x332c2b240]
mov qword [r15 + 0x10], rax
test rbx, rbx
js 0x332c1d71e
cmp rbx, qword [rsi]
jl 0x332c1d746
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
test rbx, rbx
js 0x332c1d737
cmp rbx, qword [rsi]
jl 0x332c1d746
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.332c11744
mov rcx, rbx
mov r14, rax
call fcn.332c11744
xor edx, edx
mov rdi, rax
test r14, r14
je 0x332c1d768
mov rdx, qword [r14]
xor eax, eax
test rdi, rdi
je 0x332c1d772
mov rax, qword [rdi]
lea rcx, [rdx + rax + 0x38]
call fcn.332c143a2
lea rdx, [0x332c2b340]
mov rcx, rax
mov r9, rax
call fcn.332c1c9d4
movsx edx, byte [rsi + rbx + 0x10]
mov rcx, r9
call fcn.332c1c970
lea rdx, [0x332c2b320]
call fcn.332c1c9d4
mov rcx, r9
mov rdx, r14
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b300]
call fcn.332c1c9d4
mov rcx, r9
mov rdx, rdi
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b2e0]
call fcn.332c1c9d4
mov rdx, r9
lea rcx, [r15 + 0x18]
call fcn.332c1c983
lea rcx, [r15 + 8]
xor edx, edx
call fcn.332c1c983
lea r9, [0x332c2b24b]
lea r8, [0x332c2b256]
mov rcx, r15
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x332c2b240]
call fcn.332c14a36
add rbx, 1
jno 0x332c1d823
call fcn.332c139bc
mov rdx, qword [rsi]
test rbx, rbx
js 0x332c1d830
cmp rbx, rdx
jl 0x332c1d83b
dec rdx
mov rcx, rbx
call fcn.332c14c8d
movzx eax, byte [rsi + rbx + 0x10]
movzx ebp, byte [rbp + rax]
cmp rbp, 0xff
jne 0x332c1d989
mov rcx, qword [0x334368ff0]
mov edx, 0x30
call fcn.332c14371
mov r15, rax
mov rax, qword [0x334369040]
mov qword [r15], rax
lea rax, [0x332c2b240]
mov qword [r15 + 0x10], rax
test rbx, rbx
js 0x332c1d885
cmp rbx, qword [rsi]
jl 0x332c1d8ad
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
test rbx, rbx
js 0x332c1d89e
cmp rbx, qword [rsi]
jl 0x332c1d8ad
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.332c14c8d
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.332c11744
mov rcx, rbx
mov rdi, rax
call fcn.332c11744
xor edx, edx
mov r8, rax
test rdi, rdi
je 0x332c1d8cf
mov rdx, qword [rdi]
xor eax, eax
test r8, r8
je 0x332c1d8d9
mov rax, qword [r8]
lea rcx, [rdx + rax + 0x38]
mov qword [rsp + 0x40], r8
call fcn.332c143a2
lea rdx, [0x332c2b340]
mov rcx, rax
mov r9, rax
call fcn.332c1c9d4
movsx edx, byte [rsi + rbx + 0x10]
mov rcx, r9
call fcn.332c1c970
lea rdx, [0x332c2b320]
call fcn.332c1c9d4
mov rcx, r9
mov rdx, rdi
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b300]
call fcn.332c1c9d4
mov r8, qword [rsp + 0x40]
mov rcx, r9
mov rdx, r8
call fcn.332c1c9fa
mov rcx, r9
lea rdx, [0x332c2b2e0]
call fcn.332c1c9d4
mov rdx, r9
lea rcx, [r15 + 0x18]
call fcn.332c1c983
lea rcx, [r15 + 8]
xor edx, edx
call fcn.332c1c983
lea r9, [0x332c2b24b]
lea r8, [0x332c2b256]
mov rcx, r15
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x332c2b240]
call fcn.332c14a36
add rbx, 1
jno 0x332c1d994
call fcn.332c139bc
test r13, r13
je 0x332c1d9a6
test r12, r12
js 0x332c1d9a6
cmp r12, qword [r13]
jl 0x332c1d9bf
jmp 0x332c1d9af
or rdx, 0xffffffffffffffff
test r13, r13
je 0x332c1d9b7
mov rax, qword [r13]
lea rdx, [rax - 1]
mov rcx, r12
call fcn.332c14c8d
mov dil, byte [rsp + 0x38]
mov rax, qword [rsp + 0x30]
shl edi, 2
sar rax, 4
or edi, eax
mov byte [r13 + r12 + 0x10], dil
add r12, 1
jno 0x332c1d9e2
call fcn.332c139bc
mov rdx, qword [r13]
test r12, r12
js 0x332c1d9f0
cmp r12, rdx
jl 0x332c1d9fb
dec rdx
mov rcx, r12
call fcn.332c14c8d
mov r14, qword [rsp + 0x30]
sar rbp, 2
shl r14, 4
or r14d, ebp
mov byte [r13 + r12 + 0x10], r14b
add r12, 1
jno 0x332c1da1b
call fcn.332c139bc
test r12, r12
jns 0x332c1da34
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r12
call fcn.332c14b49
mov rdx, r12
mov rcx, r13
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.332c1471e
xor eax, eax
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret