Function at 0x407203
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, [0x0041e4c0]
mov qword [rsp + 0x1c8], rax
lea rax, [0x00428900]
mov qword [rsp + 0x1d0], rax
lea rax, [rsp + 0x230]
mov qword [rsp + 0x1d8], rax
lea rax, [0x0040a01f]
mov qword [rsp + 0x1e0], rax
call fcn.00416910
mov rax, qword [rsp + 0x320]
cmp qword [rsp + 0x40], 0
mov qword [rax], 0
mov qword [rax + 8], 0
je 0x40a771
mov dword [rsp + 0x1a0], 0xffffffff
mov rcx, qword [rsp + 0x40]
call fcn.004071db
test rax, rax
mov qword [rsp + 0x38], rax
jns 0x40732f
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rax
call fcn.00404689
mov dword [rsp + 0x1a0], 0xffffffff
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x320]
call fcn.00404cfe
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 0x407396
mov qword [rsp + 0x50], 1
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
cmp qword [rsp + 0x38], 0
js 0x4073aa
mov rbx, qword [rsp + 0x40]
cmp qword [rsp + 0x38], rbx
jl 0x4073c4
mov dword [rsp + 0x1a0], 0xffffffff
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x38]
call fcn.0040578d
mov rax, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x38]
mov al, byte [rax + rsi + 8]
cmp al, 0x3d
ja 0x4073e6
movabs rdi, 0x2000000100002400
bt rdi, rax
jb 0x407423
mov rax, qword [rsp + 0xf8]
sub rax, 4
mov qword [rsp + 0x190], rax
jno 0x40740c
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x38], 0
jmp 0x40787c
cmp qword [rsp + 0x50], 0
jne 0x40743d
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0xf8], rax
jmp 0x407361
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
jmp 0x40742b
mov edi, 0x400009
shl rdi, 0xa
bt rdi, rax
jae 0x4074c6
mov rax, rsi
add rax, 1
mov qword [rsp + 0x38], rax
jno 0x40747c
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
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 0x4074b4
mov dword [rsp + 0x1a0], 0xffffffff
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x38]
call fcn.0040578d
mov rax, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x38]
mov al, byte [rax + rsi + 8]
cmp al, 0x20
jbe 0x40744f
cmp byte [rsp + 0x60], 0
je 0x4074eb
mov dword [rsp + 0x1a0], 0xffffffff
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
lea rdx, [rax - 1]
call fcn.0040578d
mov rax, qword [rsp + 0x38]
lea rdx, [0x0041f3e0]
mov rbx, qword [rsp + 0x48]
movzx eax, byte [rax + rbx + 8]
mov al, byte [rdx + rax]
mov byte [rsp + 0x121], al
inc al
je 0x4078ca
mov rax, qword [rsp + 0x38]
add rax, 1
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x160], rax
jno 0x40753b
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
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 0x407575
mov rcx, qword [rsp + 0x50]
lea rdx, [rdi - 1]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040578d
mov rax, qword [rsp + 0x50]
lea rdx, [0x0041f3e0]
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 0x407c7e
mov rax, qword [rsp + 0x160]
add rax, 1
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x168], rax
jno 0x4075d5
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
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 0x40760f
mov rcx, qword [rsp + 0x50]
lea rdx, [rbx - 1]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040578d
mov rax, qword [rsp + 0x50]
lea rdx, [0x0041f3e0]
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 0x408056
mov rax, qword [rsp + 0x168]
add rax, 1
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x170], rax
jno 0x40766f
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
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 0x4076a9
mov rcx, qword [rsp + 0x50]
lea rdx, [rsi - 1]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040578d
mov rax, qword [rsp + 0x50]
lea rdx, [0x0041f3e0]
mov rdi, qword [rsp + 0x48]
movzx eax, byte [rax + rdi + 8]
mov al, byte [rdx + rax]
mov byte [rsp + 0x124], al
inc al
je 0x408425
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x38], rax
jno 0x4076f4
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
mov rax, qword [rsp + 0x320]
cmp qword [rsp + 0x58], 0
mov rdx, qword [rax]
js 0x4087f4
cmp qword [rsp + 0x58], rdx
jge 0x4087f4
mov rcx, qword [rsp + 0x320]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.004071be
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 0x407779
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
mov rax, qword [rsp + 0x320]
cmp qword [rsp + 0x50], 0
mov rdx, qword [rax]
js 0x408811
cmp rdx, qword [rsp + 0x50]
jle 0x408811
mov rcx, qword [rsp + 0x320]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.004071be
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 0x4077fe
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
mov rax, qword [rsp + 0x320]
cmp qword [rsp + 0x50], 0
mov rdx, qword [rax]
js 0x40882e
cmp qword [rsp + 0x50], rdx
jge 0x40882e
mov rcx, qword [rsp + 0x320]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.004071be
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 0x40787c
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
mov rbx, qword [rsp + 0x38]
cmp qword [rsp + 0x190], rbx
jl 0x40789d
mov rax, qword [rsp + 0x40]
dec rax
mov qword [rsp + 0x50], rax
jmp 0x40747c
mov rax, qword [rsp + 0x38]
sub rax, qword [rsp + 0xf8]
mov qword [rsp + 0x50], rax
jno 0x40884b
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
jmp 0x40884b
lea rcx, [rsp + 0x210]
call fcn.0041d940
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x1c
call fcn.0040400c
mov qword [rsp + 0x50], rax
cmp byte [rsp + 0x60], 0
lea rdi, str.ValueError
mov rsi, qword [rsp + 0x50]
mov rax, qword [0x00424180]
mov qword [rsi + 0x10], rdi
mov qword [rsi], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x40796e
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.0040578d
mov dword [rsp + 0x1a0], 0x1e
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
call fcn.0040578d
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.00402f90
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.00402f90
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.00404614
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 [0x00421450]
movaps xmmword [rsp + 0x220], xmm0
movaps xmmword [rsp + 0x200], xmm1
call fcn.00407145
mov rax, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x108]
movzx edx, byte [rax + rdi + 8]
call fcn.00407110
lea rax, [rsp + 0x200]
movaps xmm2, xmmword [0x00421430]
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.00407145
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.00407145
lea rax, [rsp + 0x200]
movaps xmm3, xmmword [0x00421400]
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.00407145
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.00407145
movaps xmm4, xmmword [0x004213e0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm4
call fcn.00407145
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.00405458
cmp qword [rsp + 0x68], 0
jne 0x407be3
cmp qword [rsp + 0xb8], 0
jne 0x407c0b
jmp 0x407c34
mov rbx, qword [rsp + 0x68]
mov eax, 1
shl rax, 0x3e
test qword [rbx], rax
jne 0x407bd6
mov dword [rsp + 0x1a0], 2
mov rcx, rbx
call fcn.00403e40
jmp 0x407bd6
mov rsi, qword [rsp + 0xb8]
mov eax, 1
shl rax, 0x3e
test qword [rsi], rax
jne 0x407c34
mov dword [rsp + 0x1a0], 2
mov rcx, rsi
call fcn.00403e40
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x407c71
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.0041d920
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 3
call fcn.0041dbe0
mov rcx, rdx
call fcn.0041d950
jmp 0x407513
lea rcx, [rsp + 0x210]
call fcn.0041d940
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x21
call fcn.0040400c
mov qword [rsp + 0x60], rax
cmp byte [rsp + 0x108], 0
lea rdi, str.ValueError
mov rsi, qword [rsp + 0x60]
mov rax, qword [0x00424180]
mov qword [rsi + 0x10], rdi
mov qword [rsi], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x407d2b
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.0040578d
mov dword [rsp + 0x1a0], 0x23
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x108]
call fcn.0040578d
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.00402f90
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.00402f90
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.00404614
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 [0x00421450]
movaps xmmword [rsp + 0x220], xmm6
movaps xmmword [rsp + 0x200], xmm7
call fcn.00407145
mov rax, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x138]
movzx edx, byte [rax + rdi + 8]
call fcn.00407110
lea rax, [rsp + 0x200]
movaps xmm0, xmmword [0x00421430]
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.00407145
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.00407145
lea rax, [rsp + 0x200]
movaps xmm1, xmmword [0x00421400]
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.00407145
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.00407145
movaps xmm2, xmmword [0x004213e0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm2
call fcn.00407145
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.00405458
cmp qword [rsp + 0x90], 0
jne 0x407fb8
cmp qword [rsp + 0xd8], 0
jne 0x407fe3
jmp 0x40800c
mov rbx, qword [rsp + 0x90]
mov eax, 1
shl rax, 0x3e
test qword [rbx], rax
jne 0x407fab
mov dword [rsp + 0x1a0], 5
mov rcx, rbx
call fcn.00403e40
jmp 0x407fab
mov rsi, qword [rsp + 0xd8]
mov eax, 1
shl rax, 0x3e
test qword [rsi], rax
jne 0x40800c
mov dword [rsp + 0x1a0], 5
mov rcx, rsi
call fcn.00403e40
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x408049
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.0041d920
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 6
call fcn.0041dbe0
mov rcx, rdx
call fcn.0041d950
jmp 0x4075aa
lea rcx, [rsp + 0x210]
call fcn.0041d940
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x26
call fcn.0040400c
mov qword [rsp + 0x60], rax
cmp byte [rsp + 0x108], 0
lea rbx, str.ValueError
mov rdi, qword [rsp + 0x60]
mov rax, qword [0x00424180]
mov qword [rdi + 0x10], rbx
mov qword [rdi], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x408103
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.0040578d
mov dword [rsp + 0x1a0], 0x28
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x108]
call fcn.0040578d
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.00402f90
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.00402f90
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.00404614
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 [0x00421450]
movaps xmmword [rsp + 0x220], xmm4
movaps xmmword [rsp + 0x200], xmm5
call fcn.00407145
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x138]
movzx edx, byte [rax + rbx + 8]
call fcn.00407110
lea rax, [rsp + 0x200]
movaps xmm6, xmmword [0x00421430]
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.00407145
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.00407145
lea rax, [rsp + 0x200]
movaps xmm7, xmmword [0x00421400]
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.00407145
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.00407145
movaps xmm0, xmmword [0x004213e0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm0
call fcn.00407145
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.00405458
cmp qword [rsp + 0x70], 0
jne 0x40838a
cmp qword [rsp + 0xc0], 0
jne 0x4083b2
jmp 0x4083db
mov rsi, qword [rsp + 0x70]
mov eax, 1
shl rax, 0x3e
test qword [rsi], rax
jne 0x40837d
mov dword [rsp + 0x1a0], 8
mov rcx, rsi
call fcn.00403e40
jmp 0x40837d
mov rdi, qword [rsp + 0xc0]
mov eax, 1
shl rax, 0x3e
test qword [rdi], rax
jne 0x4083db
mov dword [rsp + 0x1a0], 8
mov rcx, rdi
call fcn.00403e40
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x408418
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.0041d920
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 9
call fcn.0041dbe0
mov rcx, rdx
call fcn.0041d950
jmp 0x407644
lea rcx, [rsp + 0x210]
call fcn.0041d940
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x2b
call fcn.0040400c
mov qword [rsp + 0x60], rax
cmp byte [rsp + 0x108], 0
lea rsi, str.ValueError
mov rbx, qword [rsp + 0x60]
mov rax, qword [0x00424180]
mov qword [rbx + 0x10], rsi
mov qword [rbx], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x4084d2
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.0040578d
mov dword [rsp + 0x1a0], 0x2d
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x108]
call fcn.0040578d
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.00402f90
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.00402f90
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.00404614
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 [0x00421450]
movaps xmmword [rsp + 0x220], xmm2
movaps xmmword [rsp + 0x200], xmm3
call fcn.00407145
mov rax, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x138]
movzx edx, byte [rax + rsi + 8]
call fcn.00407110
lea rax, [rsp + 0x200]
movaps xmm4, xmmword [0x00421430]
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.00407145
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.00407145
lea rax, [rsp + 0x200]
movaps xmm5, xmmword [0x00421400]
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.00407145
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.00407145
movaps xmm6, xmmword [0x004213e0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm6
call fcn.00407145
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.00405458
cmp qword [rsp + 0x78], 0
jne 0x408759
cmp qword [rsp + 0xd0], 0
jne 0x408781
jmp 0x4087aa
mov rdi, qword [rsp + 0x78]
mov eax, 1
shl rax, 0x3e
test qword [rdi], rax
jne 0x40874c
mov dword [rsp + 0x1a0], 0xb
mov rcx, rdi
call fcn.00403e40
jmp 0x40874c
mov rbx, qword [rsp + 0xd0]
mov eax, 1
shl rax, 0x3e
test qword [rbx], rax
jne 0x4087aa
mov dword [rsp + 0x1a0], 0xb
mov rcx, rbx
call fcn.00403e40
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x4087e7
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.0041d920
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 0xc
call fcn.0041dbe0
mov rcx, rdx
call fcn.0041d950
jmp 0x4076d1
mov rcx, qword [rsp + 0x58]
dec rdx
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040578d
jmp 0x407716
mov rcx, qword [rsp + 0x50]
dec rdx
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040578d
jmp 0x40779b
mov rcx, qword [rsp + 0x50]
dec rdx
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040578d
jmp 0x407820
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 0x40887c
cmp rdx, 3
jne 0x409fd4
jmp 0x40919c
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 0x4088c4
mov rax, qword [rsp + 0x38]
lea rdx, [0x0041f3e0]
mov rbx, qword [rsp + 0x48]
movzx eax, byte [rax + rbx + 8]
mov al, byte [rdx + rax]
mov byte [rsp + 0x125], al
inc al
jne 0x408c9c
jmp 0x4088e4
mov dword [rsp + 0x1a0], 0xffffffff
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
lea rdx, [rax - 1]
call fcn.0040578d
jmp 0x40889a
lea rcx, [rsp + 0x210]
call fcn.0041d940
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x30
call fcn.0040400c
mov qword [rsp + 0x50], rax
cmp byte [rsp + 0x60], 0
lea rdi, str.ValueError
mov rsi, qword [rsp + 0x50]
mov rax, qword [0x00424180]
mov qword [rsi + 0x10], rdi
mov qword [rsi], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x408988
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.0040578d
mov dword [rsp + 0x1a0], 0x32
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
call fcn.0040578d
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.00402f90
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.00402f90
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.00404614
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 [0x00421450]
movaps xmmword [rsp + 0x220], xmm0
movaps xmmword [rsp + 0x200], xmm1
call fcn.00407145
mov rax, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x108]
movzx edx, byte [rax + rdi + 8]
call fcn.00407110
lea rax, [rsp + 0x200]
movaps xmm2, xmmword [0x00421430]
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.00407145
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.00407145
lea rax, [rsp + 0x200]
movaps xmm3, xmmword [0x00421400]
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.00407145
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.00407145
movaps xmm4, xmmword [0x004213e0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm4
call fcn.00407145
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.00405458
cmp qword [rsp + 0xa0], 0
jne 0x408c03
cmp qword [rsp + 0xb0], 0
jne 0x408c2e
jmp 0x408c57
mov rbx, qword [rsp + 0xa0]
mov eax, 1
shl rax, 0x3e
test qword [rbx], rax
jne 0x408bf6
mov dword [rsp + 0x1a0], 0xe
mov rcx, rbx
call fcn.00403e40
jmp 0x408bf6
mov rsi, qword [rsp + 0xb0]
mov eax, 1
shl rax, 0x3e
test qword [rsi], rax
jne 0x408c57
mov dword [rsp + 0x1a0], 0xe
mov rcx, rsi
call fcn.00403e40
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x408c94
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.0041d920
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 0xf
call fcn.0041dbe0
mov rcx, rdx
call fcn.0041d950
mov rax, qword [rsp + 0x38]
add rax, 1
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x178], rax
jno 0x408cc4
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
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 0x408cfe
mov rcx, qword [rsp + 0x50]
lea rdx, [rdi - 1]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040578d
mov rax, qword [rsp + 0x50]
lea rdx, [0x0041f3e0]
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 0x4090ff
lea rcx, [rsp + 0x210]
call fcn.0041d940
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x35
call fcn.0040400c
mov qword [rsp + 0x60], rax
cmp byte [rsp + 0x108], 0
lea rdi, str.ValueError
mov rsi, qword [rsp + 0x60]
mov rax, qword [0x00424180]
mov qword [rsi + 0x10], rdi
mov qword [rsi], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x408dd9
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.0040578d
mov dword [rsp + 0x1a0], 0x37
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x108]
call fcn.0040578d
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.00402f90
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.00402f90
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.00404614
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 [0x00421450]
movaps xmmword [rsp + 0x220], xmm6
movaps xmmword [rsp + 0x200], xmm7
call fcn.00407145
mov rax, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x138]
movzx edx, byte [rax + rdi + 8]
call fcn.00407110
lea rax, [rsp + 0x200]
movaps xmm0, xmmword [0x00421430]
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.00407145
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.00407145
lea rax, [rsp + 0x200]
movaps xmm1, xmmword [0x00421400]
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.00407145
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.00407145
movaps xmm2, xmmword [0x004213e0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm2
call fcn.00407145
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.00405458
cmp qword [rsp + 0xa8], 0
jne 0x409066
cmp qword [rsp + 0xe8], 0
jne 0x409091
jmp 0x4090ba
mov rbx, qword [rsp + 0xa8]
mov eax, 1
shl rax, 0x3e
test qword [rbx], rax
jne 0x409059
mov dword [rsp + 0x1a0], 0x11
mov rcx, rbx
call fcn.00403e40
jmp 0x409059
mov rsi, qword [rsp + 0xe8]
mov eax, 1
shl rax, 0x3e
test qword [rsi], rax
jne 0x4090ba
mov dword [rsp + 0x1a0], 0x11
mov rcx, rsi
call fcn.00403e40
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x4090f7
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.0041d920
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 0x12
call fcn.0041dbe0
mov rcx, rdx
call fcn.0041d950
mov rax, qword [rsp + 0x178]
add rax, 1
jno 0x40911d
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
mov rax, qword [rsp + 0x320]
cmp qword [rsp + 0x58], 0
mov rdx, qword [rax]
js 0x409137
cmp qword [rsp + 0x58], rdx
jl 0x40914f
mov rcx, qword [rsp + 0x58]
dec rdx
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040578d
mov rcx, qword [rsp + 0x320]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.004071be
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 0x409fb9
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 0x4091e4
mov rax, qword [rsp + 0x38]
lea rdx, [0x0041f3e0]
mov rsi, qword [rsp + 0x48]
movzx eax, byte [rax + rsi + 8]
mov al, byte [rdx + rax]
mov byte [rsp + 0x126], al
inc al
jne 0x4095bc
jmp 0x409204
mov dword [rsp + 0x1a0], 0xffffffff
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
lea rdx, [rax - 1]
call fcn.0040578d
jmp 0x4091ba
lea rcx, [rsp + 0x210]
call fcn.0041d940
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x3a
call fcn.0040400c
mov qword [rsp + 0x50], rax
cmp byte [rsp + 0x60], 0
lea rbx, str.ValueError
mov rdi, qword [rsp + 0x50]
mov rax, qword [0x00424180]
mov qword [rdi + 0x10], rbx
mov qword [rdi], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x4092a8
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.0040578d
mov dword [rsp + 0x1a0], 0x3c
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
call fcn.0040578d
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.00402f90
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.00402f90
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.00404614
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 [0x00421450]
movaps xmmword [rsp + 0x220], xmm4
movaps xmmword [rsp + 0x200], xmm5
call fcn.00407145
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x108]
movzx edx, byte [rax + rbx + 8]
call fcn.00407110
lea rax, [rsp + 0x200]
movaps xmm6, xmmword [0x00421430]
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.00407145
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.00407145
lea rax, [rsp + 0x200]
movaps xmm7, xmmword [0x00421400]
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.00407145
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.00407145
movaps xmm0, xmmword [0x004213e0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm0
call fcn.00407145
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.00405458
cmp qword [rsp + 0x98], 0
jne 0x409523
cmp qword [rsp + 0xe0], 0
jne 0x40954e
jmp 0x409577
mov rsi, qword [rsp + 0x98]
mov eax, 1
shl rax, 0x3e
test qword [rsi], rax
jne 0x409516
mov dword [rsp + 0x1a0], 0x14
mov rcx, rsi
call fcn.00403e40
jmp 0x409516
mov rdi, qword [rsp + 0xe0]
mov eax, 1
shl rax, 0x3e
test qword [rdi], rax
jne 0x409577
mov dword [rsp + 0x1a0], 0x14
mov rcx, rdi
call fcn.00403e40
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x4095b4
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.0041d920
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 0x15
call fcn.0041dbe0
mov rcx, rdx
call fcn.0041d950
mov rax, qword [rsp + 0x38]
add rax, 1
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x180], rax
jno 0x4095e4
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
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 0x40961e
mov rcx, qword [rsp + 0x50]
lea rdx, [rsi - 1]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040578d
mov rax, qword [rsp + 0x50]
lea rdx, [0x0041f3e0]
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 0x409a26
lea rcx, [rsp + 0x210]
call fcn.0041d940
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x3f
call fcn.0040400c
mov qword [rsp + 0x60], rax
cmp byte [rsp + 0x108], 0
lea rsi, str.ValueError
mov rbx, qword [rsp + 0x60]
mov rax, qword [0x00424180]
mov qword [rbx + 0x10], rsi
mov qword [rbx], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x409700
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.0040578d
mov dword [rsp + 0x1a0], 0x41
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x108]
call fcn.0040578d
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.00402f90
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.00402f90
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.00404614
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 [0x00421450]
movaps xmmword [rsp + 0x220], xmm2
movaps xmmword [rsp + 0x200], xmm3
call fcn.00407145
mov rax, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x138]
movzx edx, byte [rax + rsi + 8]
call fcn.00407110
lea rax, [rsp + 0x200]
movaps xmm4, xmmword [0x00421430]
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.00407145
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.00407145
lea rax, [rsp + 0x200]
movaps xmm5, xmmword [0x00421400]
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.00407145
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.00407145
movaps xmm6, xmmword [0x004213e0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm6
call fcn.00407145
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.00405458
cmp qword [rsp + 0x88], 0
jne 0x40998d
cmp qword [rsp + 0xf0], 0
jne 0x4099b8
jmp 0x4099e1
mov rdi, qword [rsp + 0x88]
mov eax, 1
shl rax, 0x3e
test qword [rdi], rax
jne 0x409980
mov dword [rsp + 0x1a0], 0x17
mov rcx, rdi
call fcn.00403e40
jmp 0x409980
mov rbx, qword [rsp + 0xf0]
mov eax, 1
shl rax, 0x3e
test qword [rbx], rax
jne 0x4099e1
mov dword [rsp + 0x1a0], 0x17
mov rcx, rbx
call fcn.00403e40
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x409a1e
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.0041d920
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 0x18
call fcn.0041dbe0
mov rcx, rdx
call fcn.0041d950
mov rax, qword [rsp + 0x180]
add rax, 1
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x188], rax
jno 0x409a51
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
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 0x409a8b
mov rcx, qword [rsp + 0x50]
lea rdx, [rdi - 1]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040578d
mov rax, qword [rsp + 0x50]
lea rdx, [0x0041f3e0]
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 0x409e8c
lea rcx, [rsp + 0x210]
call fcn.0041d940
mov edx, 8
mov ecx, 0x40
mov dword [rsp + 0x1a0], 0x44
call fcn.0040400c
mov qword [rsp + 0x60], rax
cmp byte [rsp + 0x108], 0
lea rdi, str.ValueError
mov rsi, qword [rsp + 0x60]
mov rax, qword [0x00424180]
mov qword [rsi + 0x10], rdi
mov qword [rsi], rax
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
je 0x409b66
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.0040578d
mov dword [rsp + 0x1a0], 0x46
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x108]
call fcn.0040578d
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.00402f90
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.00402f90
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.00404614
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 [0x00421450]
movaps xmmword [rsp + 0x220], xmm0
movaps xmmword [rsp + 0x200], xmm1
call fcn.00407145
mov rax, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x138]
movzx edx, byte [rax + rdi + 8]
call fcn.00407110
lea rax, [rsp + 0x200]
movaps xmm2, xmmword [0x00421430]
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.00407145
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.00407145
lea rax, [rsp + 0x200]
movaps xmm3, xmmword [0x00421400]
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.00407145
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.00407145
movaps xmm4, xmmword [0x004213e0]
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x220]
movaps xmmword [rsp + 0x200], xmm4
call fcn.00407145
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.00405458
cmp qword [rsp + 0x80], 0
jne 0x409df3
cmp qword [rsp + 0xc8], 0
jne 0x409e1e
jmp 0x409e47
mov rbx, qword [rsp + 0x80]
mov eax, 1
shl rax, 0x3e
test qword [rbx], rax
jne 0x409de6
mov dword [rsp + 0x1a0], 0x1a
mov rcx, rbx
call fcn.00403e40
jmp 0x409de6
mov rsi, qword [rsp + 0xc8]
mov eax, 1
shl rax, 0x3e
test qword [rsi], rax
jne 0x409e47
mov dword [rsp + 0x1a0], 0x1a
mov rcx, rsi
call fcn.00403e40
cmp qword [rsp + 0x210], 0
lea rdx, [rsp + 0x210]
je 0x409e84
lea rax, [rsp + 0x218]
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.0041d920
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x1a0], 0x1b
call fcn.0041dbe0
mov rcx, rdx
call fcn.0041d950
mov rax, qword [rsp + 0x188]
add rax, 1
jno 0x409eaa
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
mov rax, qword [rsp + 0x320]
cmp qword [rsp + 0x58], 0
mov rdx, qword [rax]
js 0x409ec4
cmp qword [rsp + 0x58], rdx
jl 0x409edc
mov rcx, qword [rsp + 0x58]
dec rdx
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040578d
mov rcx, qword [rsp + 0x320]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.004071be
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 0x409f3f
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
mov rax, qword [rsp + 0x320]
cmp qword [rsp + 0x38], 0
mov rdx, qword [rax]
js 0x409f59
cmp qword [rsp + 0x38], rdx
jl 0x409f71
mov rcx, qword [rsp + 0x38]
dec rdx
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.0040578d
mov rcx, qword [rsp + 0x320]
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.004071be
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 0x409fd4
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404078
cmp qword [rsp + 0x58], 0
jns 0x409ffd
mov rcx, qword [rsp + 0x58]
xor edx, edx
movabs r8, 0x7fffffffffffffff
mov dword [rsp + 0x1a0], 0xffffffff
call fcn.00404689
mov dword [rsp + 0x1a0], 0xffffffff
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x320]
call fcn.00404cfe
jmp 0x40a771
lea rcx, [rsp + 0x198]
call fcn.004169a0
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