Function at 0x408424
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
mov rbx, qword [rdx]
mov r14, qword [rdx + 8]
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
test rbx, rbx
je 0x409803
lea rax, [rbx + rbx*2]
mov ecx, 4
cqo
idiv rcx
cmp byte [0x00447db8], 0
lea rdx, [rax + 6]
jne 0x409803
lea rcx, [rsp + 0x90]
call fcn.00403863
movabs rdx, 0x2000000100002400
mov qword [rsp + 0x60], rbx
dec rbx
mov cl, byte [r14 + rbx + 8]
cmp cl, 0x3d
ja 0x4084b9
mov rax, rdx
shr rax, cl
test al, 1
jne 0x40849d
mov qword [rsp + 0x30], 0
mov rax, qword [rsp + 0x60]
xor ebp, ebp
sub rax, 4
mov qword [rsp + 0x70], rax
cmp rbp, qword [rsp + 0x70]
jle 0x40851a
mov rax, rbp
sub rax, qword [rsp + 0x60]
mov ecx, 4
cqo
idiv rcx
mov rax, rdx
sar rax, 0x3f
xor rdx, rax
sub rdx, rax
cmp rdx, 2
jne 0x408d88
jmp 0x408d97
mov eax, 0x400009
shl rax, 0xa
shr rax, cl
test al, 1
je 0x408525
inc rbp
movzx ecx, byte [r14 + rbp + 8]
cmp cl, 0x20
jbe 0x408507
lea rax, [0x00432b40]
mov al, byte [rax + rcx]
mov byte [rsp + 0x38], al
inc al
jne 0x4085cc
mov ecx, 0x48
lea rsi, [0x00445280]
lea r15, [0x0043114c]
call fcn.00401dfb
lea r12, [rsp + 0x80]
mov qword [rax + 8], rsi
mov rcx, r12
lea r13, [rax + 8]
xor esi, esi
mov qword [rax + 0x18], r15
movzx edx, byte [r14 + rbp + 8]
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
call fcn.004039b3
mov rax, qword [rsp + 0x88]
cmp byte [0x00447db8], 0
mov rbx, qword [rsp + 0x80]
mov qword [rsp + 0x40], rax
je 0x4085fb
mov rcx, rsi
call fcn.00423ed7
mov rcx, qword [rsp + 0x40]
call fcn.00423ed7
cmp byte [0x00447db8], 0
jne 0x409803
movzx eax, byte [rbp + r14 + 9]
lea rdx, [0x00432b40]
lea rbx, [rbp + 1]
movzx eax, byte [rdx + rax]
mov byte [rsp + 0x40], al
mov qword [rsp + 0x50], rax
cmp rax, 0xff
jne 0x4087bf
jmp 0x40872e
mov rdx, rbp
mov rcx, r12
call fcn.004039b3
cmp byte [0x00447db8], 0
mov rdi, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x88]
jne 0x4085ad
lea rdx, [rbx + rdi + 0x38]
mov rcx, r12
call fcn.00402a42
lea r9, [rsp + 0xa0]
movups xmm0, xmmword [rsp + 0x80]
mov rdx, r12
movups xmm1, xmmword [0x00432b20]
mov rcx, r9
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0x80], xmm1
call fcn.004017c3
movsx edx, byte [r14 + rbp + 8]
mov rcx, r9
call fcn.0040159c
movups xmm2, xmmword [0x00432b10]
mov rdx, r12
movups xmmword [rsp + 0x80], xmm2
call fcn.004017c3
mov rax, qword [rsp + 0x40]
mov rdx, r12
mov rcx, r9
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], rax
call fcn.004017c3
movups xmm3, xmmword [0x00432b00]
mov rdx, r12
mov rcx, r9
movups xmmword [rsp + 0x80], xmm3
call fcn.004017c3
mov rdx, r12
mov rcx, r9
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x88], rsi
call fcn.004017c3
movups xmm4, xmmword [0x00432af0]
mov rdx, r12
mov rcx, r9
lea r9, str.base64.nim
movups xmmword [rsp + 0x80], xmm4
call fcn.004017c3
movups xmm5, xmmword [rsp + 0xa0]
mov rdx, r15
mov rcx, r13
mov qword [r13 + 8], 0
lea r8, str.decode
movups xmmword [r13 + 0x18], xmm5
mov qword [rsp + 0x20], 0xe9
call fcn.00403205
jmp 0x4085ad
mov ecx, 0x48
lea rdi, [0x00445280]
lea r15, [0x0043114c]
call fcn.00401dfb
lea r12, [rsp + 0x80]
mov qword [rax + 8], rdi
mov rcx, r12
lea r13, [rax + 8]
xor edi, edi
mov qword [rax + 0x18], r15
movzx edx, byte [r14 + rbx + 8]
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
call fcn.004039b3
mov rax, qword [rsp + 0x88]
cmp byte [0x00447db8], 0
mov rsi, qword [rsp + 0x80]
mov qword [rsp + 0x48], rax
je 0x4087ee
mov rcx, rdi
call fcn.00423ed7
mov rcx, qword [rsp + 0x48]
call fcn.00423ed7
cmp byte [0x00447db8], 0
jne 0x409803
movzx eax, byte [rbp + r14 + 0xa]
lea rdx, [0x00432b40]
lea rbx, [rbp + 2]
movzx eax, byte [rdx + rax]
mov byte [rsp + 0x48], al
mov qword [rsp + 0x58], rax
cmp rax, 0xff
jne 0x4089bc
jmp 0x40892b
mov rdx, rbx
mov rcx, r12
call fcn.004039b3
cmp byte [0x00447db8], 0
mov rax, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x88]
jne 0x4087a0
lea rdx, [rsi + rax + 0x38]
mov rcx, r12
mov qword [rsp + 0x58], rax
call fcn.00402a42
lea r9, [rsp + 0xa0]
movups xmm0, xmmword [rsp + 0x80]
mov rdx, r12
movups xmm1, xmmword [0x00432b20]
mov rcx, r9
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0x80], xmm1
call fcn.004017c3
movsx edx, byte [r14 + rbx + 8]
mov rcx, r9
call fcn.0040159c
movups xmm2, xmmword [0x00432b10]
mov rdx, r12
movups xmmword [rsp + 0x80], xmm2
call fcn.004017c3
mov rax, qword [rsp + 0x48]
mov rdx, r12
mov rcx, r9
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x88], rax
call fcn.004017c3
movups xmm3, xmmword [0x00432b00]
mov rdx, r12
mov rcx, r9
movups xmmword [rsp + 0x80], xmm3
call fcn.004017c3
mov rax, qword [rsp + 0x58]
mov rdx, r12
mov rcx, r9
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x80], rax
call fcn.004017c3
movups xmm4, xmmword [0x00432af0]
mov rdx, r12
mov rcx, r9
lea r9, str.base64.nim
movups xmmword [rsp + 0x80], xmm4
call fcn.004017c3
movups xmm5, xmmword [rsp + 0xa0]
mov rdx, r15
mov rcx, r13
mov qword [r13 + 8], 0
lea r8, str.decode
movups xmmword [r13 + 0x18], xmm5
mov qword [rsp + 0x20], 0xe9
call fcn.00403205
jmp 0x4087a0
mov ecx, 0x48
lea rsi, [0x00445280]
xor edi, edi
call fcn.00401dfb
lea r15, [0x0043114c]
lea r12, [rsp + 0x80]
mov qword [rax + 8], rsi
mov rcx, r12
lea r13, [rax + 8]
mov qword [rax + 0x18], r15
movzx edx, byte [r14 + rbx + 8]
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
call fcn.004039b3
mov rax, qword [rsp + 0x88]
cmp byte [0x00447db8], 0
mov rsi, qword [rsp + 0x80]
mov qword [rsp + 0x68], rax
je 0x4089e0
mov rcx, rdi
call fcn.00423ed7
mov rcx, qword [rsp + 0x68]
call fcn.00423ed7
cmp byte [0x00447db8], 0
jne 0x409803
movzx eax, byte [rbp + r14 + 0xb]
lea rdx, [0x00432b40]
lea rbx, [rbp + 3]
mov dil, byte [rdx + rax]
cmp dil, 0xff
jne 0x408bb3
jmp 0x408b1d
mov rdx, rbx
mov rcx, r12
call fcn.004039b3
cmp byte [0x00447db8], 0
mov rax, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x88]
jne 0x40899d
lea rdx, [rsi + rax + 0x38]
mov rcx, r12
mov qword [rsp + 0x78], rax
call fcn.00402a42
lea r9, [rsp + 0xa0]
movups xmm0, xmmword [rsp + 0x80]
mov rdx, r12
movups xmm1, xmmword [0x00432b20]
mov rcx, r9
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0x80], xmm1
call fcn.004017c3
movsx edx, byte [r14 + rbx + 8]
mov rcx, r9
call fcn.0040159c
movups xmm2, xmmword [0x00432b10]
mov rdx, r12
movups xmmword [rsp + 0x80], xmm2
call fcn.004017c3
mov rax, qword [rsp + 0x68]
mov rdx, r12
mov rcx, r9
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x88], rax
call fcn.004017c3
movups xmm3, xmmword [0x00432b00]
mov rdx, r12
mov rcx, r9
movups xmmword [rsp + 0x80], xmm3
call fcn.004017c3
mov rax, qword [rsp + 0x78]
mov rdx, r12
mov rcx, r9
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x80], rax
call fcn.004017c3
movups xmm4, xmmword [0x00432af0]
mov rdx, r12
mov rcx, r9
lea r9, str.base64.nim
movups xmmword [rsp + 0x80], xmm4
call fcn.004017c3
movups xmm5, xmmword [rsp + 0xa0]
mov rdx, r15
mov rcx, r13
mov qword [r13 + 8], 0
lea r8, str.decode
movups xmmword [r13 + 0x18], xmm5
mov qword [rsp + 0x20], 0xe9
call fcn.00403205
jmp 0x40899d
mov ecx, 0x48
lea rsi, [0x00445280]
lea r12, [rsp + 0x80]
xor r15d, r15d
call fcn.00401dfb
mov rcx, r12
mov qword [rax + 8], rsi
lea r13, [rax + 8]
lea rax, [0x0043114c]
mov qword [r13 + 0x10], rax
movzx edx, byte [r14 + rbx + 8]
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
call fcn.004039b3
mov rax, qword [rsp + 0x88]
cmp byte [0x00447db8], 0
mov rsi, qword [rsp + 0x80]
mov qword [rsp + 0x68], rax
je 0x408c43
mov rcx, r15
call fcn.00423ed7
mov rcx, qword [rsp + 0x68]
call fcn.00423ed7
cmp byte [0x00447db8], 0
jne 0x409803
lea r12, [rsp + 0x90]
add rbp, 4
mov rcx, r12
call fcn.00401e25
mov al, byte [rsp + 0x38]
mov rdx, qword [rsp + 0x50]
mov rcx, r12
mov rsi, qword [rsp + 0x30]
sar rdx, 4
shl eax, 2
or eax, edx
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rsi + 8], al
call fcn.00401e25
mov al, byte [rsp + 0x40]
mov rdx, qword [rsp + 0x58]
mov rcx, r12
mov rsi, qword [rsp + 0x30]
sar rdx, 2
shl eax, 4
or eax, edx
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rsi + 9], al
call fcn.00401e25
mov al, byte [rsp + 0x48]
mov rbx, qword [rsp + 0x30]
add qword [rsp + 0x30], 3
shl eax, 6
or edi, eax
mov rax, qword [rsp + 0x98]
mov byte [rax + rbx + 0xa], dil
jmp 0x4084d2
mov rdx, rbx
mov rcx, r12
call fcn.004039b3
cmp byte [0x00447db8], 0
mov rax, qword [rsp + 0x80]
mov r15, qword [rsp + 0x88]
jne 0x408b94
lea rdx, [rsi + rax + 0x38]
mov rcx, r12
mov qword [rsp + 0x78], rax
call fcn.00402a42
lea r9, [rsp + 0xa0]
movups xmm0, xmmword [rsp + 0x80]
mov rdx, r12
movups xmm1, xmmword [0x00432b20]
mov rcx, r9
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0x80], xmm1
call fcn.004017c3
movsx edx, byte [r14 + rbx + 8]
mov rcx, r9
call fcn.0040159c
movups xmm2, xmmword [0x00432b10]
mov rdx, r12
movups xmmword [rsp + 0x80], xmm2
call fcn.004017c3
mov rax, qword [rsp + 0x68]
mov rdx, r12
mov rcx, r9
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x88], rax
call fcn.004017c3
movups xmm3, xmmword [0x00432b00]
mov rdx, r12
mov rcx, r9
movups xmmword [rsp + 0x80], xmm3
call fcn.004017c3
mov rax, qword [rsp + 0x78]
mov rdx, r12
mov rcx, r9
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x80], rax
call fcn.004017c3
movups xmm4, xmmword [0x00432af0]
mov rdx, r12
mov rcx, r9
lea r9, str.base64.nim
movups xmmword [rsp + 0x80], xmm4
call fcn.004017c3
movups xmm5, xmmword [rsp + 0xa0]
mov qword [r13 + 8], 0
mov rcx, r13
lea r8, str.decode
lea rdx, [0x0043114c]
movups xmmword [r13 + 0x18], xmm5
mov qword [rsp + 0x20], 0xe9
call fcn.00403205
jmp 0x408b94
cmp rdx, 3
jne 0x4097f1
jmp 0x4091ac
movzx eax, byte [rbp + r14 + 8]
lea rsi, [0x00432b40]
mov bl, byte [rsi + rax]
cmp bl, 0xff
je 0x408dcc
movzx eax, byte [rbp + r14 + 9]
lea rdi, [rbp + 1]
movzx esi, byte [rsi + rax]
cmp rsi, 0xff
jne 0x409039
jmp 0x408fa7
mov ecx, 0x48
lea rdi, [0x00445280]
lea r12, [rsp + 0x80]
xor r15d, r15d
call fcn.00401dfb
mov rcx, r12
mov qword [rax + 8], rdi
lea r13, [rax + 8]
lea rax, [0x0043114c]
mov qword [r13 + 0x10], rax
movzx edx, byte [rbp + r14 + 8]
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
call fcn.004039b3
mov rax, qword [rsp + 0x88]
cmp byte [0x00447db8], 0
mov rdi, qword [rsp + 0x80]
mov qword [rsp + 0x38], rax
jne 0x408f83
mov rdx, rbp
mov rcx, r12
call fcn.004039b3
cmp byte [0x00447db8], 0
mov rax, qword [rsp + 0x80]
mov r15, qword [rsp + 0x88]
jne 0x408f83
lea rdx, [rdi + rax + 0x38]
mov rcx, r12
mov qword [rsp + 0x40], rax
call fcn.00402a42
lea r9, [rsp + 0xa0]
movups xmm0, xmmword [rsp + 0x80]
mov rdx, r12
movups xmm1, xmmword [0x00432b20]
mov rcx, r9
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0x80], xmm1
call fcn.004017c3
movsx edx, byte [rbp + r14 + 8]
mov rcx, r9
call fcn.0040159c
movups xmm2, xmmword [0x00432b10]
mov rdx, r12
movups xmmword [rsp + 0x80], xmm2
call fcn.004017c3
mov rax, qword [rsp + 0x38]
mov rcx, r9
mov rdx, r12
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x88], rax
call fcn.004017c3
movups xmm3, xmmword [0x00432b00]
mov rcx, r9
mov rdx, r12
movups xmmword [rsp + 0x80], xmm3
call fcn.004017c3
mov rax, qword [rsp + 0x40]
mov rcx, r9
mov rdx, r12
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x80], rax
call fcn.004017c3
movups xmm4, xmmword [0x00432af0]
mov rcx, r9
mov rdx, r12
lea r9, str.base64.nim
movups xmmword [rsp + 0x80], xmm4
call fcn.004017c3
movups xmm5, xmmword [rsp + 0xa0]
mov qword [r13 + 8], 0
mov rcx, r13
lea r8, str.decode
lea rdx, [0x0043114c]
movups xmmword [r13 + 0x18], xmm5
mov qword [rsp + 0x20], 0xe9
call fcn.00403205
mov rcx, r15
call fcn.00423ed7
mov rcx, qword [rsp + 0x38]
call fcn.00423ed7
cmp byte [0x00447db8], 0
je 0x408dac
jmp 0x409803
mov ecx, 0x48
lea r12, [rsp + 0x80]
xor r15d, r15d
call fcn.00401dfb
lea rcx, [0x00445280]
mov qword [rax + 8], rcx
lea r13, [rax + 8]
lea rax, [0x0043114c]
mov rcx, r12
mov qword [r13 + 0x10], rax
movzx edx, byte [rdi + r14 + 8]
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
call fcn.004039b3
mov rax, qword [rsp + 0x88]
cmp byte [0x00447db8], 0
mov rbp, qword [rsp + 0x80]
mov qword [rsp + 0x38], rax
je 0x40906b
mov rcx, r15
call fcn.00423ed7
mov rcx, qword [rsp + 0x38]
call fcn.00423ed7
cmp byte [0x00447db8], 0
jne 0x409803
lea rcx, [rsp + 0x90]
shl ebx, 2
sar rsi, 4
call fcn.00401e25
mov rdi, qword [rsp + 0x30]
or esi, ebx
inc qword [rsp + 0x30]
mov rax, qword [rsp + 0x98]
mov byte [rax + rdi + 8], sil
jmp 0x4097f1
mov rdx, rdi
mov rcx, r12
call fcn.004039b3
cmp byte [0x00447db8], 0
mov rax, qword [rsp + 0x80]
mov r15, qword [rsp + 0x88]
jne 0x40901a
lea rdx, [rbp + rax + 0x38]
mov rcx, r12
mov qword [rsp + 0x40], rax
call fcn.00402a42
lea r9, [rsp + 0xa0]
movups xmm0, xmmword [rsp + 0x80]
mov rdx, r12
movups xmm1, xmmword [0x00432b20]
mov rcx, r9
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0x80], xmm1
call fcn.004017c3
movsx edx, byte [rdi + r14 + 8]
mov rcx, r9
call fcn.0040159c
movups xmm2, xmmword [0x00432b10]
mov rdx, r12
movups xmmword [rsp + 0x80], xmm2
call fcn.004017c3
mov rax, qword [rsp + 0x38]
mov rdx, r12
mov rcx, r9
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x88], rax
call fcn.004017c3
movups xmm3, xmmword [0x00432b00]
mov rdx, r12
mov rcx, r9
movups xmmword [rsp + 0x80], xmm3
call fcn.004017c3
mov rax, qword [rsp + 0x40]
mov rdx, r12
mov rcx, r9
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x80], rax
call fcn.004017c3
movups xmm4, xmmword [0x00432af0]
mov rdx, r12
mov rcx, r9
lea r9, str.base64.nim
movups xmmword [rsp + 0x80], xmm4
call fcn.004017c3
movups xmm5, xmmword [rsp + 0xa0]
mov qword [r13 + 8], 0
mov rcx, r13
lea r8, str.decode
lea rdx, [0x0043114c]
movups xmmword [r13 + 0x18], xmm5
mov qword [rsp + 0x20], 0xe9
call fcn.00403205
jmp 0x40901a
movzx eax, byte [rbp + r14 + 8]
lea rsi, [0x00432b40]
mov al, byte [rsi + rax]
mov byte [rsp + 0x38], al
inc al
je 0x4091ec
movzx eax, byte [rbp + r14 + 9]
lea rbx, [rbp + 1]
movzx eax, byte [rsi + rax]
mov byte [rsp + 0x40], al
mov qword [rsp + 0x48], rax
cmp rax, 0xff
jne 0x409453
jmp 0x4093c2
mov ecx, 0x48
lea rdi, [0x00445280]
lea r15, [0x0043114c]
call fcn.00401dfb
lea r12, [rsp + 0x80]
mov qword [rax + 8], rdi
mov rcx, r12
lea r13, [rax + 8]
xor edi, edi
mov qword [rax + 0x18], r15
movzx edx, byte [rbp + r14 + 8]
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
call fcn.004039b3
mov rax, qword [rsp + 0x88]
cmp byte [0x00447db8], 0
mov rbx, qword [rsp + 0x80]
mov qword [rsp + 0x40], rax
jne 0x40939e
mov rdx, rbp
mov rcx, r12
call fcn.004039b3
cmp byte [0x00447db8], 0
mov rax, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x88]
jne 0x40939e
lea rdx, [rbx + rax + 0x38]
mov rcx, r12
mov qword [rsp + 0x48], rax
call fcn.00402a42
lea r9, [rsp + 0xa0]
movups xmm0, xmmword [rsp + 0x80]
mov rdx, r12
movups xmm1, xmmword [0x00432b20]
mov rcx, r9
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0x80], xmm1
call fcn.004017c3
movsx edx, byte [rbp + r14 + 8]
mov rcx, r9
call fcn.0040159c
movups xmm2, xmmword [0x00432b10]
mov rdx, r12
movups xmmword [rsp + 0x80], xmm2
call fcn.004017c3
mov rax, qword [rsp + 0x40]
mov rcx, r9
mov rdx, r12
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], rax
call fcn.004017c3
movups xmm3, xmmword [0x00432b00]
mov rcx, r9
mov rdx, r12
movups xmmword [rsp + 0x80], xmm3
call fcn.004017c3
mov rax, qword [rsp + 0x48]
mov rcx, r9
mov rdx, r12
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x80], rax
call fcn.004017c3
movups xmm4, xmmword [0x00432af0]
mov rcx, r9
mov rdx, r12
lea r9, str.base64.nim
movups xmmword [rsp + 0x80], xmm4
call fcn.004017c3
movups xmm5, xmmword [rsp + 0xa0]
mov rdx, r15
mov rcx, r13
mov qword [r13 + 8], 0
lea r8, str.decode
movups xmmword [r13 + 0x18], xmm5
mov qword [rsp + 0x20], 0xe9
call fcn.00403205
mov rcx, rdi
call fcn.00423ed7
mov rcx, qword [rsp + 0x40]
call fcn.00423ed7
cmp byte [0x00447db8], 0
je 0x4091c4
jmp 0x409803
mov ecx, 0x48
lea rdi, [0x00445280]
lea r15, [0x0043114c]
call fcn.00401dfb
lea r12, [rsp + 0x80]
mov qword [rax + 8], rdi
mov rcx, r12
lea r13, [rax + 8]
xor edi, edi
mov qword [rax + 0x18], r15
movzx edx, byte [rbx + r14 + 8]
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
call fcn.004039b3
mov rax, qword [rsp + 0x88]
cmp byte [0x00447db8], 0
mov rsi, qword [rsp + 0x80]
mov qword [rsp + 0x50], rax
je 0x40947a
mov rcx, rdi
call fcn.00423ed7
mov rcx, qword [rsp + 0x50]
call fcn.00423ed7
cmp byte [0x00447db8], 0
jne 0x409803
movzx eax, byte [rbp + r14 + 0xa]
lea rdx, [0x00432b40]
lea rsi, [rbp + 2]
movzx ebx, byte [rdx + rax]
cmp rbx, 0xff
jne 0x40964c
jmp 0x4095b7
mov rdx, rbx
mov rcx, r12
call fcn.004039b3
cmp byte [0x00447db8], 0
mov rax, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x88]
jne 0x409434
lea rdx, [rsi + rax + 0x38]
mov rcx, r12
mov qword [rsp + 0x58], rax
call fcn.00402a42
lea r9, [rsp + 0xa0]
movups xmm0, xmmword [rsp + 0x80]
mov rdx, r12
movups xmm1, xmmword [0x00432b20]
mov rcx, r9
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0x80], xmm1
call fcn.004017c3
movsx edx, byte [rbx + r14 + 8]
mov rcx, r9
call fcn.0040159c
movups xmm2, xmmword [0x00432b10]
mov rdx, r12
movups xmmword [rsp + 0x80], xmm2
call fcn.004017c3
mov rax, qword [rsp + 0x50]
mov rdx, r12
mov rcx, r9
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x88], rax
call fcn.004017c3
movups xmm3, xmmword [0x00432b00]
mov rdx, r12
mov rcx, r9
movups xmmword [rsp + 0x80], xmm3
call fcn.004017c3
mov rax, qword [rsp + 0x58]
mov rdx, r12
mov rcx, r9
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x80], rax
call fcn.004017c3
movups xmm4, xmmword [0x00432af0]
mov rdx, r12
mov rcx, r9
lea r9, str.base64.nim
movups xmmword [rsp + 0x80], xmm4
call fcn.004017c3
movups xmm5, xmmword [rsp + 0xa0]
mov rdx, r15
mov rcx, r13
mov qword [r13 + 8], 0
lea r8, str.decode
movups xmmword [r13 + 0x18], xmm5
mov qword [rsp + 0x20], 0xe9
call fcn.00403205
jmp 0x409434
mov ecx, 0x48
lea rdi, [0x00445280]
xor ebp, ebp
call fcn.00401dfb
lea r15, [0x0043114c]
lea r12, [rsp + 0x80]
mov qword [rax + 8], rdi
mov rcx, r12
lea r13, [rax + 8]
mov qword [rax + 0x18], r15
movzx edx, byte [rsi + r14 + 8]
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
call fcn.004039b3
mov rax, qword [rsp + 0x88]
cmp byte [0x00447db8], 0
mov rdi, qword [rsp + 0x80]
mov qword [rsp + 0x50], rax
je 0x4096b0
mov rcx, rbp
call fcn.00423ed7
mov rcx, qword [rsp + 0x50]
call fcn.00423ed7
cmp byte [0x00447db8], 0
jne 0x409803
lea r12, [rsp + 0x90]
sar rbx, 2
mov rcx, r12
call fcn.00401e25
mov al, byte [rsp + 0x38]
mov rdx, qword [rsp + 0x48]
mov rcx, r12
mov rsi, qword [rsp + 0x30]
sar rdx, 4
shl eax, 2
or eax, edx
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rsi + 8], al
call fcn.00401e25
mov al, byte [rsp + 0x40]
mov rdi, qword [rsp + 0x30]
add qword [rsp + 0x30], 2
shl eax, 4
or ebx, eax
mov rax, qword [rsp + 0x98]
mov byte [rax + rdi + 9], bl
jmp 0x4097f1
mov rdx, rsi
mov rcx, r12
call fcn.004039b3
cmp byte [0x00447db8], 0
mov rax, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x88]
jne 0x40962d
lea rdx, [rdi + rax + 0x38]
mov rcx, r12
mov qword [rsp + 0x58], rax
call fcn.00402a42
lea r9, [rsp + 0xa0]
movups xmm0, xmmword [rsp + 0x80]
mov rdx, r12
movups xmm1, xmmword [0x00432b20]
mov rcx, r9
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0x80], xmm1
call fcn.004017c3
movsx edx, byte [rsi + r14 + 8]
mov rcx, r9
call fcn.0040159c
movups xmm2, xmmword [0x00432b10]
mov rdx, r12
movups xmmword [rsp + 0x80], xmm2
call fcn.004017c3
mov rax, qword [rsp + 0x50]
mov rdx, r12
mov rcx, r9
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x88], rax
call fcn.004017c3
movups xmm3, xmmword [0x00432b00]
mov rdx, r12
mov rcx, r9
movups xmmword [rsp + 0x80], xmm3
call fcn.004017c3
mov rax, qword [rsp + 0x58]
mov rdx, r12
mov rcx, r9
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x80], rax
call fcn.004017c3
movups xmm4, xmmword [0x00432af0]
mov rdx, r12
mov rcx, r9
lea r9, str.base64.nim
movups xmmword [rsp + 0x80], xmm4
call fcn.004017c3
movups xmm5, xmmword [rsp + 0xa0]
mov rdx, r15
mov rcx, r13
mov qword [r13 + 8], 0
lea r8, str.decode
movups xmmword [r13 + 0x18], xmm5
mov qword [rsp + 0x20], 0xe9
call fcn.00403205
jmp 0x40962d
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x90]
call fcn.00403863
mov rax, qword [rsp + 0x100]
movups xmm0, xmmword [rsp + 0x90]
movups xmmword [rax], xmm0
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret