Function at 0x406c83
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2d8
movaps xmmword [rsp + 0x230], xmm6
movaps xmmword [rsp + 0x240], xmm7
movaps xmmword [rsp + 0x250], xmm8
movaps xmmword [rsp + 0x260], xmm9
movaps xmmword [rsp + 0x270], xmm10
movaps xmmword [rsp + 0x280], xmm11
movaps xmmword [rsp + 0x290], xmm12
movaps xmmword [rsp + 0x2a0], xmm13
movaps xmmword [rsp + 0x2b0], xmm14
movaps xmmword [rsp + 0x2c0], xmm15
mov rax, qword [rdx]
mov qword [rsp + 0x40], rax
mov rax, qword [rdx + 8]
mov qword [rsp + 0x320], rcx
lea rcx, [rsp + 0x198]
mov qword [rsp + 0x1e8], rsp
mov qword [rsp + 0x48], rax
lea rax, [0x00421ce0]
mov qword [rsp + 0x1c8], rax
lea rax, [0x0042c894]
mov qword [rsp + 0x1d0], rax
lea rax, [rsp + 0x230]
mov qword [rsp + 0x1d8], rax
lea rax, [0x00409a9f]
mov qword [rsp + 0x1e0], rax
call fcn.004158b0
mov rax, qword [rsp + 0x320]
cmp qword [rsp + 0x40], 0
mov qword [rax], 0
mov qword [rax + 8], 0
je 0x40a1f1
mov dword [rsp + 0x1a0], 0xffffffff
mov rcx, qword [rsp + 0x40]
call fcn.00406c5b
test rax, rax
mov qword [rsp + 0x38], rax
jns 0x406daf
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rax
call fcn.00404299
mov dword [rsp + 0x1a0], 0xffffffff
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x320]
call fcn.0040490e
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0xf8], rax
dec rax
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x50], 0
sub rax, 1
mov qword [rsp + 0x38], rax
jno 0x406e16
mov qword [rsp + 0x50], 1
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
cmp qword [rsp + 0x38], 0
js 0x406e2a
mov rbx, qword [rsp + 0x40]
cmp qword [rsp + 0x38], rbx
jl 0x406e44
mov dword [rsp + 0x1a0], 0xffffffff
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x38]
call fcn.0040539d
mov rax, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x38]
mov al, byte [rax + rsi + 8]
cmp al, 0x3d
ja 0x406e66
movabs rdi, 0x2000000100002400
bt rdi, rax
jb 0x406ea3
mov rax, qword [rsp + 0xf8]
sub rax, 4
mov qword [rsp + 0x190], rax
jno 0x406e8c
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x38], 0
jmp 0x4072fc
cmp qword [rsp + 0x50], 0
jne 0x406ebd
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0xf8], rax
jmp 0x406de1
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
jmp 0x406eab
mov edi, 0x400009
shl rdi, 0xa
bt rdi, rax
jae 0x406f46
mov rax, rsi
add rax, 1
mov qword [rsp + 0x38], rax
jno 0x406efc
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
shr rax, 0x3f
cmp qword [rsp + 0x38], rbx
setge dl
or dl, al
mov byte [rsp + 0x60], dl
je 0x406f34
mov dword [rsp + 0x1a0], 0xffffffff
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x38]
call fcn.0040539d
mov rax, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x38]
mov al, byte [rax + rsi + 8]
cmp al, 0x20
jbe 0x406ecf
cmp byte [rsp + 0x60], 0
je 0x406f6b
mov dword [rsp + 0x1a0], 0xffffffff
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
lea rdx, [rax - 1]
call fcn.0040539d
mov rax, qword [rsp + 0x38]
lea rdx, [0x004233c0]
mov rbx, qword [rsp + 0x48]
movzx eax, byte [rax + rbx + 8]
mov al, byte [rdx + rax]
mov byte [rsp + 0x121], al
inc al
je 0x40734a
mov rax, qword [rsp + 0x38]
add rax, 1
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x160], rax
jno 0x406fbb
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
mov rdi, qword [rsp + 0x40]
mov rax, qword [rsp + 0x50]
cmp qword [rsp + 0x50], rdi
setge dl
shr rax, 0x3f
or dl, al
mov byte [rsp + 0x108], dl
je 0x406ff5
mov rcx, qword [rsp + 0x50]
lea rdx, [rdi - 1]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040539d
mov rax, qword [rsp + 0x50]
lea rdx, [0x004233c0]
mov rbx, qword [rsp + 0x48]
movzx eax, byte [rax + rbx + 8]
movzx eax, byte [rdx + rax]
cmp rax, 0xff
mov byte [rsp + 0x122], al
mov qword [rsp + 0x100], rax
je 0x4076fe
mov rax, qword [rsp + 0x160]
add rax, 1
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x168], rax
jno 0x407055
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x40]
shr rax, 0x3f
cmp qword [rsp + 0x50], rbx
setge dl
or dl, al
mov byte [rsp + 0x108], dl
je 0x40708f
mov rcx, qword [rsp + 0x50]
lea rdx, [rbx - 1]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040539d
mov rax, qword [rsp + 0x50]
lea rdx, [0x004233c0]
mov rsi, qword [rsp + 0x48]
movzx eax, byte [rax + rsi + 8]
movzx eax, byte [rdx + rax]
cmp rax, 0xff
mov byte [rsp + 0x123], al
mov qword [rsp + 0x110], rax
je 0x407ad6
mov rax, qword [rsp + 0x168]
add rax, 1
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x170], rax
jno 0x4070ef
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
mov rax, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x40]
shr rax, 0x3f
cmp qword [rsp + 0x50], rsi
setge dl
or dl, al
mov byte [rsp + 0x108], dl
je 0x407129
mov rcx, qword [rsp + 0x50]
lea rdx, [rsi - 1]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040539d
mov rax, qword [rsp + 0x50]
lea rdx, [0x004233c0]
mov rdi, qword [rsp + 0x48]
movzx eax, byte [rax + rdi + 8]
mov al, byte [rdx + rax]
mov byte [rsp + 0x124], al
inc al
je 0x407ea5
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x38], rax
jno 0x407174
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
mov rax, qword [rsp + 0x320]
cmp qword [rsp + 0x58], 0
mov rdx, qword [rax]
js 0x408274
cmp qword [rsp + 0x58], rdx
jge 0x408274
mov rcx, qword [rsp + 0x320]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00406c3e
mov rax, qword [rsp + 0x320]
mov rcx, qword [rsp + 0x100]
mov rsi, qword [rsp + 0x58]
mov rdx, qword [rax + 8]
mov al, byte [rsp + 0x121]
sar rcx, 4
shl eax, 2
or eax, ecx
mov byte [rdx + rsi + 8], al
mov rax, rsi
add rax, 1
mov qword [rsp + 0x50], rax
jno 0x4071f9
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
mov rax, qword [rsp + 0x320]
cmp qword [rsp + 0x50], 0
mov rdx, qword [rax]
js 0x408291
cmp rdx, qword [rsp + 0x50]
jle 0x408291
mov rcx, qword [rsp + 0x320]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00406c3e
mov rax, qword [rsp + 0x320]
mov rcx, qword [rsp + 0x110]
mov rdi, qword [rsp + 0x50]
mov rdx, qword [rax + 8]
mov al, byte [rsp + 0x122]
sar rcx, 2
shl eax, 4
or eax, ecx
mov byte [rdx + rdi + 8], al
mov rax, rdi
add rax, 1
mov qword [rsp + 0x50], rax
jno 0x40727e
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
mov rax, qword [rsp + 0x320]
cmp qword [rsp + 0x50], 0
mov rdx, qword [rax]
js 0x4082ae
cmp qword [rsp + 0x50], rdx
jge 0x4082ae
mov rcx, qword [rsp + 0x320]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00406c3e
mov rax, qword [rsp + 0x320]
mov rsi, qword [rsp + 0x50]
mov rdx, qword [rax + 8]
mov al, byte [rsp + 0x123]
shl eax, 6
or eax, dword [rsp + 0x124]
mov byte [rdx + rsi + 8], al
mov rax, rsi
add rax, 1
mov qword [rsp + 0x58], rax
jno 0x4072fc
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
mov rbx, qword [rsp + 0x38]
cmp qword [rsp + 0x190], rbx
jl 0x40731d
mov rax, qword [rsp + 0x40]
dec rax
mov qword [rsp + 0x50], rax
jmp 0x406efc
mov rax, qword [rsp + 0x38]
sub rax, qword [rsp + 0xf8]
mov qword [rsp + 0x50], rax
jno 0x4082cb
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
jmp 0x4082cb
lea rcx, [rsp + 0x210]
call fcn.00421160
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x1c
call fcn.00403c1c
mov qword [rsp + 0x50], rax
cmp byte [rsp + 0x60], 0
lea rdi, str.ValueError
mov rsi, qword [rsp + 0x50]
mov rax, qword [0x00428450]
mov qword [rsi + 0x10], rdi
mov qword [rsi], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x4073ee
mov dword [rsp + 0x1a0], 0x1d
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
dec rax
mov rdx, rax
mov qword [rsp + 0x60], rax
call fcn.0040539d
mov dword [rsp + 0x1a0], 0x1e
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
call fcn.0040539d
lea rax, [rsp + 0x200]
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x60]
movzx edx, byte [rax + rbx + 8]
mov dword [rsp + 0x1a0], 0x1f
call fcn.00402ba0
mov dword [rsp + 0x1a0], 0x20
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x200]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x138], rax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x140], rax
mov qword [rsp + 0xb8], rax
call fcn.00402ba0
mov rax, qword [rsp + 0x200]
mov dword [rsp + 0x1a0], 1
mov qword [rsp + 0x148], rax
mov rax, qword [rsp + 0x208]
mov rsi, qword [rsp + 0x148]
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x200]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x60]
lea rdx, [rax + rsi + 0x38]
call fcn.00404224
mov rdx, qword [rsp + 0x60]
lea rax, [rsp + 0x220]
movups xmm0, xmmword [rsp + 0x200]
mov rcx, rax
mov qword [rsp + 0x108], rax
movaps xmm1, xmmword [0x00425410]
movaps xmmword [rsp + 0x220], xmm0
movaps xmmword [rsp + 0x200], xmm1
call fcn.00406bc5
mov rax, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x108]
movzx edx, byte [rax + rdi + 8]
call fcn.00406b90
lea rax, [rsp + 0x200]
movaps xmm2, xmmword [0x004253f0]
mov qword [rsp + 0x60], rax
mov rdx, qword [rsp + 0x60]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm2
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
lea rax, [rsp + 0x200]
movaps xmm3, xmmword [0x004253c0]
mov qword [rsp + 0x60], rax
mov rdx, qword [rsp + 0x60]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm3
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x148]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
movaps xmm4, xmmword [0x004253a0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm4
call fcn.00406bc5
mov rax, qword [rsp + 0x50]
lea r9, str.base64.nim
movaps xmm5, xmmword [rsp + 0x220]
lea r8, str.decode
lea rdx, str.ValueError
movups xmmword [rax + 0x18], xmm5
mov rcx, rax
mov qword [rax + 8], 0
mov qword [rsp + 0x20], 0xe6
call fcn.00405068
cmp qword [rsp + 0x68], 0
jne 0x407663
cmp qword [rsp + 0xb8], 0
jne 0x40768b
jmp 0x4076b4
mov rbx, qword [rsp + 0x68]
mov eax, 1
shl rax, 0x3e
test qword [rbx], rax
jne 0x407656
mov dword [rsp + 0x1a0], 2
mov rcx, rbx
call fcn.00403a50
jmp 0x407656
mov rsi, qword [rsp + 0xb8]
mov eax, 1
shl rax, 0x3e
test qword [rsi], rax
jne 0x4076b4
mov dword [rsp + 0x1a0], 2
mov rcx, rsi
call fcn.00403a50
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x4076f1
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.00421140
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 3
call fcn.00421400
mov rcx, rdx
call fcn.00421170
jmp 0x406f93
lea rcx, [rsp + 0x210]
call fcn.00421160
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x21
call fcn.00403c1c
mov qword [rsp + 0x60], rax
cmp byte [rsp + 0x108], 0
lea rdi, str.ValueError
mov rsi, qword [rsp + 0x60]
mov rax, qword [0x00428450]
mov qword [rsi + 0x10], rdi
mov qword [rsi], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x4077ab
mov dword [rsp + 0x1a0], 0x22
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
dec rax
mov rdx, rax
mov qword [rsp + 0x108], rax
call fcn.0040539d
mov dword [rsp + 0x1a0], 0x23
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x108]
call fcn.0040539d
lea rax, [rsp + 0x200]
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x108]
movzx edx, byte [rax + rbx + 8]
mov dword [rsp + 0x1a0], 0x24
call fcn.00402ba0
mov dword [rsp + 0x1a0], 0x25
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x200]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x148], rax
mov qword [rsp + 0xd8], rax
call fcn.00402ba0
mov rax, qword [rsp + 0x200]
mov dword [rsp + 0x1a0], 4
mov qword [rsp + 0x150], rax
mov rax, qword [rsp + 0x208]
mov rsi, qword [rsp + 0x150]
mov qword [rsp + 0x158], rax
mov qword [rsp + 0x90], rax
lea rax, [rsp + 0x200]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x108]
lea rdx, [rax + rsi + 0x38]
call fcn.00404224
mov rdx, qword [rsp + 0x108]
lea rax, [rsp + 0x220]
movups xmm6, xmmword [rsp + 0x200]
mov rcx, rax
mov qword [rsp + 0x138], rax
movaps xmm7, xmmword [0x00425410]
movaps xmmword [rsp + 0x220], xmm6
movaps xmmword [rsp + 0x200], xmm7
call fcn.00406bc5
mov rax, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x138]
movzx edx, byte [rax + rdi + 8]
call fcn.00406b90
lea rax, [rsp + 0x200]
movaps xmm0, xmmword [0x004253f0]
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x50]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm0
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
lea rax, [rsp + 0x200]
movaps xmm1, xmmword [0x004253c0]
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x50]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm1
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x150]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
movaps xmm2, xmmword [0x004253a0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm2
call fcn.00406bc5
mov rax, qword [rsp + 0x60]
lea r9, str.base64.nim
movaps xmm3, xmmword [rsp + 0x220]
lea r8, str.decode
lea rdx, str.ValueError
movups xmmword [rax + 0x18], xmm3
mov rcx, rax
mov qword [rax + 8], 0
mov qword [rsp + 0x20], 0xe6
call fcn.00405068
cmp qword [rsp + 0x90], 0
jne 0x407a38
cmp qword [rsp + 0xd8], 0
jne 0x407a63
jmp 0x407a8c
mov rbx, qword [rsp + 0x90]
mov eax, 1
shl rax, 0x3e
test qword [rbx], rax
jne 0x407a2b
mov dword [rsp + 0x1a0], 5
mov rcx, rbx
call fcn.00403a50
jmp 0x407a2b
mov rsi, qword [rsp + 0xd8]
mov eax, 1
shl rax, 0x3e
test qword [rsi], rax
jne 0x407a8c
mov dword [rsp + 0x1a0], 5
mov rcx, rsi
call fcn.00403a50
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x407ac9
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.00421140
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 6
call fcn.00421400
mov rcx, rdx
call fcn.00421170
jmp 0x40702a
lea rcx, [rsp + 0x210]
call fcn.00421160
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x26
call fcn.00403c1c
mov qword [rsp + 0x60], rax
cmp byte [rsp + 0x108], 0
lea rbx, str.ValueError
mov rdi, qword [rsp + 0x60]
mov rax, qword [0x00428450]
mov qword [rdi + 0x10], rbx
mov qword [rdi], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x407b83
mov dword [rsp + 0x1a0], 0x27
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
dec rax
mov rdx, rax
mov qword [rsp + 0x108], rax
call fcn.0040539d
mov dword [rsp + 0x1a0], 0x28
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x108]
call fcn.0040539d
lea rax, [rsp + 0x200]
mov rsi, qword [rsp + 0x50]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x108]
movzx edx, byte [rax + rsi + 8]
mov dword [rsp + 0x1a0], 0x29
call fcn.00402ba0
mov dword [rsp + 0x1a0], 0x2a
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x200]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x148], rax
mov qword [rsp + 0xc0], rax
call fcn.00402ba0
mov rax, qword [rsp + 0x200]
mov dword [rsp + 0x1a0], 7
mov qword [rsp + 0x150], rax
mov rax, qword [rsp + 0x208]
mov rdi, qword [rsp + 0x150]
mov qword [rsp + 0x158], rax
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x200]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x108]
lea rdx, [rax + rdi + 0x38]
call fcn.00404224
mov rdx, qword [rsp + 0x108]
lea rax, [rsp + 0x220]
movups xmm4, xmmword [rsp + 0x200]
mov rcx, rax
mov qword [rsp + 0x138], rax
movaps xmm5, xmmword [0x00425410]
movaps xmmword [rsp + 0x220], xmm4
movaps xmmword [rsp + 0x200], xmm5
call fcn.00406bc5
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x138]
movzx edx, byte [rax + rbx + 8]
call fcn.00406b90
lea rax, [rsp + 0x200]
movaps xmm6, xmmword [0x004253f0]
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x50]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm6
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
lea rax, [rsp + 0x200]
movaps xmm7, xmmword [0x004253c0]
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x50]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm7
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x150]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
movaps xmm0, xmmword [0x004253a0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm0
call fcn.00406bc5
mov rax, qword [rsp + 0x60]
lea r9, str.base64.nim
movaps xmm1, xmmword [rsp + 0x220]
lea r8, str.decode
lea rdx, str.ValueError
movups xmmword [rax + 0x18], xmm1
mov rcx, rax
mov qword [rax + 8], 0
mov qword [rsp + 0x20], 0xe6
call fcn.00405068
cmp qword [rsp + 0x70], 0
jne 0x407e0a
cmp qword [rsp + 0xc0], 0
jne 0x407e32
jmp 0x407e5b
mov rsi, qword [rsp + 0x70]
mov eax, 1
shl rax, 0x3e
test qword [rsi], rax
jne 0x407dfd
mov dword [rsp + 0x1a0], 8
mov rcx, rsi
call fcn.00403a50
jmp 0x407dfd
mov rdi, qword [rsp + 0xc0]
mov eax, 1
shl rax, 0x3e
test qword [rdi], rax
jne 0x407e5b
mov dword [rsp + 0x1a0], 8
mov rcx, rdi
call fcn.00403a50
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x407e98
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.00421140
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 9
call fcn.00421400
mov rcx, rdx
call fcn.00421170
jmp 0x4070c4
lea rcx, [rsp + 0x210]
call fcn.00421160
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x2b
call fcn.00403c1c
mov qword [rsp + 0x60], rax
cmp byte [rsp + 0x108], 0
lea rsi, str.ValueError
mov rbx, qword [rsp + 0x60]
mov rax, qword [0x00428450]
mov qword [rbx + 0x10], rsi
mov qword [rbx], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x407f52
mov dword [rsp + 0x1a0], 0x2c
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
dec rax
mov rdx, rax
mov qword [rsp + 0x108], rax
call fcn.0040539d
mov dword [rsp + 0x1a0], 0x2d
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x108]
call fcn.0040539d
lea rax, [rsp + 0x200]
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x108]
movzx edx, byte [rax + rdi + 8]
mov dword [rsp + 0x1a0], 0x2e
call fcn.00402ba0
mov dword [rsp + 0x1a0], 0x2f
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x200]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x148], rax
mov qword [rsp + 0xd0], rax
call fcn.00402ba0
mov rax, qword [rsp + 0x200]
mov dword [rsp + 0x1a0], 0xa
mov qword [rsp + 0x150], rax
mov rax, qword [rsp + 0x208]
mov rbx, qword [rsp + 0x150]
mov qword [rsp + 0x158], rax
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x200]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x108]
lea rdx, [rax + rbx + 0x38]
call fcn.00404224
mov rdx, qword [rsp + 0x108]
lea rax, [rsp + 0x220]
movups xmm2, xmmword [rsp + 0x200]
mov rcx, rax
mov qword [rsp + 0x138], rax
movaps xmm3, xmmword [0x00425410]
movaps xmmword [rsp + 0x220], xmm2
movaps xmmword [rsp + 0x200], xmm3
call fcn.00406bc5
mov rax, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x138]
movzx edx, byte [rax + rsi + 8]
call fcn.00406b90
lea rax, [rsp + 0x200]
movaps xmm4, xmmword [0x004253f0]
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x50]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm4
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
lea rax, [rsp + 0x200]
movaps xmm5, xmmword [0x004253c0]
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x50]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm5
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x150]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
movaps xmm6, xmmword [0x004253a0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm6
call fcn.00406bc5
mov rax, qword [rsp + 0x60]
lea r9, str.base64.nim
movaps xmm7, xmmword [rsp + 0x220]
lea r8, str.decode
lea rdx, str.ValueError
movups xmmword [rax + 0x18], xmm7
mov rcx, rax
mov qword [rax + 8], 0
mov qword [rsp + 0x20], 0xe6
call fcn.00405068
cmp qword [rsp + 0x78], 0
jne 0x4081d9
cmp qword [rsp + 0xd0], 0
jne 0x408201
jmp 0x40822a
mov rdi, qword [rsp + 0x78]
mov eax, 1
shl rax, 0x3e
test qword [rdi], rax
jne 0x4081cc
mov dword [rsp + 0x1a0], 0xb
mov rcx, rdi
call fcn.00403a50
jmp 0x4081cc
mov rbx, qword [rsp + 0xd0]
mov eax, 1
shl rax, 0x3e
test qword [rbx], rax
jne 0x40822a
mov dword [rsp + 0x1a0], 0xb
mov rcx, rbx
call fcn.00403a50
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x408267
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.00421140
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 0xc
call fcn.00421400
mov rcx, rdx
call fcn.00421170
jmp 0x407151
mov rcx, qword [rsp + 0x58]
dec rdx
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040539d
jmp 0x407196
mov rcx, qword [rsp + 0x50]
dec rdx
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040539d
jmp 0x40721b
mov rcx, qword [rsp + 0x50]
dec rdx
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040539d
jmp 0x4072a0
mov rax, qword [rsp + 0x50]
mov ecx, 4
cqo
idiv rcx
mov rax, rdx
sar rax, 0x3f
xor rdx, rax
sub rdx, rax
cmp rdx, 2
je 0x4082fc
cmp rdx, 3
jne 0x409a54
jmp 0x408c1c
mov rdi, qword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
cmp qword [rsp + 0x38], rdi
setge dl
shr rax, 0x3f
or dl, al
mov byte [rsp + 0x60], dl
jne 0x408344
mov rax, qword [rsp + 0x38]
lea rdx, [0x004233c0]
mov rbx, qword [rsp + 0x48]
movzx eax, byte [rax + rbx + 8]
mov al, byte [rdx + rax]
mov byte [rsp + 0x125], al
inc al
jne 0x40871c
jmp 0x408364
mov dword [rsp + 0x1a0], 0xffffffff
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
lea rdx, [rax - 1]
call fcn.0040539d
jmp 0x40831a
lea rcx, [rsp + 0x210]
call fcn.00421160
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x30
call fcn.00403c1c
mov qword [rsp + 0x50], rax
cmp byte [rsp + 0x60], 0
lea rdi, str.ValueError
mov rsi, qword [rsp + 0x50]
mov rax, qword [0x00428450]
mov qword [rsi + 0x10], rdi
mov qword [rsi], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x408408
mov dword [rsp + 0x1a0], 0x31
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
dec rax
mov rdx, rax
mov qword [rsp + 0x60], rax
call fcn.0040539d
mov dword [rsp + 0x1a0], 0x32
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
call fcn.0040539d
lea rax, [rsp + 0x200]
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x60]
movzx edx, byte [rax + rbx + 8]
mov dword [rsp + 0x1a0], 0x33
call fcn.00402ba0
mov dword [rsp + 0x1a0], 0x34
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x200]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x138], rax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x140], rax
mov qword [rsp + 0xb0], rax
call fcn.00402ba0
mov rax, qword [rsp + 0x200]
mov dword [rsp + 0x1a0], 0xd
mov qword [rsp + 0x148], rax
mov rax, qword [rsp + 0x208]
mov rsi, qword [rsp + 0x148]
mov qword [rsp + 0x150], rax
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0x200]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x60]
lea rdx, [rax + rsi + 0x38]
call fcn.00404224
mov rdx, qword [rsp + 0x60]
lea rax, [rsp + 0x220]
movups xmm0, xmmword [rsp + 0x200]
mov rcx, rax
mov qword [rsp + 0x108], rax
movaps xmm1, xmmword [0x00425410]
movaps xmmword [rsp + 0x220], xmm0
movaps xmmword [rsp + 0x200], xmm1
call fcn.00406bc5
mov rax, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x108]
movzx edx, byte [rax + rdi + 8]
call fcn.00406b90
lea rax, [rsp + 0x200]
movaps xmm2, xmmword [0x004253f0]
mov qword [rsp + 0x60], rax
mov rdx, qword [rsp + 0x60]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm2
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
lea rax, [rsp + 0x200]
movaps xmm3, xmmword [0x004253c0]
mov qword [rsp + 0x60], rax
mov rdx, qword [rsp + 0x60]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm3
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x148]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
movaps xmm4, xmmword [0x004253a0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm4
call fcn.00406bc5
mov rax, qword [rsp + 0x50]
lea r9, str.base64.nim
movaps xmm5, xmmword [rsp + 0x220]
lea r8, str.decode
lea rdx, str.ValueError
movups xmmword [rax + 0x18], xmm5
mov rcx, rax
mov qword [rax + 8], 0
mov qword [rsp + 0x20], 0xe6
call fcn.00405068
cmp qword [rsp + 0xa0], 0
jne 0x408683
cmp qword [rsp + 0xb0], 0
jne 0x4086ae
jmp 0x4086d7
mov rbx, qword [rsp + 0xa0]
mov eax, 1
shl rax, 0x3e
test qword [rbx], rax
jne 0x408676
mov dword [rsp + 0x1a0], 0xe
mov rcx, rbx
call fcn.00403a50
jmp 0x408676
mov rsi, qword [rsp + 0xb0]
mov eax, 1
shl rax, 0x3e
test qword [rsi], rax
jne 0x4086d7
mov dword [rsp + 0x1a0], 0xe
mov rcx, rsi
call fcn.00403a50
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x408714
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.00421140
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 0xf
call fcn.00421400
mov rcx, rdx
call fcn.00421170
mov rax, qword [rsp + 0x38]
add rax, 1
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x178], rax
jno 0x408744
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
mov rdi, qword [rsp + 0x40]
mov rax, qword [rsp + 0x50]
cmp qword [rsp + 0x50], rdi
setge dl
shr rax, 0x3f
or dl, al
mov byte [rsp + 0x108], dl
je 0x40877e
mov rcx, qword [rsp + 0x50]
lea rdx, [rdi - 1]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040539d
mov rax, qword [rsp + 0x50]
lea rdx, [0x004233c0]
mov rbx, qword [rsp + 0x48]
movzx eax, byte [rax + rbx + 8]
movzx eax, byte [rdx + rax]
cmp rax, 0xff
mov qword [rsp + 0x118], rax
jne 0x408b7f
lea rcx, [rsp + 0x210]
call fcn.00421160
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x35
call fcn.00403c1c
mov qword [rsp + 0x60], rax
cmp byte [rsp + 0x108], 0
lea rdi, str.ValueError
mov rsi, qword [rsp + 0x60]
mov rax, qword [0x00428450]
mov qword [rsi + 0x10], rdi
mov qword [rsi], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x408859
mov dword [rsp + 0x1a0], 0x36
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
dec rax
mov rdx, rax
mov qword [rsp + 0x108], rax
call fcn.0040539d
mov dword [rsp + 0x1a0], 0x37
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x108]
call fcn.0040539d
lea rax, [rsp + 0x200]
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x108]
movzx edx, byte [rax + rbx + 8]
mov dword [rsp + 0x1a0], 0x38
call fcn.00402ba0
mov dword [rsp + 0x1a0], 0x39
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x200]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x148], rax
mov qword [rsp + 0xe8], rax
call fcn.00402ba0
mov rax, qword [rsp + 0x200]
mov dword [rsp + 0x1a0], 0x10
mov qword [rsp + 0x150], rax
mov rax, qword [rsp + 0x208]
mov rsi, qword [rsp + 0x150]
mov qword [rsp + 0x158], rax
mov qword [rsp + 0xa8], rax
lea rax, [rsp + 0x200]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x108]
lea rdx, [rax + rsi + 0x38]
call fcn.00404224
mov rdx, qword [rsp + 0x108]
lea rax, [rsp + 0x220]
movups xmm6, xmmword [rsp + 0x200]
mov rcx, rax
mov qword [rsp + 0x138], rax
movaps xmm7, xmmword [0x00425410]
movaps xmmword [rsp + 0x220], xmm6
movaps xmmword [rsp + 0x200], xmm7
call fcn.00406bc5
mov rax, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x138]
movzx edx, byte [rax + rdi + 8]
call fcn.00406b90
lea rax, [rsp + 0x200]
movaps xmm0, xmmword [0x004253f0]
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x50]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm0
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
lea rax, [rsp + 0x200]
movaps xmm1, xmmword [0x004253c0]
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x50]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm1
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x150]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
movaps xmm2, xmmword [0x004253a0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm2
call fcn.00406bc5
mov rax, qword [rsp + 0x60]
lea r9, str.base64.nim
movaps xmm3, xmmword [rsp + 0x220]
lea r8, str.decode
lea rdx, str.ValueError
movups xmmword [rax + 0x18], xmm3
mov rcx, rax
mov qword [rax + 8], 0
mov qword [rsp + 0x20], 0xe6
call fcn.00405068
cmp qword [rsp + 0xa8], 0
jne 0x408ae6
cmp qword [rsp + 0xe8], 0
jne 0x408b11
jmp 0x408b3a
mov rbx, qword [rsp + 0xa8]
mov eax, 1
shl rax, 0x3e
test qword [rbx], rax
jne 0x408ad9
mov dword [rsp + 0x1a0], 0x11
mov rcx, rbx
call fcn.00403a50
jmp 0x408ad9
mov rsi, qword [rsp + 0xe8]
mov eax, 1
shl rax, 0x3e
test qword [rsi], rax
jne 0x408b3a
mov dword [rsp + 0x1a0], 0x11
mov rcx, rsi
call fcn.00403a50
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x408b77
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.00421140
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 0x12
call fcn.00421400
mov rcx, rdx
call fcn.00421170
mov rax, qword [rsp + 0x178]
add rax, 1
jno 0x408b9d
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
mov rax, qword [rsp + 0x320]
cmp qword [rsp + 0x58], 0
mov rdx, qword [rax]
js 0x408bb7
cmp qword [rsp + 0x58], rdx
jl 0x408bcf
mov rcx, qword [rsp + 0x58]
dec rdx
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040539d
mov rcx, qword [rsp + 0x320]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00406c3e
mov rax, qword [rsp + 0x320]
mov rcx, qword [rsp + 0x118]
mov rdi, qword [rsp + 0x58]
mov rdx, qword [rax + 8]
mov al, byte [rsp + 0x125]
sar rcx, 4
shl eax, 2
or eax, ecx
mov byte [rdx + rdi + 8], al
mov rax, rdi
jmp 0x409a39
mov rbx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
cmp qword [rsp + 0x38], rbx
setge dl
shr rax, 0x3f
or dl, al
mov byte [rsp + 0x60], dl
jne 0x408c64
mov rax, qword [rsp + 0x38]
lea rdx, [0x004233c0]
mov rsi, qword [rsp + 0x48]
movzx eax, byte [rax + rsi + 8]
mov al, byte [rdx + rax]
mov byte [rsp + 0x126], al
inc al
jne 0x40903c
jmp 0x408c84
mov dword [rsp + 0x1a0], 0xffffffff
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
lea rdx, [rax - 1]
call fcn.0040539d
jmp 0x408c3a
lea rcx, [rsp + 0x210]
call fcn.00421160
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x3a
call fcn.00403c1c
mov qword [rsp + 0x50], rax
cmp byte [rsp + 0x60], 0
lea rbx, str.ValueError
mov rdi, qword [rsp + 0x50]
mov rax, qword [0x00428450]
mov qword [rdi + 0x10], rbx
mov qword [rdi], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x408d28
mov dword [rsp + 0x1a0], 0x3b
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
dec rax
mov rdx, rax
mov qword [rsp + 0x60], rax
call fcn.0040539d
mov dword [rsp + 0x1a0], 0x3c
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
call fcn.0040539d
lea rax, [rsp + 0x200]
mov rsi, qword [rsp + 0x38]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x60]
movzx edx, byte [rax + rsi + 8]
mov dword [rsp + 0x1a0], 0x3d
call fcn.00402ba0
mov dword [rsp + 0x1a0], 0x3e
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x200]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x138], rax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x140], rax
mov qword [rsp + 0xe0], rax
call fcn.00402ba0
mov rax, qword [rsp + 0x200]
mov dword [rsp + 0x1a0], 0x13
mov qword [rsp + 0x148], rax
mov rax, qword [rsp + 0x208]
mov rdi, qword [rsp + 0x148]
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x200]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x60]
lea rdx, [rax + rdi + 0x38]
call fcn.00404224
mov rdx, qword [rsp + 0x60]
lea rax, [rsp + 0x220]
movups xmm4, xmmword [rsp + 0x200]
mov rcx, rax
mov qword [rsp + 0x108], rax
movaps xmm5, xmmword [0x00425410]
movaps xmmword [rsp + 0x220], xmm4
movaps xmmword [rsp + 0x200], xmm5
call fcn.00406bc5
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x108]
movzx edx, byte [rax + rbx + 8]
call fcn.00406b90
lea rax, [rsp + 0x200]
movaps xmm6, xmmword [0x004253f0]
mov qword [rsp + 0x60], rax
mov rdx, qword [rsp + 0x60]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm6
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
lea rax, [rsp + 0x200]
movaps xmm7, xmmword [0x004253c0]
mov qword [rsp + 0x60], rax
mov rdx, qword [rsp + 0x60]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm7
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x148]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
movaps xmm0, xmmword [0x004253a0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm0
call fcn.00406bc5
mov rax, qword [rsp + 0x50]
lea r9, str.base64.nim
movaps xmm1, xmmword [rsp + 0x220]
lea r8, str.decode
lea rdx, str.ValueError
movups xmmword [rax + 0x18], xmm1
mov rcx, rax
mov qword [rax + 8], 0
mov qword [rsp + 0x20], 0xe6
call fcn.00405068
cmp qword [rsp + 0x98], 0
jne 0x408fa3
cmp qword [rsp + 0xe0], 0
jne 0x408fce
jmp 0x408ff7
mov rsi, qword [rsp + 0x98]
mov eax, 1
shl rax, 0x3e
test qword [rsi], rax
jne 0x408f96
mov dword [rsp + 0x1a0], 0x14
mov rcx, rsi
call fcn.00403a50
jmp 0x408f96
mov rdi, qword [rsp + 0xe0]
mov eax, 1
shl rax, 0x3e
test qword [rdi], rax
jne 0x408ff7
mov dword [rsp + 0x1a0], 0x14
mov rcx, rdi
call fcn.00403a50
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x409034
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.00421140
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 0x15
call fcn.00421400
mov rcx, rdx
call fcn.00421170
mov rax, qword [rsp + 0x38]
add rax, 1
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x180], rax
jno 0x409064
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
mov rax, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x40]
shr rax, 0x3f
cmp qword [rsp + 0x50], rsi
setge dl
or dl, al
mov byte [rsp + 0x108], dl
je 0x40909e
mov rcx, qword [rsp + 0x50]
lea rdx, [rsi - 1]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040539d
mov rax, qword [rsp + 0x50]
lea rdx, [0x004233c0]
mov rdi, qword [rsp + 0x48]
movzx eax, byte [rax + rdi + 8]
movzx eax, byte [rdx + rax]
cmp rax, 0xff
mov byte [rsp + 0x127], al
mov qword [rsp + 0x128], rax
jne 0x4094a6
lea rcx, [rsp + 0x210]
call fcn.00421160
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x3f
call fcn.00403c1c
mov qword [rsp + 0x60], rax
cmp byte [rsp + 0x108], 0
lea rsi, str.ValueError
mov rbx, qword [rsp + 0x60]
mov rax, qword [0x00428450]
mov qword [rbx + 0x10], rsi
mov qword [rbx], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x409180
mov dword [rsp + 0x1a0], 0x40
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
dec rax
mov rdx, rax
mov qword [rsp + 0x108], rax
call fcn.0040539d
mov dword [rsp + 0x1a0], 0x41
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x108]
call fcn.0040539d
lea rax, [rsp + 0x200]
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x108]
movzx edx, byte [rax + rdi + 8]
mov dword [rsp + 0x1a0], 0x42
call fcn.00402ba0
mov dword [rsp + 0x1a0], 0x43
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x200]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x148], rax
mov qword [rsp + 0xf0], rax
call fcn.00402ba0
mov rax, qword [rsp + 0x200]
mov dword [rsp + 0x1a0], 0x16
mov qword [rsp + 0x150], rax
mov rax, qword [rsp + 0x208]
mov rbx, qword [rsp + 0x150]
mov qword [rsp + 0x158], rax
mov qword [rsp + 0x88], rax
lea rax, [rsp + 0x200]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x108]
lea rdx, [rax + rbx + 0x38]
call fcn.00404224
mov rdx, qword [rsp + 0x108]
lea rax, [rsp + 0x220]
movups xmm2, xmmword [rsp + 0x200]
mov rcx, rax
mov qword [rsp + 0x138], rax
movaps xmm3, xmmword [0x00425410]
movaps xmmword [rsp + 0x220], xmm2
movaps xmmword [rsp + 0x200], xmm3
call fcn.00406bc5
mov rax, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x138]
movzx edx, byte [rax + rsi + 8]
call fcn.00406b90
lea rax, [rsp + 0x200]
movaps xmm4, xmmword [0x004253f0]
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x50]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm4
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
lea rax, [rsp + 0x200]
movaps xmm5, xmmword [0x004253c0]
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x50]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm5
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x150]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
movaps xmm6, xmmword [0x004253a0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm6
call fcn.00406bc5
mov rax, qword [rsp + 0x60]
lea r9, str.base64.nim
movaps xmm7, xmmword [rsp + 0x220]
lea r8, str.decode
lea rdx, str.ValueError
movups xmmword [rax + 0x18], xmm7
mov rcx, rax
mov qword [rax + 8], 0
mov qword [rsp + 0x20], 0xe6
call fcn.00405068
cmp qword [rsp + 0x88], 0
jne 0x40940d
cmp qword [rsp + 0xf0], 0
jne 0x409438
jmp 0x409461
mov rdi, qword [rsp + 0x88]
mov eax, 1
shl rax, 0x3e
test qword [rdi], rax
jne 0x409400
mov dword [rsp + 0x1a0], 0x17
mov rcx, rdi
call fcn.00403a50
jmp 0x409400
mov rbx, qword [rsp + 0xf0]
mov eax, 1
shl rax, 0x3e
test qword [rbx], rax
jne 0x409461
mov dword [rsp + 0x1a0], 0x17
mov rcx, rbx
call fcn.00403a50
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x40949e
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.00421140
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 0x18
call fcn.00421400
mov rcx, rdx
call fcn.00421170
mov rax, qword [rsp + 0x180]
add rax, 1
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x188], rax
jno 0x4094d1
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
mov rax, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
shr rax, 0x3f
cmp qword [rsp + 0x50], rdi
setge dl
or dl, al
mov byte [rsp + 0x108], dl
je 0x40950b
mov rcx, qword [rsp + 0x50]
lea rdx, [rdi - 1]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040539d
mov rax, qword [rsp + 0x50]
lea rdx, [0x004233c0]
mov rbx, qword [rsp + 0x48]
movzx eax, byte [rax + rbx + 8]
movzx eax, byte [rdx + rax]
cmp rax, 0xff
mov qword [rsp + 0x130], rax
jne 0x40990c
lea rcx, [rsp + 0x210]
call fcn.00421160
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x44
call fcn.00403c1c
mov qword [rsp + 0x60], rax
cmp byte [rsp + 0x108], 0
lea rdi, str.ValueError
mov rsi, qword [rsp + 0x60]
mov rax, qword [0x00428450]
mov qword [rsi + 0x10], rdi
mov qword [rsi], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x4095e6
mov dword [rsp + 0x1a0], 0x45
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
dec rax
mov rdx, rax
mov qword [rsp + 0x108], rax
call fcn.0040539d
mov dword [rsp + 0x1a0], 0x46
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x108]
call fcn.0040539d
lea rax, [rsp + 0x200]
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x108]
movzx edx, byte [rax + rbx + 8]
mov dword [rsp + 0x1a0], 0x47
call fcn.00402ba0
mov dword [rsp + 0x1a0], 0x48
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x200]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x148], rax
mov qword [rsp + 0xc8], rax
call fcn.00402ba0
mov rax, qword [rsp + 0x200]
mov dword [rsp + 0x1a0], 0x19
mov qword [rsp + 0x150], rax
mov rax, qword [rsp + 0x208]
mov rsi, qword [rsp + 0x150]
mov qword [rsp + 0x158], rax
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0x200]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x108]
lea rdx, [rax + rsi + 0x38]
call fcn.00404224
mov rdx, qword [rsp + 0x108]
lea rax, [rsp + 0x220]
movups xmm0, xmmword [rsp + 0x200]
mov rcx, rax
mov qword [rsp + 0x138], rax
movaps xmm1, xmmword [0x00425410]
movaps xmmword [rsp + 0x220], xmm0
movaps xmmword [rsp + 0x200], xmm1
call fcn.00406bc5
mov rax, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x138]
movzx edx, byte [rax + rdi + 8]
call fcn.00406b90
lea rax, [rsp + 0x200]
movaps xmm2, xmmword [0x004253f0]
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x50]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm2
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
lea rax, [rsp + 0x200]
movaps xmm3, xmmword [0x004253c0]
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x50]
lea rax, [rsp + 0x220]
mov rcx, rax
movaps xmmword [rsp + 0x200], xmm3
mov qword [rsp + 0x108], rax
call fcn.00406bc5
mov rax, qword [rsp + 0x150]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x208], rax
call fcn.00406bc5
movaps xmm4, xmmword [0x004253a0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm4
call fcn.00406bc5
mov rax, qword [rsp + 0x60]
lea r9, str.base64.nim
movaps xmm5, xmmword [rsp + 0x220]
lea r8, str.decode
lea rdx, str.ValueError
movups xmmword [rax + 0x18], xmm5
mov rcx, rax
mov qword [rax + 8], 0
mov qword [rsp + 0x20], 0xe6
call fcn.00405068
cmp qword [rsp + 0x80], 0
jne 0x409873
cmp qword [rsp + 0xc8], 0
jne 0x40989e
jmp 0x4098c7
mov rbx, qword [rsp + 0x80]
mov eax, 1
shl rax, 0x3e
test qword [rbx], rax
jne 0x409866
mov dword [rsp + 0x1a0], 0x1a
mov rcx, rbx
call fcn.00403a50
jmp 0x409866
mov rsi, qword [rsp + 0xc8]
mov eax, 1
shl rax, 0x3e
test qword [rsi], rax
jne 0x4098c7
mov dword [rsp + 0x1a0], 0x1a
mov rcx, rsi
call fcn.00403a50
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x409904
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.00421140
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 0x1b
call fcn.00421400
mov rcx, rdx
call fcn.00421170
mov rax, qword [rsp + 0x188]
add rax, 1
jno 0x40992a
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
mov rax, qword [rsp + 0x320]
cmp qword [rsp + 0x58], 0
mov rdx, qword [rax]
js 0x409944
cmp qword [rsp + 0x58], rdx
jl 0x40995c
mov rcx, qword [rsp + 0x58]
dec rdx
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040539d
mov rcx, qword [rsp + 0x320]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00406c3e
mov rax, qword [rsp + 0x320]
mov rcx, qword [rsp + 0x128]
mov rdi, qword [rsp + 0x58]
mov rdx, qword [rax + 8]
mov al, byte [rsp + 0x126]
sar rcx, 4
shl eax, 2
or eax, ecx
mov byte [rdx + rdi + 8], al
mov rax, rdi
add rax, 1
mov qword [rsp + 0x38], rax
jno 0x4099bf
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
mov rax, qword [rsp + 0x320]
cmp qword [rsp + 0x38], 0
mov rdx, qword [rax]
js 0x4099d9
cmp qword [rsp + 0x38], rdx
jl 0x4099f1
mov rcx, qword [rsp + 0x38]
dec rdx
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040539d
mov rcx, qword [rsp + 0x320]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00406c3e
mov rax, qword [rsp + 0x320]
mov rcx, qword [rsp + 0x130]
mov rbx, qword [rsp + 0x38]
mov rdx, qword [rax + 8]
mov al, byte [rsp + 0x127]
sar rcx, 2
shl eax, 4
or eax, ecx
mov byte [rdx + rbx + 8], al
mov rax, rbx
add rax, 1
mov qword [rsp + 0x58], rax
jno 0x409a54
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00403c88
cmp qword [rsp + 0x58], 0
jns 0x409a7d
mov rcx, qword [rsp + 0x58]
xor edx, edx
movabs r8, 0x7fffffffffffffff
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404299
mov dword [rsp + 0x1a0], 0xffffffff
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x320]
call fcn.0040490e
jmp 0x40a1f1
lea rcx, [rsp + 0x198]
call fcn.00415910
mov rax, qword [rsp + 0x320]
movaps xmm6, xmmword [rsp + 0x230]
movaps xmm7, xmmword [rsp + 0x240]
movaps xmm8, xmmword [rsp + 0x250]
movaps xmm9, xmmword [rsp + 0x260]
movaps xmm10, xmmword [rsp + 0x270]
movaps xmm11, xmmword [rsp + 0x280]
movaps xmm12, xmmword [rsp + 0x290]
movaps xmm13, xmmword [rsp + 0x2a0]
movaps xmm14, xmmword [rsp + 0x2b0]
movaps xmm15, xmmword [rsp + 0x2c0]
add rsp, 0x2d8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret