Function at 0x40bcd9
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
mov rax, qword [rdx]
mov r14, qword [rdx + 8]
test rax, rax
mov qword [rsp + 0x130], rcx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
je 0x40d5ac
mov rcx, rax
call fcn.0040bc5f
mov rdx, qword [0x00415730]
cmp byte [rdx], 0
jne 0x40d5ac
test rax, rax
jns 0x40bd52
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rax
jmp 0x40d593
lea rcx, [rsp + 0xa0]
mov rdx, rax
call fcn.00403b04
mov rax, qword [rsp + 0x30]
lea r10, [rsp + 0xc0]
movabs r11, 0x2000000100002400
lea rbx, [rsp + 0xd0]
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0x40]
mov r8, r10
mov edx, 1
call fcn.0040bb46
test al, al
jne 0x40d061
mov rcx, qword [rsp + 0xc0]
cmp qword [rsp + 0x30], rcx
ja 0x40bdbc
mov rdx, qword [rsp + 0x30]
dec rdx
jmp 0x40c945
mov al, byte [r14 + rcx + 8]
cmp al, 0x3d
ja 0x40bdcb
bt r11, rax
jb 0x40be01
mov rcx, qword [rsp + 0x40]
lea r8, [rsp + 0x78]
mov edx, 4
call fcn.0040bb46
test al, al
jne 0x40d061
mov qword [rsp + 0x38], 0
mov rax, qword [rsp + 0x78]
xor ebx, ebx
mov qword [rsp + 0x50], rax
jmp 0x40c0af
mov rcx, qword [rsp + 0x40]
mov r8, rbx
mov edx, 1
call fcn.0040bb46
test al, al
jne 0x40d061
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x40], rax
jmp 0x40bd86
mov esi, 0x400009
shl rsi, 0xa
bt rsi, rax
jae 0x40be71
mov r8, r10
mov edx, 1
mov rcx, rbx
call fcn.0040bb30
test al, al
jne 0x40d061
mov rbx, qword [rsp + 0xd0]
cmp qword [rsp + 0x30], rbx
jbe 0x40ce2f
movzx eax, byte [r14 + rbx + 8]
cmp al, 0x20
jbe 0x40be2d
lea r12, [0x00413fe0]
mov al, byte [r12 + rax]
mov byte [rsp + 0x48], al
inc al
je 0x40c0e5
lea r8, [rsp + 0x80]
mov edx, 1
mov rcx, rbx
call fcn.0040bb30
test al, al
jne 0x40d061
mov rsi, qword [rsp + 0x80]
cmp qword [rsp + 0x30], rsi
jbe 0x40cb9b
movzx eax, byte [rsi + r14 + 8]
movzx eax, byte [r12 + rax]
cmp al, 0xff
mov r15, rax
mov qword [rsp + 0x58], rax
je 0x40c2d2
lea r8, [rsp + 0x88]
mov edx, 1
mov rcx, rsi
call fcn.0040bb30
test al, al
jne 0x40d061
mov rsi, qword [rsp + 0x88]
cmp qword [rsp + 0x30], rsi
jbe 0x40cb9b
movzx eax, byte [rsi + r14 + 8]
lea rdx, [0x00413fe0]
movzx eax, byte [rdx + rax]
cmp al, 0xff
mov r13, rax
mov qword [rsp + 0x58], rax
je 0x40c4c7
lea r8, [rsp + 0x90]
mov edx, 1
mov rcx, rsi
call fcn.0040bb30
test al, al
jne 0x40d061
mov rsi, qword [rsp + 0x90]
cmp qword [rsp + 0x30], rsi
jbe 0x40cb9b
movzx eax, byte [rsi + r14 + 8]
lea rdx, [0x00413fe0]
mov bpl, byte [rdx + rax]
cmp bpl, 0xff
je 0x40c6bc
lea r8, [rsp + 0x98]
mov edx, 1
mov rcx, rsi
call fcn.0040bb30
test al, al
jne 0x40d061
mov rdx, qword [rsp + 0xa0]
cmp rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x98]
jbe 0x40d4aa
lea rsi, [rsp + 0xa0]
mov rcx, rsi
call fcn.0040bc42
mov al, byte [rsp + 0x48]
movzx edx, r15b
sar rdx, 4
mov rdi, qword [rsp + 0x38]
lea r8, [rsp + 0xb0]
shl eax, 2
or eax, edx
mov rdx, qword [rsp + 0xa8]
mov rcx, rdi
mov byte [rdx + rdi + 8], al
mov edx, 1
call fcn.0040bb30
test al, al
jne 0x40d061
mov rdi, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0xa0]
cmp rdx, rdi
jbe 0x40c93f
mov rcx, rsi
shl r15d, 4
call fcn.0040bc42
movzx eax, r13b
mov edx, 1
mov rcx, rdi
lea r8, [rsp + 0xc0]
sar rax, 2
or r15d, eax
mov rax, qword [rsp + 0xa8]
mov byte [rax + rdi + 8], r15b
call fcn.0040bb30
test al, al
jne 0x40d061
mov rdi, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0xa0]
cmp rdx, rdi
jbe 0x40c93f
mov rcx, rsi
shl r13d, 6
call fcn.0040bc42
or ebp, r13d
mov edx, 1
mov rcx, rdi
mov rax, qword [rsp + 0xa8]
lea r8, [rsp + 0xd0]
mov byte [rax + rdi + 8], bpl
call fcn.0040bb30
test al, al
jne 0x40d061
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x38], rax
cmp rbx, qword [rsp + 0x50]
jg 0x40c0c3
lea r10, [rsp + 0xd0]
jmp 0x40be5c
mov rdx, qword [rsp + 0x40]
lea r8, [rsp + 0x88]
mov rcx, rbx
call fcn.0040bb46
test al, al
je 0x40c8b4
jmp 0x40d061
mov edx, 8
mov ecx, 0x40
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
lea r13, str.ValueError
mov qword [rsp + 0xc0], 0
lea rsi, [rsp + 0x60]
mov qword [rsp + 0xc8], 0
call fcn.00403e5a
mov rcx, rsi
mov r15, rax
mov rax, qword [0x00415540]
mov qword [r15 + 0x10], r13
mov qword [r15], rax
movzx edx, byte [r14 + rbx + 8]
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
call fcn.004018e0
mov rbp, qword [0x00415730]
movups xmm0, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xb0], xmm0
cmp byte [rbp], 0
jne 0x40c2a9
mov rdx, rbx
mov rcx, rsi
call fcn.004018e0
cmp byte [rbp], 0
movups xmm1, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xc0], xmm1
jne 0x40c2a9
mov rdx, qword [rsp + 0xc0]
mov rcx, rsi
add rdx, qword [rsp + 0xb0]
lea rdi, [rsp + 0xd0]
add rdx, 0x38
call fcn.00403b6c
movups xmm2, xmmword [rsp + 0x60]
mov rdx, rsi
mov rcx, rdi
movaps xmm3, xmmword [0x00413f90]
movaps xmmword [rsp + 0xd0], xmm2
movaps xmmword [rsp + 0x60], xmm3
call fcn.0040bbbb
movsx edx, byte [r14 + rbx + 8]
mov rcx, rdi
call fcn.0040bb5e
movaps xmm4, xmmword [0x00413f70]
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm4
call fcn.0040bbbb
movaps xmm5, xmmword [rsp + 0xb0]
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm5
call fcn.0040bbbb
movaps xmm0, xmmword [0x00413f40]
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm0
call fcn.0040bbbb
movaps xmm1, xmmword [rsp + 0xc0]
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm1
call fcn.0040bbbb
movaps xmm2, xmmword [0x00413f20]
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm2
call fcn.0040bbbb
movaps xmm3, xmmword [rsp + 0xd0]
mov rdx, r13
mov rcx, r15
mov qword [r15 + 8], 0
lea r9, str.base64.nim
movups xmmword [r15 + 0x18], xmm3
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
call fcn.00403512
lea rcx, [rsp + 0xc0]
call fcn.00402c30
lea rcx, [rsp + 0xb0]
call fcn.00402c30
cmp byte [rbp], 0
je 0x40be88
jmp 0x40d5ac
mov edx, 8
mov ecx, 0x40
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
lea rbp, str.ValueError
mov qword [rsp + 0xc0], 0
lea rbx, [rsp + 0x60]
mov qword [rsp + 0xc8], 0
call fcn.00403e5a
mov rcx, rbx
mov r12, rax
mov rax, qword [0x00415540]
mov qword [r12 + 0x10], rbp
mov qword [r12], rax
movzx edx, byte [r14 + rsi + 8]
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
call fcn.004018e0
mov rdi, qword [0x00415730]
movups xmm4, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xb0], xmm4
cmp byte [rdi], 0
jne 0x40c498
mov rdx, rsi
mov rcx, rbx
call fcn.004018e0
cmp byte [rdi], 0
movups xmm5, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xc0], xmm5
jne 0x40c498
mov rdx, qword [rsp + 0xc0]
mov rcx, rbx
add rdx, qword [rsp + 0xb0]
lea rdi, [rsp + 0xd0]
add rdx, 0x38
call fcn.00403b6c
movups xmm0, xmmword [rsp + 0x60]
mov rdx, rbx
mov rcx, rdi
movaps xmm1, xmmword [0x00413f90]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0x60], xmm1
call fcn.0040bbbb
movsx edx, byte [r14 + rsi + 8]
mov rcx, rdi
call fcn.0040bb5e
movaps xmm2, xmmword [0x00413f70]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm2
call fcn.0040bbbb
movaps xmm3, xmmword [rsp + 0xb0]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm3
call fcn.0040bbbb
movaps xmm4, xmmword [0x00413f40]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm4
call fcn.0040bbbb
movaps xmm5, xmmword [rsp + 0xc0]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm5
call fcn.0040bbbb
movaps xmm0, xmmword [0x00413f20]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm0
call fcn.0040bbbb
movaps xmm1, xmmword [rsp + 0xd0]
mov rdx, rbp
mov rcx, r12
mov qword [r12 + 8], 0
lea r9, str.base64.nim
movups xmmword [r12 + 0x18], xmm1
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
call fcn.00403512
lea rcx, [rsp + 0xc0]
call fcn.00402c30
lea rcx, [rsp + 0xb0]
call fcn.00402c30
mov rax, qword [0x00415730]
cmp byte [rax], 0
je 0x40bed3
jmp 0x40d5ac
mov edx, 8
mov ecx, 0x40
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
lea rbp, str.ValueError
mov qword [rsp + 0xc0], 0
lea rbx, [rsp + 0x60]
mov qword [rsp + 0xc8], 0
call fcn.00403e5a
mov rcx, rbx
mov r12, rax
mov rax, qword [0x00415540]
mov qword [r12 + 0x10], rbp
mov qword [r12], rax
movzx edx, byte [r14 + rsi + 8]
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
call fcn.004018e0
mov rdi, qword [0x00415730]
movups xmm2, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xb0], xmm2
cmp byte [rdi], 0
jne 0x40c68d
mov rdx, rsi
mov rcx, rbx
call fcn.004018e0
cmp byte [rdi], 0
movups xmm3, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xc0], xmm3
jne 0x40c68d
mov rdx, qword [rsp + 0xc0]
mov rcx, rbx
add rdx, qword [rsp + 0xb0]
lea rdi, [rsp + 0xd0]
add rdx, 0x38
call fcn.00403b6c
movups xmm4, xmmword [rsp + 0x60]
mov rdx, rbx
mov rcx, rdi
movaps xmm5, xmmword [0x00413f90]
movaps xmmword [rsp + 0xd0], xmm4
movaps xmmword [rsp + 0x60], xmm5
call fcn.0040bbbb
movsx edx, byte [r14 + rsi + 8]
mov rcx, rdi
call fcn.0040bb5e
movaps xmm0, xmmword [0x00413f70]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm0
call fcn.0040bbbb
movaps xmm1, xmmword [rsp + 0xb0]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm1
call fcn.0040bbbb
movaps xmm2, xmmword [0x00413f40]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm2
call fcn.0040bbbb
movaps xmm3, xmmword [rsp + 0xc0]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm3
call fcn.0040bbbb
movaps xmm4, xmmword [0x00413f20]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm4
call fcn.0040bbbb
movaps xmm5, xmmword [rsp + 0xd0]
mov rdx, rbp
mov rcx, r12
mov qword [r12 + 8], 0
lea r9, str.base64.nim
movups xmmword [r12 + 0x18], xmm5
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
call fcn.00403512
lea rcx, [rsp + 0xc0]
call fcn.00402c30
lea rcx, [rsp + 0xb0]
call fcn.00402c30
mov rax, qword [0x00415730]
cmp byte [rax], 0
je 0x40bf24
jmp 0x40d5ac
mov edx, 8
mov ecx, 0x40
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
lea rbx, [rsp + 0x60]
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
call fcn.00403e5a
mov rdx, qword [0x00415540]
mov rcx, rbx
mov r12, rax
mov qword [rax], rdx
lea rax, str.ValueError
mov qword [r12 + 0x10], rax
movzx edx, byte [r14 + rsi + 8]
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
call fcn.004018e0
mov rdi, qword [0x00415730]
movups xmm0, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xb0], xmm0
cmp byte [rdi], 0
jne 0x40c885
mov rdx, rsi
mov rcx, rbx
call fcn.004018e0
cmp byte [rdi], 0
movups xmm1, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xc0], xmm1
jne 0x40c885
mov rdx, qword [rsp + 0xc0]
mov rcx, rbx
add rdx, qword [rsp + 0xb0]
lea rdi, [rsp + 0xd0]
add rdx, 0x38
call fcn.00403b6c
movups xmm2, xmmword [rsp + 0x60]
mov rdx, rbx
mov rcx, rdi
movaps xmm3, xmmword [0x00413f90]
movaps xmmword [rsp + 0xd0], xmm2
movaps xmmword [rsp + 0x60], xmm3
call fcn.0040bbbb
movsx edx, byte [r14 + rsi + 8]
mov rcx, rdi
call fcn.0040bb5e
movaps xmm4, xmmword [0x00413f70]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm4
call fcn.0040bbbb
movaps xmm5, xmmword [rsp + 0xb0]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm5
call fcn.0040bbbb
movaps xmm0, xmmword [0x00413f40]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm0
call fcn.0040bbbb
movaps xmm1, xmmword [rsp + 0xc0]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm1
call fcn.0040bbbb
movaps xmm2, xmmword [0x00413f20]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm2
call fcn.0040bbbb
movaps xmm3, xmmword [rsp + 0xd0]
mov rcx, r12
mov qword [r12 + 8], 0
lea r9, str.base64.nim
movups xmmword [r12 + 0x18], xmm3
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
lea rdx, str.ValueError
call fcn.00403512
lea rcx, [rsp + 0xc0]
call fcn.00402c30
lea rcx, [rsp + 0xb0]
call fcn.00402c30
mov rax, qword [0x00415730]
cmp byte [rax], 0
je 0x40bf6f
jmp 0x40d5ac
mov rax, qword [rsp + 0x88]
mov ecx, 4
cqo
idiv rcx
mov rax, rdx
sar rax, 0x3f
xor rdx, rax
sub rdx, rax
cmp rdx, 2
je 0x40c94f
cmp rdx, 3
jne 0x40d57a
cmp qword [rsp + 0x30], rbx
jbe 0x40ce2f
movzx eax, byte [rbx + r14 + 8]
lea r13, [0x00413fe0]
mov r12b, byte [r13 + rax]
cmp r12b, 0xff
je 0x40ce39
lea r8, [rsp + 0x90]
mov edx, 1
mov rcx, rbx
call fcn.0040bb30
test al, al
jne 0x40d061
mov rdi, qword [rsp + 0x90]
cmp qword [rsp + 0x30], rdi
ja 0x40d031
mov rdx, qword [rsp + 0x30]
dec rdx
mov rcx, rdi
call fcn.00403ff6
jmp 0x40d5ac
cmp qword [rsp + 0x30], rbx
jbe 0x40ce2f
movzx eax, byte [rbx + r14 + 8]
lea rbp, [0x00413fe0]
mov r12b, byte [rbp + rax]
cmp r12b, 0xff
je 0x40c994
lea r8, [rsp + 0x98]
mov edx, 1
mov rcx, rbx
call fcn.0040bb30
test al, al
je 0x40cb8c
jmp 0x40d061
mov edx, 8
mov ecx, 0x40
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
lea r13, str.ValueError
mov qword [rsp + 0xc0], 0
lea rsi, [rsp + 0x60]
mov qword [rsp + 0xc8], 0
call fcn.00403e5a
mov rcx, rsi
mov r15, rax
mov rax, qword [0x00415540]
mov qword [r15 + 0x10], r13
mov qword [r15], rax
movzx edx, byte [rbx + r14 + 8]
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
call fcn.004018e0
mov rax, qword [0x00415730]
movups xmm4, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xb0], xmm4
cmp byte [rax], 0
jne 0x40cb5d
mov rdx, rbx
mov rcx, rsi
call fcn.004018e0
mov rax, qword [0x00415730]
movups xmm5, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xc0], xmm5
cmp byte [rax], 0
jne 0x40cb5d
mov rdx, qword [rsp + 0xc0]
mov rcx, rsi
add rdx, qword [rsp + 0xb0]
lea rdi, [rsp + 0xd0]
add rdx, 0x38
call fcn.00403b6c
movups xmm0, xmmword [rsp + 0x60]
mov rdx, rsi
mov rcx, rdi
movaps xmm1, xmmword [0x00413f90]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0x60], xmm1
call fcn.0040bbbb
movsx edx, byte [rbx + r14 + 8]
mov rcx, rdi
call fcn.0040bb5e
movaps xmm2, xmmword [0x00413f70]
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm2
call fcn.0040bbbb
movaps xmm3, xmmword [rsp + 0xb0]
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm3
call fcn.0040bbbb
movaps xmm4, xmmword [0x00413f40]
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm4
call fcn.0040bbbb
movaps xmm5, xmmword [rsp + 0xc0]
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm5
call fcn.0040bbbb
movaps xmm0, xmmword [0x00413f20]
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm0
call fcn.0040bbbb
movaps xmm1, xmmword [rsp + 0xd0]
mov rdx, r13
mov rcx, r15
mov qword [r15 + 8], 0
lea r9, str.base64.nim
movups xmmword [r15 + 0x18], xmm1
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
call fcn.00403512
lea rcx, [rsp + 0xc0]
call fcn.00402c30
lea rcx, [rsp + 0xb0]
call fcn.00402c30
mov rax, qword [0x00415730]
cmp byte [rax], 0
je 0x40c972
jmp 0x40d5ac
mov rsi, qword [rsp + 0x98]
cmp qword [rsp + 0x30], rsi
ja 0x40cbab
mov rdx, qword [rsp + 0x30]
mov rcx, rsi
dec rdx
jmp 0x40c945
movzx eax, byte [rsi + r14 + 8]
mov bpl, byte [rbp + rax]
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x30], rax
cmp bpl, 0xff
je 0x40cbe8
mov r8, qword [rsp + 0x30]
mov edx, 1
mov rcx, rsi
call fcn.0040bb30
test al, al
je 0x40cddd
jmp 0x40d061
mov edx, 8
mov ecx, 0x40
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
lea r15, str.ValueError
mov qword [rsp + 0xc0], 0
lea rbx, [rsp + 0x60]
mov qword [rsp + 0xc8], 0
call fcn.00403e5a
mov rdx, qword [0x00415540]
mov rcx, rbx
mov qword [rax + 0x10], r15
mov r13, rax
mov qword [rax], rdx
movzx edx, byte [rsi + r14 + 8]
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
call fcn.004018e0
mov rax, qword [0x00415730]
movups xmm2, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xb0], xmm2
cmp byte [rax], 0
jne 0x40cdb1
mov rdx, rsi
mov rcx, rbx
call fcn.004018e0
mov rax, qword [0x00415730]
movups xmm3, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xc0], xmm3
cmp byte [rax], 0
jne 0x40cdb1
mov rdx, qword [rsp + 0xc0]
mov rcx, rbx
add rdx, qword [rsp + 0xb0]
lea rdi, [rsp + 0xd0]
add rdx, 0x38
call fcn.00403b6c
movups xmm4, xmmword [rsp + 0x60]
mov rdx, rbx
mov rcx, rdi
movaps xmm5, xmmword [0x00413f90]
movaps xmmword [rsp + 0xd0], xmm4
movaps xmmword [rsp + 0x60], xmm5
call fcn.0040bbbb
movsx edx, byte [rsi + r14 + 8]
mov rcx, rdi
call fcn.0040bb5e
movaps xmm0, xmmword [0x00413f70]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm0
call fcn.0040bbbb
movaps xmm1, xmmword [rsp + 0xb0]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm1
call fcn.0040bbbb
movaps xmm2, xmmword [0x00413f40]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm2
call fcn.0040bbbb
movaps xmm3, xmmword [rsp + 0xc0]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm3
call fcn.0040bbbb
movaps xmm4, xmmword [0x00413f20]
mov rdx, rbx
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm4
call fcn.0040bbbb
movaps xmm5, xmmword [rsp + 0xd0]
mov rdx, r15
mov rcx, r13
mov qword [r13 + 8], 0
lea r9, str.base64.nim
movups xmmword [r13 + 0x18], xmm5
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
call fcn.00403512
mov rcx, qword [rsp + 0x30]
call fcn.00402c30
lea rcx, [rsp + 0xb0]
call fcn.00402c30
mov rax, qword [0x00415730]
cmp byte [rax], 0
je 0x40cbc9
jmp 0x40d5ac
mov rdx, qword [rsp + 0xa0]
cmp rdx, qword [rsp + 0x38]
jbe 0x40d4aa
lea rcx, [rsp + 0xa0]
shl r12d, 2
call fcn.0040bc42
mov rsi, qword [rsp + 0x38]
shr bpl, 4
mov edx, 1
mov rax, qword [rsp + 0xa8]
or ebp, r12d
lea r8, [rsp + 0xd0]
mov rcx, rsi
mov byte [rax + rsi + 8], bpl
jmp 0x40d560
mov rdx, qword [rsp + 0x30]
jmp 0x40d51e
mov edx, 8
mov ecx, 0x40
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
lea rbp, str.ValueError
mov qword [rsp + 0xc0], 0
lea rsi, [rsp + 0x60]
mov qword [rsp + 0xc8], 0
call fcn.00403e5a
mov rcx, rsi
mov r15, rax
mov rax, qword [0x00415540]
mov qword [r15 + 0x10], rbp
mov qword [r15], rax
movzx edx, byte [rbx + r14 + 8]
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
call fcn.004018e0
mov rax, qword [0x00415730]
movups xmm0, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xb0], xmm0
cmp byte [rax], 0
jne 0x40d002
mov rdx, rbx
mov rcx, rsi
call fcn.004018e0
mov rax, qword [0x00415730]
movups xmm1, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xc0], xmm1
cmp byte [rax], 0
jne 0x40d002
mov rdx, qword [rsp + 0xc0]
mov rcx, rsi
add rdx, qword [rsp + 0xb0]
lea rdi, [rsp + 0xd0]
add rdx, 0x38
call fcn.00403b6c
movups xmm2, xmmword [rsp + 0x60]
mov rdx, rsi
mov rcx, rdi
movaps xmm3, xmmword [0x00413f90]
movaps xmmword [rsp + 0xd0], xmm2
movaps xmmword [rsp + 0x60], xmm3
call fcn.0040bbbb
movsx edx, byte [rbx + r14 + 8]
mov rcx, rdi
call fcn.0040bb5e
movaps xmm4, xmmword [0x00413f70]
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm4
call fcn.0040bbbb
movaps xmm5, xmmword [rsp + 0xb0]
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm5
call fcn.0040bbbb
movaps xmm0, xmmword [0x00413f40]
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm0
call fcn.0040bbbb
movaps xmm1, xmmword [rsp + 0xc0]
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm1
call fcn.0040bbbb
movaps xmm2, xmmword [0x00413f20]
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm2
call fcn.0040bbbb
movaps xmm3, xmmword [rsp + 0xd0]
mov rdx, rbp
mov rcx, r15
mov qword [r15 + 8], 0
lea r9, str.base64.nim
movups xmmword [r15 + 0x18], xmm3
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
call fcn.00403512
lea rcx, [rsp + 0xc0]
call fcn.00402c30
lea rcx, [rsp + 0xb0]
call fcn.00402c30
mov rax, qword [0x00415730]
cmp byte [rax], 0
je 0x40c90a
jmp 0x40d5ac
movzx eax, byte [rdi + r14 + 8]
mov al, byte [r13 + rax]
mov byte [rsp + 0x40], al
inc al
je 0x40d06b
lea r8, [rsp + 0x98]
mov edx, 1
mov rcx, rdi
call fcn.0040bb30
test al, al
je 0x40d262
call fcn.00402d34
jmp 0x40d5ac
mov edx, 8
mov ecx, 0x40
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
lea r15, str.ValueError
mov qword [rsp + 0xc0], 0
lea rbx, [rsp + 0x60]
mov qword [rsp + 0xc8], 0
call fcn.00403e5a
mov rdx, qword [0x00415540]
mov rcx, rbx
mov qword [rax + 0x10], r15
mov rsi, rax
mov qword [rax], rdx
movzx edx, byte [rdi + r14 + 8]
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
call fcn.004018e0
mov rax, qword [0x00415730]
movups xmm4, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xb0], xmm4
cmp byte [rax], 0
jne 0x40d233
mov rdx, rdi
mov rcx, rbx
call fcn.004018e0
mov rax, qword [0x00415730]
movups xmm5, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xc0], xmm5
cmp byte [rax], 0
jne 0x40d233
mov rdx, qword [rsp + 0xc0]
mov rcx, rbx
add rdx, qword [rsp + 0xb0]
lea rbp, [rsp + 0xd0]
add rdx, 0x38
call fcn.00403b6c
movups xmm0, xmmword [rsp + 0x60]
mov rdx, rbx
mov rcx, rbp
movaps xmm1, xmmword [0x00413f90]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0x60], xmm1
call fcn.0040bbbb
movsx edx, byte [rdi + r14 + 8]
mov rcx, rbp
call fcn.0040bb5e
movaps xmm2, xmmword [0x00413f70]
mov rdx, rbx
mov rcx, rbp
movaps xmmword [rsp + 0x60], xmm2
call fcn.0040bbbb
movaps xmm3, xmmword [rsp + 0xb0]
mov rdx, rbx
mov rcx, rbp
movaps xmmword [rsp + 0x60], xmm3
call fcn.0040bbbb
movaps xmm4, xmmword [0x00413f40]
mov rdx, rbx
mov rcx, rbp
movaps xmmword [rsp + 0x60], xmm4
call fcn.0040bbbb
movaps xmm5, xmmword [rsp + 0xc0]
mov rdx, rbx
mov rcx, rbp
movaps xmmword [rsp + 0x60], xmm5
call fcn.0040bbbb
movaps xmm0, xmmword [0x00413f20]
mov rdx, rbx
mov rcx, rbp
movaps xmmword [rsp + 0x60], xmm0
call fcn.0040bbbb
movaps xmm1, xmmword [rsp + 0xd0]
mov rdx, r15
mov rcx, rsi
mov qword [rsi + 8], 0
lea r9, str.base64.nim
movups xmmword [rsi + 0x18], xmm1
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
call fcn.00403512
lea rcx, [rsp + 0xc0]
call fcn.00402c30
lea rcx, [rsp + 0xb0]
call fcn.00402c30
mov rax, qword [0x00415730]
cmp byte [rax], 0
je 0x40d044
jmp 0x40d5ac
mov rdi, qword [rsp + 0x98]
cmp qword [rsp + 0x30], rdi
jbe 0x40c93a
movzx eax, byte [rdi + r14 + 8]
mov al, byte [r13 + rax]
mov byte [rsp + 0x30], al
inc al
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x48], rax
je 0x40d2b4
mov r8, qword [rsp + 0x48]
mov edx, 1
mov rcx, rdi
call fcn.0040bb30
test al, al
je 0x40d49b
jmp 0x40d061
mov edx, 8
mov ecx, 0x40
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
lea r15, str.ValueError
mov qword [rsp + 0xc0], 0
lea rbx, [rsp + 0x60]
mov qword [rsp + 0xc8], 0
call fcn.00403e5a
mov rdx, qword [0x00415540]
mov rcx, rbx
mov qword [rax + 0x10], r15
mov r13, rax
mov qword [rax], rdx
movzx edx, byte [rdi + r14 + 8]
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
call fcn.004018e0
mov rsi, qword [0x00415730]
movups xmm2, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xb0], xmm2
cmp byte [rsi], 0
jne 0x40d476
mov rdx, rdi
mov rcx, rbx
call fcn.004018e0
cmp byte [rsi], 0
movups xmm3, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xc0], xmm3
jne 0x40d476
mov rdx, qword [rsp + 0xc0]
mov rcx, rbx
add rdx, qword [rsp + 0xb0]
lea rbp, [rsp + 0xd0]
add rdx, 0x38
call fcn.00403b6c
movups xmm4, xmmword [rsp + 0x60]
mov rdx, rbx
mov rcx, rbp
movaps xmm5, xmmword [0x00413f90]
movaps xmmword [rsp + 0xd0], xmm4
movaps xmmword [rsp + 0x60], xmm5
call fcn.0040bbbb
movsx edx, byte [rdi + r14 + 8]
mov rcx, rbp
call fcn.0040bb5e
movaps xmm0, xmmword [0x00413f70]
mov rdx, rbx
mov rcx, rbp
movaps xmmword [rsp + 0x60], xmm0
call fcn.0040bbbb
movaps xmm1, xmmword [rsp + 0xb0]
mov rdx, rbx
mov rcx, rbp
movaps xmmword [rsp + 0x60], xmm1
call fcn.0040bbbb
movaps xmm2, xmmword [0x00413f40]
mov rdx, rbx
mov rcx, rbp
movaps xmmword [rsp + 0x60], xmm2
call fcn.0040bbbb
movaps xmm3, xmmword [rsp + 0xc0]
mov rdx, rbx
mov rcx, rbp
movaps xmmword [rsp + 0x60], xmm3
call fcn.0040bbbb
movaps xmm4, xmmword [0x00413f20]
mov rdx, rbx
mov rcx, rbp
movaps xmmword [rsp + 0x60], xmm4
call fcn.0040bbbb
movaps xmm5, xmmword [rsp + 0xd0]
mov rdx, r15
mov rcx, r13
mov qword [r13 + 8], 0
lea r9, str.base64.nim
movups xmmword [r13 + 0x18], xmm5
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
call fcn.00403512
lea rcx, [rsp + 0xc0]
call fcn.00402c30
mov rcx, qword [rsp + 0x48]
call fcn.00402c30
cmp byte [rsi], 0
je 0x40d295
jmp 0x40d5ac
mov rdx, qword [rsp + 0xa0]
cmp rdx, qword [rsp + 0x38]
ja 0x40d4b7
dec rdx
mov rcx, qword [rsp + 0x38]
jmp 0x40c945
lea rdi, [rsp + 0xa0]
shl r12d, 2
mov rcx, rdi
call fcn.0040bc42
movzx esi, byte [rsp + 0x40]
mov edx, 1
mov rbx, qword [rsp + 0x38]
lea r8, [rsp + 0xc0]
mov rax, rsi
sar rax, 4
mov rcx, rbx
or r12d, eax
mov rax, qword [rsp + 0xa8]
mov byte [rax + rbx + 8], r12b
call fcn.0040bb30
test al, al
jne 0x40d061
mov rbx, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0xa0]
cmp rdx, rbx
ja 0x40d529
dec rdx
mov rcx, rbx
jmp 0x40c945
mov rcx, rdi
call fcn.0040bc42
mov rax, rsi
mov sil, byte [rsp + 0x30]
mov rcx, rbx
shl rax, 4
mov edx, 1
lea r8, [rsp + 0xd0]
shr sil, 2
or esi, eax
mov rax, qword [rsp + 0xa8]
mov byte [rax + rbx + 8], sil
call fcn.0040bb30
test al, al
jne 0x40d061
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x38], rax
cmp qword [rsp + 0x38], 0
jns 0x40d59a
mov rcx, qword [rsp + 0x38]
xor edx, edx
movabs r8, 0x7fffffffffffffff
call fcn.00403638
jmp 0x40d5ac
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0xa0]
call fcn.00403b04
mov rax, qword [rsp + 0x130]
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rax], xmm0
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret