Function at 0x43e390
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rsi, rcx
test rcx, rcx
je 0x43f2d2
mov rax, qword [rcx]
test rax, rax
je 0x43f2d2
imul rbx, rax, 3
jo 0x4402fe
test rbx, rbx
lea rax, [rbx + 3]
cmovns rax, rbx
sar rax, 2
add rax, 6
mov r12, rax
js 0x43f3e5
movabs rdi, 0x2000000100002400
mov rdx, r12
xor ecx, ecx
call fcn.0040d6a0
mov r14, rax
mov rax, qword [rsi]
mov rbp, rax
nop dword [rax + rax]
mov rbx, rbp
xor r12d, r12d
sub rbx, 1
jo 0x440286
mov rdx, qword [rsi]
test rbx, rbx
js 0x43e41d
cmp rbx, rdx
jl 0x43e429
sub rdx, 1
mov rcx, rbx
call fcn.0040dd50
movzx eax, byte [rsi + rbx + 0x10]
cmp al, 0x3d
jbe 0x43e700
mov qword [rsp + 0x68], rbp
sub rbp, 4
mov qword [rsp + 0x48], rbp
jo 0x4402c8
cmp qword [rsp + 0x48], 0
js 0x43f809
lea rax, [0x0047d7c0]
test r14, r14
mov qword [rsp + 0x38], 0
movabs rdi, 0x100002400
mov qword [rsp + 0x30], rax
setne byte [rsp + 0x57]
xor ebx, ebx
nop
mov rdx, qword [rsi]
test rbx, rbx
js 0x43e48d
cmp rbx, rdx
jl 0x43e499
sub rdx, 1
mov rcx, rbx
call fcn.0040dd50
movzx eax, byte [rsi + rbx + 0x10]
cmp al, 0x20
jbe 0x43e6d8
mov rdx, qword [rsi]
test rbx, rbx
js 0x43ecb8
cmp rbx, rdx
jl 0x43ec78
mov rcx, rbx
sub rdx, 1
call fcn.0040dd50
movzx eax, byte [rsi + rbx + 0x10]
mov rcx, qword [rsp + 0x30]
movzx r12d, byte [rcx + rax]
cmp r12b, 0xff
je 0x43eff8
lea eax, [r12*4]
mov byte [rsp + 0x56], al
add rbx, 1
jo 0x4402f4
mov rdx, qword [rsi]
test rbx, rbx
js 0x43e9c8
cmp rbx, rdx
jge 0x43e9c8
movzx eax, byte [rsi + rbx + 0x10]
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
cmp al, 0xff
je 0x43f274
movzx ebp, al
mov r12, rbp
shl ebp, 4
sar r12, 4
add rbx, 1
jo 0x4402e0
mov rdx, qword [rsi]
test rbx, rbx
js 0x43e730
cmp rbx, rdx
jge 0x43e730
movzx eax, byte [rsi + rbx + 0x10]
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
cmp al, 0xff
je 0x43f245
movzx r15d, al
mov r13, r15
shl r15d, 6
sar r13, 2
mov byte [rsp + 0x40], r13b
add rbx, 1
jo 0x4402ea
mov rdx, qword [rsi]
test rbx, rbx
js 0x43ed20
cmp rbx, rdx
jl 0x43e59e
sub rdx, 1
mov rcx, rbx
call fcn.0040dd50
movzx eax, byte [rsi + rbx + 0x10]
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
cmp al, 0xff
je 0x43ed80
or r15d, eax
add rbx, 1
mov r13, rbx
jo 0x43ec98
mov rax, qword [rsp + 0x38]
test rax, rax
js 0x43ec50
cmp byte [rsp + 0x57], 0
je 0x43ec50
mov rdx, qword [r14]
cmp rdx, rax
jle 0x43ec5f
mov rax, qword [rsp + 0x38]
or r12b, byte [rsp + 0x56]
mov byte [r14 + rax + 0x10], r12b
mov r12, rax
add r12, 1
jo 0x44031c
mov rdx, qword [r14]
test r12, r12
js 0x43e612
cmp r12, rdx
jl 0x43e61e
sub rdx, 1
mov rcx, r12
call fcn.0040dd50
or bpl, byte [rsp + 0x40]
mov byte [r14 + r12 + 0x10], bpl
mov rbp, r12
add rbp, 1
jo 0x440312
mov rdx, qword [r14]
test rbp, rbp
js 0x43e642
cmp rbp, rdx
jl 0x43e64e
sub rdx, 1
mov rcx, rbp
call fcn.0040dd50
mov byte [r14 + rbp + 0x10], r15b
add rbp, 1
mov qword [rsp + 0x38], rbp
jo 0x43eca8
cmp qword [rsp + 0x48], r13
jge 0x43e480
mov rdi, rbx
sub rdi, qword [rsp + 0x68]
jo 0x440308
mov rdx, rdi
sar rdx, 0x3f
shr rdx, 0x3e
lea rax, [rdi + rdx]
and eax, 3
sub rax, rdx
cqo
xor rax, rdx
sub rax, rdx
cmp rax, 2
je 0x43f2e5
cmp rax, 3
je 0x43f3fe
cmp qword [rsp + 0x38], 0
js 0x43f3ca
mov rdx, qword [rsp + 0x38]
mov rcx, r14
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.0040d6a0
bt rdi, rax
jae 0x43e4a6
add rbx, 1
jno 0x43e480
call fcn.0040a060
jmp 0x43e480
bt rdi, rax
jae 0x43e436
test r12, r12
jne 0x43e720
mov rbp, rbx
jmp 0x43e400
call fcn.0040a060
jmp 0x43e70f
mov rcx, rbx
sub rdx, 1
call fcn.0040dd50
movzx eax, byte [rsi + rbx + 0x10]
mov rcx, qword [rsp + 0x30]
movzx r15d, byte [rcx + rax]
cmp r15b, 0xff
jne 0x43e567
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov r13, rax
mov rax, qword [0x00499e60]
mov qword [r13], rax
lea rax, str.ValueError
mov qword [r13 + 0x10], rax
test rbx, rbx
js 0x43f2bb
mov rax, qword [rsi]
cmp rbx, rax
jl 0x43e7b0
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
mov rax, qword [rsi]
cmp rbx, rax
jl 0x43e7b0
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.004020f0
mov rcx, rbx
mov qword [rsp + 0x40], rax
call fcn.004020f0
mov r10, qword [rsp + 0x40]
xor ecx, ecx
mov r9, rax
test r10, r10
je 0x43e7d9
mov rcx, qword [r10]
test r9, r9
je 0x43e7e1
add rcx, qword [r9]
add rcx, 0x38
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x40], r10
call fcn.0040cc40
mov r10, qword [rsp + 0x40]
mov r9, qword [rsp + 0x58]
movabs rcx, 0x6620343665736162
movabs rdx, 0x2064696c61766e49
mov r15, rax
mov rax, qword [rax]
test r10, r10
lea rax, [r15 + rax + 0x10]
mov qword [rax + 8], rcx
movabs rcx, 0x2072657463617261
mov qword [rax], rdx
movabs rdx, 0x68632074616d726f
mov qword [rax + 0x18], rcx
mov ecx, 0x60
mov qword [rax + 0x10], rdx
mov word [rax + 0x20], cx
mov rax, qword [r15]
lea rdx, [rax + 0x21]
mov qword [r15], rdx
movzx ecx, byte [rsi + rbx + 0x10]
lea rdx, [rax + 0x22]
mov byte [r15 + rax + 0x31], cl
movabs rcx, 0x2064726f282060
mov qword [r15], rdx
mov qword [r15 + rax + 0x32], rcx
mov rdx, qword [r15]
lea rax, [rdx + 7]
mov qword [r15], rax
je 0x43e8aa
mov rax, qword [r10]
lea rcx, [r15 + rdx + 0x17]
lea rdx, [r10 + 0x10]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov r10, qword [rsp + 0x40]
mov r9, qword [rsp + 0x58]
mov rax, qword [r10]
add rax, qword [r15]
mov qword [r15], rax
lea rax, [r15 + rax + 0x10]
mov edx, 0x206e
movabs rcx, 0x636f6c2074612029
mov qword [rax], rcx
mov word [rax + 0xc], dx
mov dword [rax + 8], 0x6f697461
mov byte [rax + 0xe], 0
mov rax, qword [r15]
lea rdx, [rax + 0xe]
lea rcx, [r15 + rax + 0x1e]
mov qword [r15], rdx
test r9, r9
je 0x43e90c
mov rax, qword [r9]
lea rdx, [r9 + 0x10]
mov qword [rsp + 0x40], r9
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov r9, qword [rsp + 0x40]
mov rax, qword [r9]
add rax, qword [r15]
mov qword [r15], rax
lea rcx, [r15 + rax + 0x10]
mov r8d, 0x2e
mov word [rcx], r8w
add qword [r15], 1
add qword [r15 - 0x10], 8
mov rax, qword [r13 + 0x18]
test rax, rax
je 0x43e951
mov rcx, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rcx - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x43e951
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov rax, qword [r13 + 8]
mov qword [r13 + 0x18], r15
test rax, rax
je 0x43e987
mov rcx, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rcx - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x43e987
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
lea r9, str.base64.nim
mov rcx, r13
mov r15d, 0xffffffc0
mov qword [r13 + 8], 0
mov qword [rsp + 0x20], 0xe9
lea r8, str.decode
lea rdx, str.ValueError
call fcn.0040da50
mov byte [rsp + 0x40], 0x3f
jmp 0x43e577
mov rcx, rbx
sub rdx, 1
call fcn.0040dd50
movzx eax, byte [rsi + rbx + 0x10]
mov rcx, qword [rsp + 0x30]
movzx ebp, byte [rcx + rax]
cmp bpl, 0xff
jne 0x43e524
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov r12, rax
mov rax, qword [0x00499e60]
mov qword [r12], rax
lea rax, str.ValueError
mov qword [r12 + 0x10], rax
test rbx, rbx
js 0x43f2a4
mov rax, qword [rsi]
cmp rbx, rax
jl 0x43ea48
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
mov rax, qword [rsi]
cmp rbx, rax
jl 0x43ea48
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.004020f0
mov rcx, rbx
mov r15, rax
call fcn.004020f0
xor ecx, ecx
mov r13, rax
test r15, r15
je 0x43ea6a
mov rcx, qword [r15]
test r13, r13
je 0x43ea73
add rcx, qword [r13]
add rcx, 0x38
call fcn.0040cc40
mov r9d, 0x60
movabs rdx, 0x2064696c61766e49
movabs rcx, 0x6620343665736162
mov rbp, rax
mov rax, qword [rax]
lea rax, [rbp + rax + 0x10]
mov qword [rax], rdx
movabs rdx, 0x68632074616d726f
mov qword [rax + 8], rcx
movabs rcx, 0x2072657463617261
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], rcx
mov word [rax + 0x20], r9w
mov rax, qword [rbp]
lea rdx, [rax + 0x21]
mov qword [rbp], rdx
movzx ecx, byte [rsi + rbx + 0x10]
lea rdx, [rax + 0x22]
mov byte [rbp + rax + 0x31], cl
movabs rcx, 0x2064726f282060
mov qword [rbp], rdx
mov qword [rbp + rax + 0x32], rcx
mov rax, qword [rbp]
lea rdx, [rax + 7]
add rax, 0x17
mov qword [rbp], rdx
test r15, r15
je 0x43eb2e
lea rcx, [rbp + rax]
mov rax, qword [r15]
lea rdx, [r15 + 0x10]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [r15]
add rax, qword [rbp]
mov qword [rbp], rax
add rax, 0x10
add rax, rbp
mov r8d, 0x206e
movabs rcx, 0x636f6c2074612029
mov qword [rax], rcx
mov dword [rax + 8], 0x6f697461
mov word [rax + 0xc], r8w
mov byte [rax + 0xe], 0
mov rax, qword [rbp]
lea rdx, [rax + 0xe]
lea rcx, [rbp + rax + 0x1e]
mov qword [rbp], rdx
test r13, r13
je 0x43eb8c
mov rax, qword [r13]
lea rdx, [r13 + 0x10]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [r13]
add rax, qword [rbp]
mov qword [rbp], rax
lea rcx, [rbp + rax + 0x10]
mov edx, 0x2e
mov word [rcx], dx
add qword [rbp], 1
add qword [rbp - 0x10], 8
mov rax, qword [r12 + 0x18]
test rax, rax
je 0x43ebd1
mov rcx, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rcx - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x43ebd1
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov rax, qword [r12 + 8]
mov qword [r12 + 0x18], rbp
test rax, rax
je 0x43ec09
mov rcx, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rcx - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x43ec09
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov rcx, r12
lea r9, str.base64.nim
mov qword [r12 + 8], 0
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
lea rdx, str.ValueError
mov ebp, 0xfffffff0
mov r12d, 0xf
call fcn.0040da50
jmp 0x43e52e
mov rdx, 0xffffffffffffffff
test r14, r14
je 0x43ec63
mov rdx, qword [r14]
sub rdx, 1
mov rcx, qword [rsp + 0x38]
call fcn.0040dd50
jmp 0x43e5e9
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
cmp al, 0xff
je 0x43eff8
shl eax, 2
mov byte [rsp + 0x56], al
jmp 0x43e4ec
call fcn.0040a060
jmp 0x43e5c4
call fcn.0040a060
jmp 0x43e662
mov rcx, rbx
sub rdx, 1
call fcn.0040dd50
movzx eax, byte [rsi + rbx + 0x10]
mov rcx, qword [rsp + 0x30]
movzx r12d, byte [rcx + rax]
cmp r12b, 0xff
jne 0x43e4e0
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov rcx, rbx
mov r12, rax
mov rax, qword [0x00499e60]
mov qword [r12], rax
lea rax, str.ValueError
mov qword [r12 + 0x10], rax
mov rax, qword [rsi]
lea rdx, [rax - 1]
call fcn.0040dd50
mov rax, qword [rsi]
jmp 0x43f03f
mov rcx, rbx
sub rdx, 1
call fcn.0040dd50
movzx eax, byte [rsi + rbx + 0x10]
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
cmp al, 0xff
jne 0x43e5b4
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov rcx, rbx
mov r15, rax
mov rax, qword [0x00499e60]
mov qword [r15], rax
lea rax, str.ValueError
mov qword [r15 + 0x10], rax
mov rax, qword [rsi]
lea rdx, [rax - 1]
call fcn.0040dd50
mov rax, qword [rsi]
jmp 0x43edc5
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov r15, rax
mov rax, qword [0x00499e60]
mov qword [r15], rax
lea rax, str.ValueError
mov qword [r15 + 0x10], rax
mov rax, qword [rsi]
cmp rbx, rax
jl 0x43edd1
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
mov rax, qword [rsi]
cmp rbx, rax
jl 0x43edd1
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.004020f0
mov rcx, rbx
mov qword [rsp + 0x58], rax
call fcn.004020f0
mov r11, qword [rsp + 0x58]
xor ecx, ecx
mov r13, rax
test r11, r11
je 0x43edfa
mov rcx, qword [r11]
test r13, r13
je 0x43ee03
add rcx, qword [r13]
add rcx, 0x38
mov qword [rsp + 0x58], r11
call fcn.0040cc40
mov r11d, 0x60
movabs rdx, 0x2064696c61766e49
movabs rcx, 0x6620343665736162
mov r9, rax
mov rax, qword [rax]
lea rax, [r9 + rax + 0x10]
mov qword [rax], rdx
movabs rdx, 0x68632074616d726f
mov qword [rax + 8], rcx
movabs rcx, 0x2072657463617261
mov qword [rax + 0x10], rdx
mov word [rax + 0x20], r11w
mov r11, qword [rsp + 0x58]
mov qword [rax + 0x18], rcx
mov rax, qword [r9]
lea rdx, [rax + 0x21]
mov qword [r9], rdx
movzx ecx, byte [rsi + rbx + 0x10]
lea rdx, [rax + 0x22]
mov byte [r9 + rax + 0x31], cl
movabs rcx, 0x2064726f282060
mov qword [r9], rdx
mov qword [r9 + rax + 0x32], rcx
mov rax, qword [r9]
lea rdx, [rax + 7]
add rax, 0x17
mov qword [r9], rdx
test r11, r11
je 0x43eed0
lea rcx, [r9 + rax]
mov rax, qword [r11]
lea rdx, [r11 + 0x10]
mov qword [rsp + 0x60], r9
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov r9, qword [rsp + 0x60]
mov r11, qword [rsp + 0x58]
mov rax, qword [r11]
add rax, qword [r9]
mov qword [r9], rax
add rax, 0x10
add rax, r9
mov r10d, 0x206e
movabs rcx, 0x636f6c2074612029
mov qword [rax], rcx
mov dword [rax + 8], 0x6f697461
mov word [rax + 0xc], r10w
mov byte [rax + 0xe], 0
mov rax, qword [r9]
lea rdx, [rax + 0xe]
lea rcx, [r9 + rax + 0x1e]
mov qword [r9], rdx
test r13, r13
je 0x43ef34
mov rax, qword [r13]
lea rdx, [r13 + 0x10]
mov qword [rsp + 0x58], r9
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov r9, qword [rsp + 0x58]
mov rax, qword [r13]
add rax, qword [r9]
mov qword [r9], rax
lea rcx, [r9 + rax + 0x10]
mov r10d, 0x2e
mov word [rcx], r10w
add qword [r9], 1
add qword [r9 - 0x10], 8
mov rax, qword [r15 + 0x18]
test rax, rax
je 0x43ef83
mov rcx, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rcx - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x43ef83
mov rcx, qword [0x0049a130]
mov rdx, r8
mov qword [rsp + 0x58], r9
add rcx, 0x18
call fcn.00407d10
mov r9, qword [rsp + 0x58]
mov rax, qword [r15 + 8]
mov qword [r15 + 0x18], r9
test rax, rax
je 0x43efb9
mov rcx, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rcx - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x43efb9
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov qword [r15 + 8], 0
mov rcx, r15
lea r9, str.base64.nim
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
lea rdx, str.ValueError
mov r15d, 0xffffffff
call fcn.0040da50
jmp 0x43e5b7
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov r12, rax
mov rax, qword [0x00499e60]
mov qword [r12], rax
lea rax, str.ValueError
mov qword [r12 + 0x10], rax
mov rax, qword [rsi]
cmp rbx, rax
jl 0x43f04b
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
mov rax, qword [rsi]
cmp rbx, rax
jl 0x43f04b
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.004020f0
mov rcx, rbx
mov r15, rax
call fcn.004020f0
xor ecx, ecx
mov r13, rax
test r15, r15
je 0x43f06d
mov rcx, qword [r15]
test r13, r13
je 0x43f076
add rcx, qword [r13]
add rcx, 0x38
call fcn.0040cc40
mov r11d, 0x60
movabs rdx, 0x2064696c61766e49
movabs rcx, 0x6620343665736162
mov rbp, rax
mov rax, qword [rax]
lea rax, [rbp + rax + 0x10]
mov qword [rax], rdx
movabs rdx, 0x68632074616d726f
mov qword [rax + 8], rcx
movabs rcx, 0x2072657463617261
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], rcx
mov word [rax + 0x20], r11w
mov rax, qword [rbp]
lea rdx, [rax + 0x21]
mov qword [rbp], rdx
movzx ecx, byte [rsi + rbx + 0x10]
lea rdx, [rax + 0x22]
mov byte [rbp + rax + 0x31], cl
movabs rcx, 0x2064726f282060
mov qword [rbp], rdx
mov qword [rbp + rax + 0x32], rcx
mov rax, qword [rbp]
lea rdx, [rax + 7]
add rax, 0x17
mov qword [rbp], rdx
test r15, r15
je 0x43f131
lea rcx, [rbp + rax]
mov rax, qword [r15]
lea rdx, [r15 + 0x10]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [r15]
add rax, qword [rbp]
mov qword [rbp], rax
add rax, 0x10
add rax, rbp
mov r10d, 0x206e
movabs rcx, 0x636f6c2074612029
mov qword [rax], rcx
mov dword [rax + 8], 0x6f697461
mov word [rax + 0xc], r10w
mov byte [rax + 0xe], 0
mov rax, qword [rbp]
lea rdx, [rax + 0xe]
lea rcx, [rbp + rax + 0x1e]
mov qword [rbp], rdx
test r13, r13
je 0x43f18f
mov rax, qword [r13]
lea rdx, [r13 + 0x10]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [r13]
add rax, qword [rbp]
mov qword [rbp], rax
lea rcx, [rbp + rax + 0x10]
mov eax, 0x2e
mov word [rcx], ax
add qword [rbp], 1
add qword [rbp - 0x10], 8
mov rax, qword [r12 + 0x18]
test rax, rax
je 0x43f1d4
mov rcx, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rcx - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x43f1d4
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov rax, qword [r12 + 8]
mov qword [r12 + 0x18], rbp
test rax, rax
je 0x43f20c
mov rcx, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rcx - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x43f20c
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov qword [r12 + 8], 0
lea r9, str.base64.nim
mov rcx, r12
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
lea rdx, str.ValueError
call fcn.0040da50
mov byte [rsp + 0x56], 0xfc
jmp 0x43e4ec
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov r13, rax
mov rax, qword [0x00499e60]
mov qword [r13], rax
lea rax, str.ValueError
mov qword [r13 + 0x10], rax
jmp 0x43e788
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov r12, rax
mov rax, qword [0x00499e60]
mov qword [r12], rax
lea rax, str.ValueError
mov qword [r12 + 0x10], rax
jmp 0x43ea20
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.0040dd50
mov rax, qword [rsi]
jmp 0x43ea3c
mov rax, qword [rsi]
mov rcx, rbx
lea rdx, [rax - 1]
call fcn.0040dd50
mov rax, qword [rsi]
jmp 0x43e7a4
xor eax, eax
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsi]
cmp rax, rbx
jg 0x43f2f9
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
lea rax, [0x0047d7c0]
mov rdi, rax
mov qword [rsp + 0x30], rax
movzx eax, byte [rsi + rbx + 0x10]
movzx ebp, byte [rdi + rax]
cmp bpl, 0xff
je 0x43fa8a
shl ebp, 2
mov rdi, rbx
add rdi, 1
js 0x4402be
cmp rdi, rbx
jb 0x4402be
mov rax, qword [rsi]
test rdi, rdi
js 0x43fa16
cmp rdi, rax
jl 0x43f351
lea rdx, [rax - 1]
mov rcx, rdi
call fcn.0040dd50
movzx eax, byte [rsi + rdi + 0x10]
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
cmp al, 0xff
je 0x43f819
shr rax, 4
and eax, 0xf
mov rbx, rax
add rdi, 1
jo 0x4402b4
test r14, r14
je 0x43f572
mov rdi, qword [rsp + 0x38]
test rdi, rdi
js 0x43f572
mov rax, qword [r14]
cmp rax, rdi
jle 0x43f581
mov rax, qword [rsp + 0x38]
or ebp, ebx
mov byte [r14 + rax + 0x10], bpl
add rax, 1
mov qword [rsp + 0x38], rax
jno 0x43e6ac
call fcn.0040a060
cmp qword [rsp + 0x38], 0
jns 0x43e6b8
mov rcx, qword [rsp + 0x38]
xor edx, edx
movabs r8, 0x7fffffffffffffff
call fcn.0040dba0
jmp 0x43e6b8
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rax
call fcn.0040dba0
jmp 0x43e3de
mov rax, qword [rsi]
cmp rax, rbx
jg 0x43f412
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
lea rax, [0x0047d7c0]
mov rdi, rax
mov qword [rsp + 0x30], rax
movzx eax, byte [rsi + rbx + 0x10]
movzx ebp, byte [rdi + rax]
cmp bpl, 0xff
je 0x440020
lea eax, [rbp*4]
mov byte [rsp + 0x56], al
mov rbp, rbx
add rbp, 1
js 0x440296
cmp rbp, rbx
jb 0x440296
mov rax, qword [rsi]
test rbp, rbp
js 0x43f594
cmp rbp, rax
jge 0x43f594
movzx eax, byte [rsi + rbp + 0x10]
mov rdi, qword [rsp + 0x30]
movzx edi, byte [rdi + rax]
cmp dil, 0xff
je 0x43fd45
mov eax, edi
mov r12, rdi
shl eax, 4
sar r12, 4
mov byte [rsp + 0x40], al
mov rbx, rbp
add rbx, 1
jo 0x4402a0
mov rax, qword [rsi]
test rbx, rbx
js 0x43fd75
cmp rbx, rax
jl 0x43f4bc
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
movzx eax, byte [rsi + rbx + 0x10]
mov rdi, qword [rsp + 0x30]
movzx eax, byte [rdi + rax]
cmp al, 0xff
je 0x43ffc6
shr rax, 2
and eax, 0x3f
mov rsi, rax
add rbx, 1
jo 0x4402aa
mov rdi, qword [rsp + 0x38]
test rdi, rdi
js 0x43f553
test r14, r14
je 0x43f553
mov rax, qword [r14]
cmp rax, rdi
jle 0x43f562
movzx ebp, byte [rsp + 0x56]
mov rax, qword [rsp + 0x38]
or ebp, r12d
mov byte [r14 + rax + 0x10], bpl
add rax, 1
mov rbx, rax
jo 0x4402d2
mov rax, qword [r14]
test rbx, rbx
js 0x43f529
cmp rbx, rax
jl 0x43f535
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
or sil, byte [rsp + 0x40]
mov byte [r14 + rbx + 0x10], sil
add rbx, 1
mov qword [rsp + 0x38], rbx
jno 0x43e6ac
jmp 0x43f3b9
mov rdx, 0xffffffffffffffff
test r14, r14
je 0x43f566
mov rax, qword [r14]
lea rdx, [rax - 1]
mov rcx, qword [rsp + 0x38]
call fcn.0040dd50
jmp 0x43f4fd
mov rdx, 0xffffffffffffffff
test r14, r14
je 0x43f585
mov rax, qword [r14]
lea rdx, [rax - 1]
mov rcx, qword [rsp + 0x38]
call fcn.0040dd50
jmp 0x43f39e
lea rdx, [rax - 1]
mov rcx, rbp
call fcn.0040dd50
movzx eax, byte [rsi + rbp + 0x10]
mov rdi, qword [rsp + 0x30]
movzx edi, byte [rdi + rax]
cmp dil, 0xff
jne 0x43f482
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov r12, rax
mov rax, qword [0x00499e60]
mov qword [r12], rax
lea rax, str.ValueError
mov qword [r12 + 0x10], rax
test rbp, rbp
js 0x440268
mov rax, qword [rsi]
cmp rbp, rax
jl 0x43f614
lea rdx, [rax - 1]
mov rcx, rbp
call fcn.0040dd50
mov rax, qword [rsi]
cmp rbp, rax
jl 0x43f614
lea rdx, [rax - 1]
mov rcx, rbp
call fcn.0040dd50
movzx ecx, byte [rsi + rbp + 0x10]
call fcn.004020f0
mov rcx, rbp
mov rbx, rax
call fcn.004020f0
mov r13, rax
xor eax, eax
test rbx, rbx
je 0x43f636
mov rax, qword [rbx]
test r13, r13
je 0x43f63f
add rax, qword [r13]
lea rcx, [rax + 0x38]
call fcn.0040cc40
mov r9d, 0x60
movabs rdx, 0x2064696c61766e49
movabs rcx, 0x6620343665736162
mov rdi, rax
mov rax, qword [rax]
lea rax, [rdi + rax + 0x10]
mov qword [rax], rdx
movabs rdx, 0x68632074616d726f
mov qword [rax + 8], rcx
movabs rcx, 0x2072657463617261
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], rcx
mov word [rax + 0x20], r9w
mov rax, qword [rdi]
lea rdx, [rax + 0x21]
mov qword [rdi], rdx
movzx ecx, byte [rsi + rbp + 0x10]
lea rdx, [rax + 0x22]
mov byte [rdi + rax + 0x31], cl
movabs rcx, 0x2064726f282060
mov qword [rdi], rdx
mov qword [rdi + rax + 0x32], rcx
mov rax, qword [rdi]
lea rdx, [rax + 7]
add rax, 0x17
mov qword [rdi], rdx
test rbx, rbx
je 0x43f6f2
lea rcx, [rdi + rax]
mov rax, qword [rbx]
lea rdx, [rbx + 0x10]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rbx]
add rax, qword [rdi]
mov qword [rdi], rax
add rax, 0x10
add rax, rdi
mov r8d, 0x206e
movabs rcx, 0x636f6c2074612029
mov qword [rax], rcx
mov dword [rax + 8], 0x6f697461
mov word [rax + 0xc], r8w
mov byte [rax + 0xe], 0
mov rax, qword [rdi]
lea rdx, [rax + 0xe]
lea rcx, [rdi + rax + 0x1e]
mov qword [rdi], rdx
test r13, r13
je 0x43f74c
mov rax, qword [r13]
lea rdx, [r13 + 0x10]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [r13]
add rax, qword [rdi]
mov qword [rdi], rax
lea rcx, [rdi + rax + 0x10]
mov r13d, 0x2e
mov word [rcx], r13w
add qword [rdi], 1
add qword [rdi - 0x10], 8
mov rax, qword [r12 + 0x18]
test rax, rax
je 0x43f792
mov rcx, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rcx - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x43f792
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov rdx, qword [r12 + 8]
mov qword [r12 + 0x18], rdi
test rdx, rdx
je 0x43f7ca
mov rax, qword [rdx - 0x10]
lea r8, [rdx - 0x10]
sub rax, 8
mov qword [rdx - 0x10], rax
cmp rax, 7
ja 0x43f7ca
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov qword [r12 + 8], 0
mov rcx, r12
lea r9, str.base64.nim
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
lea rdx, str.ValueError
mov r12d, 0xf
call fcn.0040da50
mov byte [rsp + 0x40], 0xf0
jmp 0x43f492
mov qword [rsp + 0x38], 0
xor ebx, ebx
jmp 0x43e66d
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov r12, rax
mov rax, qword [0x00499e60]
mov qword [r12], rax
lea rax, str.ValueError
mov qword [r12 + 0x10], rax
mov rax, qword [rsi]
cmp rdi, rax
jge 0x43fd1c
movzx ecx, byte [rsi + rdi + 0x10]
call fcn.004020f0
mov rcx, rdi
mov r15, rax
call fcn.004020f0
mov r13, rax
xor eax, eax
test r15, r15
je 0x43f872
mov rax, qword [r15]
test r13, r13
je 0x43f87b
add rax, qword [r13]
lea rcx, [rax + 0x38]
call fcn.0040cc40
movabs rdx, 0x2064696c61766e49
movabs rcx, 0x6620343665736162
mov rbx, rax
mov rax, qword [rax]
lea rax, [rbx + rax + 0x10]
mov qword [rax], rdx
movabs rdx, 0x68632074616d726f
mov qword [rax + 8], rcx
movabs rcx, 0x2072657463617261
mov qword [rax + 0x10], rdx
mov edx, 0x60
mov word [rax + 0x20], dx
mov qword [rax + 0x18], rcx
mov rax, qword [rbx]
lea rdx, [rax + 0x21]
mov qword [rbx], rdx
movzx ecx, byte [rsi + rdi + 0x10]
lea rdx, [rax + 0x22]
movabs rsi, 0x2064726f282060
mov byte [rbx + rax + 0x31], cl
mov qword [rbx], rdx
mov qword [rbx + rax + 0x32], rsi
mov rdx, qword [rbx]
lea rax, [rdx + 7]
mov qword [rbx], rax
test r15, r15
je 0x43f925
mov rax, qword [r15]
lea rcx, [rbx + rdx + 0x17]
lea rdx, [r15 + 0x10]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [r15]
add rax, qword [rbx]
mov qword [rbx], rax
movabs rsi, 0x636f6c2074612029
lea rax, [rbx + rax + 0x10]
mov qword [rax], rsi
mov esi, 0x206e
mov dword [rax + 8], 0x6f697461
mov word [rax + 0xc], si
mov byte [rax + 0xe], 0
mov rax, qword [rbx]
lea rdx, [rax + 0xe]
lea rcx, [rbx + rax + 0x1e]
mov qword [rbx], rdx
test r13, r13
je 0x43f97f
mov rax, qword [r13]
lea rdx, [r13 + 0x10]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [r13]
add rax, qword [rbx]
mov qword [rbx], rax
lea rcx, [rbx + rax + 0x10]
mov esi, 0x2e
mov word [rcx], si
add qword [rbx], 1
add qword [rbx - 0x10], 8
mov rax, qword [r12 + 0x18]
test rax, rax
je 0x43f9b4
mov rsi, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rsi - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
jbe 0x43fd04
mov rdx, qword [r12 + 8]
mov qword [r12 + 0x18], rbx
test rdx, rdx
je 0x43f9dd
mov rax, qword [rdx - 0x10]
lea r8, [rdx - 0x10]
sub rax, 8
mov qword [rdx - 0x10], rax
cmp rax, 7
jbe 0x43fcec
lea r9, str.base64.nim
mov rcx, r12
mov qword [r12 + 8], 0
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
lea rdx, str.ValueError
mov ebx, 0xf
call fcn.0040da50
jmp 0x43f371
movabs rcx, 0x8000000000000000
lea rdx, [rax - 1]
call fcn.0040dd50
mov rcx, qword [rsp + 0x30]
movabs rax, 0x8000000000000010
movzx eax, byte [rsi + rax]
movzx eax, byte [rcx + rax]
cmp al, 0xff
jne 0x43f367
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov rcx, rdi
mov r12, rax
mov rax, qword [0x00499e60]
mov qword [r12], rax
lea rax, str.ValueError
mov qword [r12 + 0x10], rax
mov rax, qword [rsi]
lea rdx, [rax - 1]
call fcn.0040dd50
mov rax, qword [rsi]
jmp 0x43fd34
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov r12, rax
mov rax, qword [0x00499e60]
mov qword [r12], rax
lea rax, str.ValueError
mov qword [r12 + 0x10], rax
mov rax, qword [rsi]
cmp rbx, rax
jge 0x43fcc3
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.004020f0
mov rcx, rbx
mov rbp, rax
call fcn.004020f0
mov rdi, rax
xor eax, eax
test rbp, rbp
je 0x43fae4
mov rax, qword [rbp]
test rdi, rdi
je 0x43faec
add rax, qword [rdi]
lea rcx, [rax + 0x38]
call fcn.0040cc40
mov r8d, 0x60
movabs rdx, 0x2064696c61766e49
movabs rcx, 0x6620343665736162
mov r13, rax
mov rax, qword [rax]
lea rax, [r13 + rax + 0x10]
mov qword [rax], rdx
movabs rdx, 0x68632074616d726f
mov qword [rax + 8], rcx
movabs rcx, 0x2072657463617261
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], rcx
mov word [rax + 0x20], r8w
mov rax, qword [r13]
lea rdx, [rax + 0x21]
mov qword [r13], rdx
movzx ecx, byte [rsi + rbx + 0x10]
lea rdx, [rax + 0x22]
mov byte [r13 + rax + 0x31], cl
movabs rcx, 0x2064726f282060
mov qword [r13], rdx
mov qword [r13 + rax + 0x32], rcx
mov rax, qword [r13]
lea rdx, [rax + 7]
add rax, 0x17
mov qword [r13], rdx
test rbp, rbp
je 0x43fbaa
lea rcx, [r13 + rax]
mov rax, qword [rbp]
lea rdx, [rbp + 0x10]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rbp]
add rax, qword [r13]
mov qword [r13], rax
add rax, 0x10
movabs rcx, 0x636f6c2074612029
add rax, r13
mov qword [rax], rcx
mov ecx, 0x206e
mov word [rax + 0xc], cx
mov dword [rax + 8], 0x6f697461
mov byte [rax + 0xe], 0
mov rax, qword [r13]
lea rdx, [rax + 0xe]
lea rcx, [r13 + rax + 0x1e]
mov qword [r13], rdx
test rdi, rdi
je 0x43fc04
mov rax, qword [rdi]
lea rdx, [rdi + 0x10]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rdi]
add rax, qword [r13]
mov qword [r13], rax
lea rcx, [r13 + rax + 0x10]
mov r11d, 0x2e
mov word [rcx], r11w
add qword [r13], 1
add qword [r13 - 0x10], 8
mov rax, qword [r12 + 0x18]
test rax, rax
je 0x43fc38
mov rdi, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rdi - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
jbe 0x43fcab
mov rdx, qword [r12 + 8]
mov qword [r12 + 0x18], r13
test rdx, rdx
je 0x43fc5d
mov rax, qword [rdx - 0x10]
lea r8, [rdx - 0x10]
sub rax, 8
mov qword [rdx - 0x10], rax
cmp rax, 7
jbe 0x43fc96
lea r9, str.base64.nim
mov rcx, r12
mov qword [r12 + 8], 0
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
lea rdx, str.ValueError
mov ebp, 0xfffffffc
call fcn.0040da50
jmp 0x43f31e
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
jmp 0x43fc5d
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
jmp 0x43fc38
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
mov rax, qword [rsi]
cmp rax, rbx
jg 0x43fac1
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
jmp 0x43fac1
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
jmp 0x43f9dd
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
jmp 0x43f9b4
lea rdx, [rax - 1]
mov rcx, rdi
call fcn.0040dd50
mov rax, qword [rsi]
cmp rdi, rax
jl 0x43f850
lea rdx, [rax - 1]
mov rcx, rdi
call fcn.0040dd50
jmp 0x43f850
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov r12, rax
mov rax, qword [0x00499e60]
mov qword [r12], rax
lea rax, str.ValueError
mov qword [r12 + 0x10], rax
jmp 0x43f5ec
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
movzx eax, byte [rsi + rbx + 0x10]
mov rdi, qword [rsp + 0x30]
movzx eax, byte [rdi + rax]
cmp al, 0xff
jne 0x43f4d2
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov rcx, rbx
mov r13, rax
mov rax, qword [0x00499e60]
mov qword [r13], rax
lea rax, str.ValueError
mov qword [r13 + 0x10], rax
mov rax, qword [rsi]
lea rdx, [rax - 1]
call fcn.0040dd50
mov rax, qword [rsi]
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.004020f0
mov rcx, rbx
mov rbp, rax
call fcn.004020f0
mov r15, rax
xor eax, eax
test rbp, rbp
je 0x43fe02
mov rax, qword [rbp]
test r15, r15
je 0x43fe0a
add rax, qword [r15]
lea rcx, [rax + 0x38]
call fcn.0040cc40
movabs rcx, 0x6620343665736162
movabs rdx, 0x2064696c61766e49
mov rdi, rax
mov rax, qword [rax]
lea rax, [rdi + rax + 0x10]
mov qword [rax + 8], rcx
movabs rcx, 0x2072657463617261
mov qword [rax], rdx
movabs rdx, 0x68632074616d726f
mov qword [rax + 0x18], rcx
mov ecx, 0x60
mov qword [rax + 0x10], rdx
mov word [rax + 0x20], cx
mov rax, qword [rdi]
lea rdx, [rax + 0x21]
mov qword [rdi], rdx
movzx ecx, byte [rsi + rbx + 0x10]
lea rdx, [rax + 0x22]
movabs rsi, 0x2064726f282060
mov byte [rdi + rax + 0x31], cl
mov qword [rdi], rdx
mov qword [rdi + rax + 0x32], rsi
mov rax, qword [rdi]
lea rdx, [rax + 7]
add rax, 0x17
mov qword [rdi], rdx
test rbp, rbp
je 0x43febd
lea rcx, [rdi + rax]
mov rax, qword [rbp]
lea rdx, [rbp + 0x10]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rbp]
add rax, qword [rdi]
mov qword [rdi], rax
add rax, 0x10
add rax, rdi
mov edx, 0x206e
movabs rsi, 0x636f6c2074612029
mov word [rax + 0xc], dx
mov qword [rax], rsi
mov dword [rax + 8], 0x6f697461
mov byte [rax + 0xe], 0
mov rax, qword [rdi]
lea rdx, [rax + 0xe]
lea rcx, [rdi + rax + 0x1e]
mov qword [rdi], rdx
test r15, r15
je 0x43ff13
mov rax, qword [r15]
lea rdx, [r15 + 0x10]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [r15]
add rax, qword [rdi]
mov qword [rdi], rax
lea rcx, [rdi + rax + 0x10]
mov r15d, 0x2e
mov word [rcx], r15w
add qword [rdi], 1
add qword [rdi - 0x10], 8
mov rax, qword [r13 + 0x18]
test rax, rax
je 0x43ff58
mov rsi, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rsi - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x43ff58
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov rdx, qword [r13 + 8]
mov qword [r13 + 0x18], rdi
test rdx, rdx
je 0x43ff8e
mov rax, qword [rdx - 0x10]
lea r8, [rdx - 0x10]
sub rax, 8
mov qword [rdx - 0x10], rax
cmp rax, 7
ja 0x43ff8e
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov qword [r13 + 8], 0
mov rcx, r13
mov esi, 0x3f
lea r9, str.base64.nim
mov qword [rsp + 0x20], 0xe9
lea r8, str.decode
lea rdx, str.ValueError
call fcn.0040da50
jmp 0x43f4dc
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov r13, rax
mov rax, qword [0x00499e60]
mov qword [r13], rax
lea rax, str.ValueError
mov qword [r13 + 0x10], rax
mov rax, qword [rsi]
cmp rbx, rax
jl 0x43fddf
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
mov rax, qword [rsi]
cmp rbx, rax
jge 0x43fdd3
jmp 0x43fddf
mov rcx, qword [0x00499cd0]
mov edx, 0x30
call fcn.0040c6d0
mov r12, rax
mov rax, qword [0x00499e60]
mov qword [r12], rax
lea rax, str.ValueError
mov qword [r12 + 0x10], rax
mov rax, qword [rsi]
cmp rbx, rax
jl 0x440073
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
mov rax, qword [rsi]
cmp rbx, rax
jl 0x440073
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
movzx ecx, byte [rsi + rbx + 0x10]
call fcn.004020f0
mov rcx, rbx
mov rbp, rax
call fcn.004020f0
mov rdi, rax
xor eax, eax
test rbp, rbp
je 0x440096
mov rax, qword [rbp]
test rdi, rdi
je 0x44009e
add rax, qword [rdi]
lea rcx, [rax + 0x38]
call fcn.0040cc40
mov r11d, 0x60
movabs rdx, 0x2064696c61766e49
movabs rcx, 0x6620343665736162
mov r13, rax
mov rax, qword [rax]
lea rax, [r13 + rax + 0x10]
mov qword [rax], rdx
movabs rdx, 0x68632074616d726f
mov qword [rax + 8], rcx
movabs rcx, 0x2072657463617261
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], rcx
mov word [rax + 0x20], r11w
mov rax, qword [r13]
lea rdx, [rax + 0x21]
mov qword [r13], rdx
movzx ecx, byte [rsi + rbx + 0x10]
lea rdx, [rax + 0x22]
mov byte [r13 + rax + 0x31], cl
movabs rcx, 0x2064726f282060
mov qword [r13], rdx
mov qword [r13 + rax + 0x32], rcx
mov rdx, qword [r13]
lea rax, [rdx + 7]
mov qword [r13], rax
test rbp, rbp
je 0x440154
mov rax, qword [rbp]
lea rcx, [r13 + rdx + 0x17]
lea rdx, [rbp + 0x10]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rbp]
add rax, qword [r13]
mov qword [r13], rax
lea rax, [r13 + rax + 0x10]
mov r10d, 0x206e
movabs rcx, 0x636f6c2074612029
mov qword [rax], rcx
mov dword [rax + 8], 0x6f697461
mov word [rax + 0xc], r10w
mov byte [rax + 0xe], 0
mov rax, qword [r13]
lea rdx, [rax + 0xe]
lea rcx, [r13 + rax + 0x1e]
mov qword [r13], rdx
test rdi, rdi
je 0x4401b2
mov rax, qword [rdi]
lea rdx, [rdi + 0x10]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rdi]
add rax, qword [r13]
mov qword [r13], rax
lea rcx, [r13 + rax + 0x10]
mov edi, 0x2e
mov word [rcx], di
add qword [r13], 1
add qword [r13 - 0x10], 8
mov rax, qword [r12 + 0x18]
test rax, rax
je 0x4401f7
mov rdi, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rdi - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x4401f7
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov rdx, qword [r12 + 8]
mov qword [r12 + 0x18], r13
test rdx, rdx
je 0x44022f
mov rax, qword [rdx - 0x10]
lea r8, [rdx - 0x10]
sub rax, 8
mov qword [rdx - 0x10], rax
cmp rax, 7
ja 0x44022f
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov qword [r12 + 8], 0
lea r9, str.base64.nim
mov rcx, r12
lea r8, str.decode
mov qword [rsp + 0x20], 0xe9
lea rdx, str.ValueError
call fcn.0040da50
mov byte [rsp + 0x56], 0xfc
jmp 0x43f43f
movabs rcx, 0x8000000000000000
mov rax, qword [rsi]
lea rdx, [rax - 1]
call fcn.0040dd50
mov rax, qword [rsi]
jmp 0x43f608
mov r12d, 1
call fcn.0040a060
jmp 0x43e410
call fcn.0040a060
jmp 0x43f455
call fcn.0040a060
jmp 0x43f49f
call fcn.0040a060
jmp 0x43f4e6
call fcn.0040a060
jmp 0x43f37b
call fcn.0040a060
jmp 0x43f334
call fcn.0040a060
jmp 0x43e44a
call fcn.0040a060
jmp 0x43f51c
call fcn.0040a060
jmp 0x43e538
call fcn.0040a060
jmp 0x43e581
call fcn.0040a060
jmp 0x43e4f6
call fcn.0040a060
jmp 0x43e3c2
call fcn.0040a060
jmp 0x43e67b
call fcn.0040a060
jmp 0x43e635
call fcn.0040a060
jmp 0x43e605