Function at 0x4443b0
Capabilities:
Encode data using base64

Disassembly:
push ebp
push edi
push esi
mov esi, edx
push ebx
sub esp, 0x4c
cmp byte [esp + 0x60], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
je 0x444638
imul ecx, edx, 4
jo 0x4445e8
mov eax, ecx
mov ebx, 0x55555556
sar ecx, 0x1f
imul ebx
sub edx, ecx
add edx, 6
js 0x4445f0
lea ecx, [esp + 0x38]
mov edi, esi
mov dword [esp + 0x28], ecx
call sym._setLengthStrV2_8
mov eax, esi
imul ebx
mov eax, esi
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx*2]
sub edi, eax
mov eax, esi
sub eax, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], eax
seto al
movzx eax, al
mov edi, eax
jo 0x4445e8
mov ebp, dword [esp + 0x28]
xor ebx, ebx
cmp dword [esp + 0x24], edi
je 0x444a00
cmp esi, edi
jle 0x4449b8
mov eax, dword [esp + 0x20]
mov edx, edi
movzx eax, byte [eax + edi]
shl eax, 0x10
add edx, 1
js 0x4445e8
cmp edx, edi
jb 0x4445e8
test edx, edx
js 0x4449d0
cmp edx, esi
jge 0x4449d0
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + edx]
lea edx, [edi + 2]
shl ecx, 8
cmp esi, edx
jle 0x4449e8
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + edi + 2]
add edi, 3
or edx, ecx
or edx, eax
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x4449a0
cmp ebx, eax
jge 0x4449a0
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4444d4
test dword [eax], 0x40000000
je 0x4444d4
mov ecx, ebp
mov dword [esp + 0x28], edx
call sym._nimPrepareStrMutationImpl__system_u2414_4
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov ecx, edx
shr ecx, 0x12
movzx ecx, byte [ecx + 0x4e0900]
mov byte [eax + ebx + 4], cl
add ebx, 1
mov ecx, ebx
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x444840
cmp ebx, eax
jge 0x444860
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x444526
test dword [eax], 0x40000000
je 0x444526
mov ecx, ebp
mov dword [esp + 0x28], edx
call sym._nimPrepareStrMutationImpl__system_u2414_4
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov ecx, edx
shr ecx, 0xc
and ecx, 0x3f
movzx ecx, byte [ecx + 0x4e0900]
mov byte [eax + ebx + 4], cl
add ebx, 1
mov ecx, ebx
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x444840
cmp ebx, eax
jge 0x444860
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x44457b
test dword [eax], 0x40000000
je 0x44457b
mov ecx, ebp
mov dword [esp + 0x28], edx
call sym._nimPrepareStrMutationImpl__system_u2414_4
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov ecx, edx
shr ecx, 6
and ecx, 0x3f
movzx ecx, byte [ecx + 0x4e0900]
mov byte [eax + ebx + 4], cl
add ebx, 1
mov ecx, ebx
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x444840
cmp ebx, eax
jge 0x444860
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4445cc
test dword [eax], 0x40000000
je 0x4445cc
mov ecx, ebp
mov dword [esp + 0x28], edx
call sym._nimPrepareStrMutationImpl__system_u2414_4
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
and edx, 0x3f
movzx edx, byte [edx + 0x4e0900]
mov byte [eax + ebx + 4], dl
add ebx, 1
jno 0x444437
lea esi, [esi]
nop
call sym._raiseOverflow
jmp 0x44461f
mov dword [esp], edx
sar edx, 0x1f
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 4], edx
call sym._raiseRangeErrorI
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret 4
imul ecx, edx, 4
jo 0x4445e8
mov eax, ecx
mov ebx, 0x55555556
sar ecx, 0x1f
imul ebx
sub edx, ecx
add edx, 6
js 0x4445f0
lea ecx, [esp + 0x38]
mov edi, esi
mov dword [esp + 0x28], ecx
call sym._setLengthStrV2_8
mov eax, esi
imul ebx
mov eax, esi
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx*2]
sub edi, eax
mov eax, esi
sub eax, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], eax
seto al
movzx eax, al
mov edi, eax
jo 0x4445e8
mov ebp, dword [esp + 0x28]
xor ebx, ebx
cmp dword [esp + 0x24], edi
je 0x444864
cmp esi, edi
jle 0x4449b8
mov eax, dword [esp + 0x20]
mov edx, edi
movzx eax, byte [eax + edi]
shl eax, 0x10
add edx, 1
js 0x4445e8
cmp edx, edi
jb 0x4445e8
test edx, edx
js 0x4449d0
cmp edx, esi
jge 0x4449d0
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + edx]
lea edx, [edi + 2]
shl ecx, 8
cmp edx, esi
jge 0x4449e8
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + edi + 2]
add edi, 3
or edx, ecx
or edx, eax
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x4449a0
cmp eax, ebx
jle 0x4449a0
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x44472c
test dword [eax], 0x40000000
je 0x44472c
mov ecx, ebp
mov dword [esp + 0x28], edx
call sym._nimPrepareStrMutationImpl__system_u2414_4
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov ecx, edx
shr ecx, 0x12
movzx ecx, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__pkD]
mov byte [eax + ebx + 4], cl
add ebx, 1
mov ecx, ebx
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x444840
cmp eax, ebx
jle 0x444860
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x44477e
test dword [eax], 0x40000000
je 0x44477e
mov ecx, ebp
mov dword [esp + 0x28], edx
call sym._nimPrepareStrMutationImpl__system_u2414_4
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov ecx, edx
shr ecx, 0xc
and ecx, 0x3f
movzx ecx, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__pkD]
mov byte [eax + ebx + 4], cl
add ebx, 1
mov ecx, ebx
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x444840
cmp ebx, eax
jge 0x444860
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4447d3
test dword [eax], 0x40000000
je 0x4447d3
mov ecx, ebp
mov dword [esp + 0x28], edx
call sym._nimPrepareStrMutationImpl__system_u2414_4
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov ecx, edx
shr ecx, 6
and ecx, 0x3f
movzx ecx, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__pkD]
mov byte [eax + ebx + 4], cl
add ebx, 1
mov ecx, ebx
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x444840
cmp eax, ebx
jle 0x444860
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x444820
test dword [eax], 0x40000000
je 0x444820
mov ecx, ebp
mov dword [esp + 0x28], edx
call sym._nimPrepareStrMutationImpl__system_u2414_4
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
and edx, 0x3f
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__pkD]
mov byte [eax + ebx + 4], dl
add ebx, 1
jno 0x44468f
jmp 0x4445e8
mov edx, 0x80000000
sub eax, 1
mov dword [esp], edx
mov dword [esp + 4], eax
call sym._raiseIndexError2
jmp 0x44461f
mov edx, ecx
jmp 0x444845
cmp dword [esp + 0x2c], 1
mov ecx, ebp
je 0x444c78
cmp dword [esp + 0x2c], 2
jne 0x444b65
cmp esi, dword [esp + 0x24]
jle 0x444d60
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
movzx edx, byte [eax + edi]
mov eax, edi
add eax, 1
js 0x4445e8
cmp eax, edi
jb 0x4445e8
test eax, eax
js 0x444dc0
cmp esi, eax
jle 0x444dc0
mov eax, dword [esp + 0x20]
movzx esi, byte [eax + edi + 1]
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x4449a0
cmp ebx, eax
jge 0x4449a0
movzx eax, dl
mov edx, esi
mov dword [esp + 0x20], ebp
movzx esi, dl
shl eax, 0x10
shl esi, 8
or esi, eax
mov eax, ebp
call sym._nimPrepareStrMutationV2
mov eax, esi
shr eax, 0x12
movzx edx, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__pkD]
mov eax, dword [esp + 0x3c]
mov byte [eax + ebx + 4], dl
add ebx, 1
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x4449a0
cmp ebx, eax
mov ecx, dword [esp + 0x20]
jge 0x4449a0
mov eax, ecx
mov dword [esp + 0x20], ecx
call sym._nimPrepareStrMutationV2
mov eax, esi
shr eax, 0xc
and eax, 0x3f
movzx edx, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__pkD]
mov eax, dword [esp + 0x3c]
mov byte [eax + ebx + 4], dl
add ebx, 1
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x4449a0
cmp ebx, eax
mov ecx, dword [esp + 0x20]
jge 0x4449a0
mov eax, ecx
mov dword [esp + 0x20], ecx
call sym._nimPrepareStrMutationV2
mov eax, esi
shr eax, 6
and eax, 0x3f
movzx edx, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__pkD]
mov eax, dword [esp + 0x3c]
mov byte [eax + ebx + 4], dl
add ebx, 1
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x4449a0
cmp ebx, eax
mov ecx, dword [esp + 0x20]
jl 0x444b44
lea esi, [esi]
sub eax, 1
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._raiseIndexError2
jmp 0x44461f
sub esi, 1
mov dword [esp], edi
mov dword [esp + 4], esi
call sym._raiseIndexError2
jmp 0x44461f
sub esi, 1
mov dword [esp], edx
mov dword [esp + 4], esi
call sym._raiseIndexError2
jmp 0x44461f
sub esi, 1
mov dword [esp], edx
mov dword [esp + 4], esi
call sym._raiseIndexError2
jmp 0x44461f
cmp dword [esp + 0x2c], 1
mov ecx, ebp
je 0x444b79
cmp dword [esp + 0x2c], 2
jne 0x444b65
cmp esi, dword [esp + 0x24]
jle 0x444d60
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
movzx edx, byte [eax + edi]
mov eax, edi
add eax, 1
js 0x4445e8
cmp eax, edi
jb 0x4445e8
test eax, eax
js 0x444dc0
cmp eax, esi
jge 0x444dc0
mov eax, dword [esp + 0x20]
movzx esi, byte [eax + edi + 1]
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x4449a0
cmp eax, ebx
jle 0x4449a0
movzx eax, dl
mov edx, esi
mov dword [esp + 0x20], ebp
movzx esi, dl
shl eax, 0x10
shl esi, 8
or esi, eax
mov eax, ebp
call sym._nimPrepareStrMutationV2
mov eax, esi
shr eax, 0x12
movzx edx, byte [eax + 0x4e0900]
mov eax, dword [esp + 0x3c]
mov byte [eax + ebx + 4], dl
add ebx, 1
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x4449a0
cmp eax, ebx
mov ecx, dword [esp + 0x20]
jle 0x4449a0
mov eax, ecx
mov dword [esp + 0x20], ecx
call sym._nimPrepareStrMutationV2
mov eax, esi
shr eax, 0xc
and eax, 0x3f
movzx edx, byte [eax + 0x4e0900]
mov eax, dword [esp + 0x3c]
mov byte [eax + ebx + 4], dl
add ebx, 1
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x4449a0
cmp ebx, eax
mov ecx, dword [esp + 0x20]
jge 0x4449a0
mov eax, ecx
mov dword [esp + 0x20], ecx
call sym._nimPrepareStrMutationV2
mov eax, esi
shr eax, 6
and eax, 0x3f
movzx edx, byte [eax + 0x4e0900]
mov eax, dword [esp + 0x3c]
mov byte [eax + ebx + 4], dl
add ebx, 1
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x4449a0
cmp eax, ebx
mov ecx, dword [esp + 0x20]
jle 0x4449a0
mov eax, ecx
mov dword [esp + 0x20], ecx
call sym._nimPrepareStrMutationV2
mov eax, dword [esp + 0x3c]
mov byte [eax + ebx + 4], 0x3d
add ebx, 1
jo 0x4445e8
mov ecx, dword [esp + 0x20]
test ebx, ebx
js 0x444d78
mov edx, ebx
call sym._setLengthStrV2_8
jmp 0x44461f
cmp esi, dword [esp + 0x24]
jle 0x444d60
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
movzx esi, byte [eax + edi]
mov eax, edi
add eax, 1
js 0x4445e8
cmp eax, edi
jb 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x4449a0
cmp eax, ebx
jle 0x4449a0
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x444bd7
test dword [edx], 0x40000000
je 0x444bd7
mov dword [esp + 0x20], ebp
call sym._nimPrepareStrMutationImpl__system_u2414_4
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov eax, esi
movzx eax, al
mov esi, eax
shr eax, 2
movzx eax, byte [eax + 0x4e0900]
shl esi, 0x10
mov byte [edx + ebx + 4], al
add ebx, 1
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x4449a0
cmp ebx, eax
jge 0x4449a0
mov eax, ecx
mov dword [esp + 0x20], ecx
call sym._nimPrepareStrMutationV2
mov eax, esi
shr eax, 0xc
and eax, 0x3f
movzx edx, byte [eax + 0x4e0900]
mov eax, dword [esp + 0x3c]
mov byte [eax + ebx + 4], dl
add ebx, 1
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x4449a0
cmp eax, ebx
mov ecx, dword [esp + 0x20]
jle 0x4449a0
mov eax, ecx
mov dword [esp + 0x20], ecx
call sym._nimPrepareStrMutationV2
mov eax, dword [esp + 0x3c]
mov byte [eax + ebx + 4], 0x3d
add ebx, 1
jno 0x444988
jmp 0x4445e8
cmp esi, dword [esp + 0x24]
jle 0x444d60
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, esi
movzx eax, byte [eax + esi]
add edx, 1
js 0x4445e8
cmp edx, esi
jb 0x4445e8
mov edx, dword [esp + 0x38]
test ebx, ebx
js 0x444dac
cmp ebx, edx
jge 0x444dac
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x444cdf
test dword [edx], 0x40000000
je 0x444cdf
mov byte [esp + 0x24], al
mov dword [esp + 0x20], ebp
call sym._nimPrepareStrMutationImpl__system_u2414_4
mov edx, dword [esp + 0x3c]
movzx eax, byte [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov esi, eax
shr eax, 2
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__pkD]
shl esi, 0x10
mov byte [edx + ebx + 4], al
add ebx, 1
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x4449a0
cmp ebx, eax
jge 0x4449a0
mov eax, ecx
mov dword [esp + 0x20], ecx
call sym._nimPrepareStrMutationV2
mov eax, esi
shr eax, 0xc
and eax, 0x3f
movzx edx, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__pkD]
mov eax, dword [esp + 0x3c]
mov byte [eax + ebx + 4], dl
add ebx, 1
jo 0x4445e8
mov eax, dword [esp + 0x38]
test ebx, ebx
js 0x4449a0
cmp ebx, eax
mov ecx, dword [esp + 0x20]
jge 0x4449a0
jmp 0x444c4f
mov eax, dword [esp + 0x24]
sub esi, 1
mov dword [esp + 4], esi
mov dword [esp], eax
call sym._raiseIndexError2
jmp 0x44461f
mov dword [esp], ebx
sar ebx, 0x1f
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 4], ebx
call sym._raiseRangeErrorI
jmp 0x44461f
sub edx, 1
mov dword [esp], ebx
mov dword [esp + 4], edx
call sym._raiseIndexError2
jmp 0x44461f
sub esi, 1
mov dword [esp], eax
mov dword [esp + 4], esi
call sym._raiseIndexError2
jmp 0x44461f