Function at 0x14004a878
Capabilities:
Encode data using base64

Disassembly:
push rbp
sub rsp, 0x150
lea rbp, [rsp + 0x80]
mov qword [rbp + 0xe0], rcx
mov qword [rbp + 0xe8], rdx
mov qword [rbp + 0xf0], r8
mov eax, r9d
mov byte [rbp + 0xf8], al
lea rax, [0x140085aa0]
mov qword [rbp + 0x58], rax
lea rax, str.C:_nim_2.0.0libpure_base64.nim
mov qword [rbp + 0x68], rax
mov qword [rbp + 0x60], 0
mov word [rbp + 0x70], 0
lea rax, [rbp + 0x50]
mov rcx, rax
call sym.nimFrame_34
mov qword [rbp + 0x80], 0
mov qword [rbp + 0x88], 0
mov qword [rbp + 0xc8], 0
mov qword [rbp + 0xb8], 0
mov qword [rbp + 0x60], 0x8f
movzx eax, byte [rbp + 0xf8]
xor eax, 1
test al, al
jne 0x14004a936
lea rax, sym.test.exe_cb64safe__pureZbase5452_u5
mov qword [rbp + 0xc8], rax
mov rax, qword [rbp + 0xc8]
mov qword [rbp + 0xc0], rax
jmp 0x14004a953
nop
lea rax, sym.test.exe_cb64__pureZbase5452_u4
mov qword [rbp + 0xb8], rax
mov rax, qword [rbp + 0xb8]
mov qword [rbp + 0xc0], rax
mov qword [rbp + 0x60], 0x55
mov qword [rbp + 0x60], 0x50
mov qword [rbp + 0x60], 0x55
mov ecx, 0
mov rax, qword [rbp + 0xf0]
imul rax, rax, 4
jno 0x14004a982
mov ecx, 1
mov rdx, rax
lea rax, [rbp + 0x48]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004a9a0
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rcx, qword [rbp + 0x48]
movabs rdx, 0x5555555555555556
mov rax, rcx
imul rdx
mov r8, rdx
sar rcx, 0x3f
mov rdx, rcx
mov rax, r8
sub rax, rdx
mov ecx, 0
add rax, 6
jno 0x14004a9d4
mov ecx, 1
mov rdx, rax
lea rax, [rbp + 0x40]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004a9f2
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp + 0x40]
test rax, rax
jns 0x14004aa1b
mov rax, qword [rbp + 0x40]
movabs r8, 0x7fffffffffffffff
mov edx, 0
mov rcx, rax
call sym.test.exe_raiseRangeErrorI
jmp 0x14004b938
mov rdx, qword [rbp + 0x40]
lea rax, [rbp + 0x80]
mov rcx, rax
call sym.test.exe_setLengthStrV2
mov qword [rbp + 0x60], 0x58
mov rcx, qword [rbp + 0xf0]
movabs rdx, 0x5555555555555556
mov rax, rcx
imul rdx
mov rax, rcx
sar rax, 0x3f
sub rdx, rax
mov rax, rdx
add rax, rax
add rax, rdx
sub rcx, rax
mov rdx, rcx
mov qword [rbp + 0xa0], rdx
mov qword [rbp + 0x60], 0x59
mov ecx, 0
mov rax, qword [rbp + 0xf0]
sub rax, qword [rbp + 0xa0]
jno 0x14004aa8f
mov ecx, 1
mov rdx, rax
lea rax, [rbp + 0x38]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004aaad
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp + 0x38]
mov qword [rbp + 0x98], rax
mov qword [rbp + 0x60], 0x5c
mov qword [rbp + 0xa8], 0
mov qword [rbp + 0x60], 0x5d
mov qword [rbp + 0xb0], 0
mov dword [rbp + 0x94], 0
mov dword [rbp + 0x90], 0
mov qword [rbp + 0x60], 0x6e
mov rax, qword [rbp + 0xa8]
cmp rax, qword [rbp + 0x98]
je 0x14004b075
mov qword [rbp + 0x60], 0x62
cmp qword [rbp + 0xa8], 0
js 0x14004ab30
mov rax, qword [rbp + 0xa8]
cmp rax, qword [rbp + 0xf0]
jl 0x14004ab4f
mov rax, qword [rbp + 0xf0]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xa8]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
mov rdx, qword [rbp + 0xa8]
mov rax, qword [rbp + 0xe8]
add rax, rdx
movzx eax, byte [rax]
movzx eax, al
mov dword [rbp + 0x90], eax
mov qword [rbp + 0x60], 0x63
mov qword [rbp + 0x60], 0x6f
mov eax, dword [rbp + 0x90]
shl eax, 0x10
mov dword [rbp + 0x94], eax
mov ecx, 0
mov rax, qword [rbp + 0xa8]
add rax, 1
jno 0x14004aba2
mov ecx, 1
mov rdx, rax
lea rax, [rbp + 0x30]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004abc0
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp + 0x30]
mov qword [rbp + 0xa8], rax
mov qword [rbp + 0x60], 0x62
cmp qword [rbp + 0xa8], 0
js 0x14004abed
mov rax, qword [rbp + 0xa8]
cmp rax, qword [rbp + 0xf0]
jl 0x14004ac0c
mov rax, qword [rbp + 0xf0]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xa8]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
mov rdx, qword [rbp + 0xa8]
mov rax, qword [rbp + 0xe8]
add rax, rdx
movzx eax, byte [rax]
movzx eax, al
mov dword [rbp + 0x90], eax
mov qword [rbp + 0x60], 0x63
mov qword [rbp + 0x60], 0x70
mov eax, dword [rbp + 0x90]
shl eax, 8
or dword [rbp + 0x94], eax
mov ecx, 0
mov rax, qword [rbp + 0xa8]
add rax, 1
jno 0x14004ac5f
mov ecx, 1
mov rdx, rax
lea rax, [rbp + 0x28]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004ac7d
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp + 0x28]
mov qword [rbp + 0xa8], rax
mov qword [rbp + 0x60], 0x62
cmp qword [rbp + 0xa8], 0
js 0x14004acaa
mov rax, qword [rbp + 0xa8]
cmp rax, qword [rbp + 0xf0]
jl 0x14004acc9
mov rax, qword [rbp + 0xf0]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xa8]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
mov rdx, qword [rbp + 0xa8]
mov rax, qword [rbp + 0xe8]
add rax, rdx
movzx eax, byte [rax]
movzx eax, al
mov dword [rbp + 0x90], eax
mov qword [rbp + 0x60], 0x63
mov qword [rbp + 0x60], 0x71
mov eax, dword [rbp + 0x90]
or dword [rbp + 0x94], eax
mov ecx, 0
mov rax, qword [rbp + 0xa8]
add rax, 1
jno 0x14004ad19
mov ecx, 1
mov rdx, rax
lea rax, [rbp + 0x20]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004ad37
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp + 0x20]
mov qword [rbp + 0xa8], rax
mov qword [rbp + 0x60], 0x67
cmp qword [rbp + 0xb0], 0
js 0x14004ad64
mov rax, qword [rbp + 0x80]
cmp qword [rbp + 0xb0], rax
jl 0x14004ad83
mov rax, qword [rbp + 0x80]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xb0]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
lea rax, [rbp + 0x80]
mov rcx, rax
call sym.nimPrepareStrMutationV2_9
mov qword [rbp + 0x60], 0x72
mov eax, dword [rbp + 0x94]
shr eax, 0x12
mov eax, eax
and eax, 0x3f
mov rdx, rax
mov rax, qword [rbp + 0xc0]
add rax, rdx
mov rcx, qword [rbp + 0x88]
movzx eax, byte [rax]
mov rdx, qword [rbp + 0xb0]
add rdx, rcx
add rdx, 8
mov byte [rdx], al
mov ecx, 0
mov rax, qword [rbp + 0xb0]
add rax, 1
jno 0x14004ade6
mov ecx, 1
mov rdx, rax
lea rax, [rbp + 0x18]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004ae04
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp + 0x18]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0x60], 0x67
cmp qword [rbp + 0xb0], 0
js 0x14004ae31
mov rax, qword [rbp + 0x80]
cmp qword [rbp + 0xb0], rax
jl 0x14004ae50
mov rax, qword [rbp + 0x80]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xb0]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
lea rax, [rbp + 0x80]
mov rcx, rax
call sym.nimPrepareStrMutationV2_9
mov qword [rbp + 0x60], 0x73
mov eax, dword [rbp + 0x94]
shr eax, 0xc
mov eax, eax
and eax, 0x3f
mov rdx, rax
mov rax, qword [rbp + 0xc0]
add rax, rdx
mov rcx, qword [rbp + 0x88]
movzx eax, byte [rax]
mov rdx, qword [rbp + 0xb0]
add rdx, rcx
add rdx, 8
mov byte [rdx], al
mov ecx, 0
mov rax, qword [rbp + 0xb0]
add rax, 1
jno 0x14004aeb3
mov ecx, 1
mov rdx, rax
lea rax, [rbp + 0x10]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004aed1
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp + 0x10]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0x60], 0x67
cmp qword [rbp + 0xb0], 0
js 0x14004aefe
mov rax, qword [rbp + 0x80]
cmp qword [rbp + 0xb0], rax
jl 0x14004af1d
mov rax, qword [rbp + 0x80]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xb0]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
lea rax, [rbp + 0x80]
mov rcx, rax
call sym.nimPrepareStrMutationV2_9
mov qword [rbp + 0x60], 0x74
mov eax, dword [rbp + 0x94]
shr eax, 6
mov eax, eax
and eax, 0x3f
mov rdx, rax
mov rax, qword [rbp + 0xc0]
add rax, rdx
mov rcx, qword [rbp + 0x88]
movzx eax, byte [rax]
mov rdx, qword [rbp + 0xb0]
add rdx, rcx
add rdx, 8
mov byte [rdx], al
mov ecx, 0
mov rax, qword [rbp + 0xb0]
add rax, 1
jno 0x14004af80
mov ecx, 1
mov rdx, rax
lea rax, [rbp + 8]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004af9e
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp + 8]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0x60], 0x67
cmp qword [rbp + 0xb0], 0
js 0x14004afcb
mov rax, qword [rbp + 0x80]
cmp qword [rbp + 0xb0], rax
jl 0x14004afea
mov rax, qword [rbp + 0x80]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xb0]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
lea rax, [rbp + 0x80]
mov rcx, rax
call sym.nimPrepareStrMutationV2_9
mov qword [rbp + 0x60], 0x75
mov eax, dword [rbp + 0x94]
and eax, 0x3f
mov rdx, rax
mov rax, qword [rbp + 0xc0]
add rax, rdx
mov rcx, qword [rbp + 0x88]
movzx eax, byte [rax]
mov rdx, qword [rbp + 0xb0]
add rdx, rcx
add rdx, 8
mov byte [rdx], al
mov ecx, 0
mov rax, qword [rbp + 0xb0]
add rax, 1
jno 0x14004b048
mov ecx, 1
mov rdx, rax
mov rax, rbp
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004b065
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp]
mov qword [rbp + 0xb0], rax
jmp 0x14004aafa
nop
mov qword [rbp + 0x60], 0x77
cmp qword [rbp + 0xa0], 1
jne 0x14004b448
mov qword [rbp + 0x60], 0x62
cmp qword [rbp + 0xa8], 0
js 0x14004b0ae
mov rax, qword [rbp + 0xa8]
cmp rax, qword [rbp + 0xf0]
jl 0x14004b0cd
mov rax, qword [rbp + 0xf0]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xa8]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
mov rdx, qword [rbp + 0xa8]
mov rax, qword [rbp + 0xe8]
add rax, rdx
movzx eax, byte [rax]
movzx eax, al
mov dword [rbp + 0x90], eax
mov qword [rbp + 0x60], 0x63
mov qword [rbp + 0x60], 0x78
mov eax, dword [rbp + 0x90]
shl eax, 0x10
mov dword [rbp + 0x94], eax
mov ecx, 0
mov rax, qword [rbp + 0xa8]
add rax, 1
jno 0x14004b120
mov ecx, 1
mov rdx, rax
lea rax, [rbp - 8]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004b13e
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp - 8]
mov qword [rbp + 0xa8], rax
mov qword [rbp + 0x60], 0x67
cmp qword [rbp + 0xb0], 0
js 0x14004b16b
mov rax, qword [rbp + 0x80]
cmp qword [rbp + 0xb0], rax
jl 0x14004b18a
mov rax, qword [rbp + 0x80]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xb0]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
lea rax, [rbp + 0x80]
mov rcx, rax
call sym.nimPrepareStrMutationV2_9
mov qword [rbp + 0x60], 0x79
mov eax, dword [rbp + 0x94]
shr eax, 0x12
mov eax, eax
and eax, 0x3f
mov rdx, rax
mov rax, qword [rbp + 0xc0]
add rax, rdx
mov rcx, qword [rbp + 0x88]
movzx eax, byte [rax]
mov rdx, qword [rbp + 0xb0]
add rdx, rcx
add rdx, 8
mov byte [rdx], al
mov ecx, 0
mov rax, qword [rbp + 0xb0]
add rax, 1
jno 0x14004b1ed
mov ecx, 1
mov rdx, rax
lea rax, [rbp - 0x10]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004b20b
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp - 0x10]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0x60], 0x67
cmp qword [rbp + 0xb0], 0
js 0x14004b238
mov rax, qword [rbp + 0x80]
cmp qword [rbp + 0xb0], rax
jl 0x14004b257
mov rax, qword [rbp + 0x80]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xb0]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
lea rax, [rbp + 0x80]
mov rcx, rax
call sym.nimPrepareStrMutationV2_9
mov qword [rbp + 0x60], 0x7a
mov eax, dword [rbp + 0x94]
shr eax, 0xc
mov eax, eax
and eax, 0x3f
mov rdx, rax
mov rax, qword [rbp + 0xc0]
add rax, rdx
mov rcx, qword [rbp + 0x88]
movzx eax, byte [rax]
mov rdx, qword [rbp + 0xb0]
add rdx, rcx
add rdx, 8
mov byte [rdx], al
mov ecx, 0
mov rax, qword [rbp + 0xb0]
add rax, 1
jno 0x14004b2ba
mov ecx, 1
mov rdx, rax
lea rax, [rbp - 0x18]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004b2d8
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp - 0x18]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0x60], 0x6b
cmp qword [rbp + 0xb0], 0
js 0x14004b305
mov rax, qword [rbp + 0x80]
cmp qword [rbp + 0xb0], rax
jl 0x14004b324
mov rax, qword [rbp + 0x80]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xb0]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
lea rax, [rbp + 0x80]
mov rcx, rax
call sym.nimPrepareStrMutationV2_9
mov qword [rbp + 0x60], 0x7b
mov rdx, qword [rbp + 0x88]
mov rax, qword [rbp + 0xb0]
add rax, rdx
add rax, 8
mov byte [rax], 0x3d
mov ecx, 0
mov rax, qword [rbp + 0xb0]
add rax, 1
jno 0x14004b36a
mov ecx, 1
mov rdx, rax
lea rax, [rbp - 0x20]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004b388
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp - 0x20]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0x60], 0x6b
cmp qword [rbp + 0xb0], 0
js 0x14004b3b5
mov rax, qword [rbp + 0x80]
cmp qword [rbp + 0xb0], rax
jl 0x14004b3d4
mov rax, qword [rbp + 0x80]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xb0]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
lea rax, [rbp + 0x80]
mov rcx, rax
call sym.nimPrepareStrMutationV2_9
mov qword [rbp + 0x60], 0x7c
mov rdx, qword [rbp + 0x88]
mov rax, qword [rbp + 0xb0]
add rax, rdx
add rax, 8
mov byte [rax], 0x3d
mov ecx, 0
mov rax, qword [rbp + 0xb0]
add rax, 1
jno 0x14004b41a
mov ecx, 1
mov rdx, rax
lea rax, [rbp - 0x28]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004b438
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp - 0x28]
mov qword [rbp + 0xb0], rax
jmp 0x14004b8f0
nop
mov qword [rbp + 0x60], 0x7e
cmp qword [rbp + 0xa0], 2
jne 0x14004b8ef
mov qword [rbp + 0x60], 0x62
cmp qword [rbp + 0xa8], 0
js 0x14004b481
mov rax, qword [rbp + 0xa8]
cmp rax, qword [rbp + 0xf0]
jl 0x14004b4a0
mov rax, qword [rbp + 0xf0]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xa8]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
mov rdx, qword [rbp + 0xa8]
mov rax, qword [rbp + 0xe8]
add rax, rdx
movzx eax, byte [rax]
movzx eax, al
mov dword [rbp + 0x90], eax
mov qword [rbp + 0x60], 0x63
mov qword [rbp + 0x60], 0x7f
mov eax, dword [rbp + 0x90]
shl eax, 0x10
mov dword [rbp + 0x94], eax
mov ecx, 0
mov rax, qword [rbp + 0xa8]
add rax, 1
jno 0x14004b4f3
mov ecx, 1
mov rdx, rax
lea rax, [rbp - 0x30]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004b511
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp - 0x30]
mov qword [rbp + 0xa8], rax
mov qword [rbp + 0x60], 0x62
cmp qword [rbp + 0xa8], 0
js 0x14004b53e
mov rax, qword [rbp + 0xa8]
cmp rax, qword [rbp + 0xf0]
jl 0x14004b55d
mov rax, qword [rbp + 0xf0]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xa8]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
mov rdx, qword [rbp + 0xa8]
mov rax, qword [rbp + 0xe8]
add rax, rdx
movzx eax, byte [rax]
movzx eax, al
mov dword [rbp + 0x90], eax
mov qword [rbp + 0x60], 0x63
mov qword [rbp + 0x60], pe_nt_image_headers64
mov eax, dword [rbp + 0x90]
shl eax, 8
or dword [rbp + 0x94], eax
mov ecx, 0
mov rax, qword [rbp + 0xa8]
add rax, 1
jno 0x14004b5b0
mov ecx, 1
mov rdx, rax
lea rax, [rbp - 0x38]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004b5ce
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp - 0x38]
mov qword [rbp + 0xa8], rax
mov qword [rbp + 0x60], 0x67
cmp qword [rbp + 0xb0], 0
js 0x14004b5fb
mov rax, qword [rbp + 0x80]
cmp qword [rbp + 0xb0], rax
jl 0x14004b61a
mov rax, qword [rbp + 0x80]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xb0]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
lea rax, [rbp + 0x80]
mov rcx, rax
call sym.nimPrepareStrMutationV2_9
mov qword [rbp + 0x60], 0x81
mov eax, dword [rbp + 0x94]
shr eax, 0x12
mov eax, eax
and eax, 0x3f
mov rdx, rax
mov rax, qword [rbp + 0xc0]
add rax, rdx
mov rcx, qword [rbp + 0x88]
movzx eax, byte [rax]
mov rdx, qword [rbp + 0xb0]
add rdx, rcx
add rdx, 8
mov byte [rdx], al
mov ecx, 0
mov rax, qword [rbp + 0xb0]
add rax, 1
jno 0x14004b67d
mov ecx, 1
mov rdx, rax
lea rax, [rbp - 0x40]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004b69b
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp - 0x40]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0x60], 0x67
cmp qword [rbp + 0xb0], 0
js 0x14004b6c8
mov rax, qword [rbp + 0x80]
cmp qword [rbp + 0xb0], rax
jl 0x14004b6e7
mov rax, qword [rbp + 0x80]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xb0]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
lea rax, [rbp + 0x80]
mov rcx, rax
call sym.nimPrepareStrMutationV2_9
mov qword [rbp + 0x60], 0x82
mov eax, dword [rbp + 0x94]
shr eax, 0xc
mov eax, eax
and eax, 0x3f
mov rdx, rax
mov rax, qword [rbp + 0xc0]
add rax, rdx
mov rcx, qword [rbp + 0x88]
movzx eax, byte [rax]
mov rdx, qword [rbp + 0xb0]
add rdx, rcx
add rdx, 8
mov byte [rdx], al
mov ecx, 0
mov rax, qword [rbp + 0xb0]
add rax, 1
jno 0x14004b74a
mov ecx, 1
mov rdx, rax
lea rax, [rbp - 0x48]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004b768
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp - 0x48]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0x60], 0x67
cmp qword [rbp + 0xb0], 0
js 0x14004b795
mov rax, qword [rbp + 0x80]
cmp qword [rbp + 0xb0], rax
jl 0x14004b7b4
mov rax, qword [rbp + 0x80]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xb0]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
lea rax, [rbp + 0x80]
mov rcx, rax
call sym.nimPrepareStrMutationV2_9
mov qword [rbp + 0x60], 0x83
mov eax, dword [rbp + 0x94]
shr eax, 6
mov eax, eax
and eax, 0x3f
mov rdx, rax
mov rax, qword [rbp + 0xc0]
add rax, rdx
mov rcx, qword [rbp + 0x88]
movzx eax, byte [rax]
mov rdx, qword [rbp + 0xb0]
add rdx, rcx
add rdx, 8
mov byte [rdx], al
mov ecx, 0
mov rax, qword [rbp + 0xb0]
add rax, 1
jno 0x14004b817
mov ecx, 1
mov rdx, rax
lea rax, [rbp - 0x50]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004b835
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp - 0x50]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0x60], 0x6b
cmp qword [rbp + 0xb0], 0
js 0x14004b862
mov rax, qword [rbp + 0x80]
cmp qword [rbp + 0xb0], rax
jl 0x14004b881
mov rax, qword [rbp + 0x80]
lea rdx, [rax - 1]
mov rax, qword [rbp + 0xb0]
mov rcx, rax
call sym.test.exe_raiseIndexError2
jmp 0x14004b938
lea rax, [rbp + 0x80]
mov rcx, rax
call sym.nimPrepareStrMutationV2_9
mov qword [rbp + 0x60], 0x84
mov rdx, qword [rbp + 0x88]
mov rax, qword [rbp + 0xb0]
add rax, rdx
add rax, 8
mov byte [rax], 0x3d
mov ecx, 0
mov rax, qword [rbp + 0xb0]
add rax, 1
jno 0x14004b8c7
mov ecx, 1
mov rdx, rax
lea rax, [rbp - 0x58]
mov qword [rax], rdx
mov rax, rcx
and eax, 1
test al, al
je 0x14004b8e2
call sym.test.exe_raiseOverflow
jmp 0x14004b938
mov rax, qword [rbp - 0x58]
mov qword [rbp + 0xb0], rax
jmp 0x14004b8f0
nop
mov qword [rbp + 0x60], 0x86
cmp qword [rbp + 0xb0], 0
jns 0x14004b922
mov rax, qword [rbp + 0xb0]
movabs r8, 0x7fffffffffffffff
mov edx, 0
mov rcx, rax
call sym.test.exe_raiseRangeErrorI
jmp 0x14004b938
mov rdx, qword [rbp + 0xb0]
lea rax, [rbp + 0x80]
mov rcx, rax
call sym.test.exe_setLengthStrV2
call sym.popFrame_34
mov rcx, qword [rbp + 0xe0]
mov rax, qword [rbp + 0x80]
mov rdx, qword [rbp + 0x88]
mov qword [rcx], rax
mov qword [rcx + 8], rdx
mov rax, qword [rbp + 0xe0]
add rsp, 0x150
pop rbp
ret