Function at 0x413eb4
Capabilities:
Encode data using base64

Disassembly:
push ebp
lea eax, [edx*4]
mov ebp, esp
push edi
push esi
push ebx
mov ebx, edx
sub esp, 0x6c
cmp byte [ebp + 8], 0
mov dword [ebp - 0x50], edx
fld dword [0x44e7e0]
fimul dword [ebp - 0x50]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], eax
fild dword [ebp - 0x50]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
jne 0x413f1c
fxch st(1)
fucomi st(1)
jp 0x413efb
je 0x4143b1
fld st(0)
fabs
fxch st(2)
fsubrp st(1)
fabs
fmul dword [0x44e7e4]
fxch st(1)
fcompi st(1)
fstp st(0)
jae 0x4143b5
jmp 0x41475b
fxch st(1)
fucomi st(1)
jp 0x413f24
je 0x413f42
fld st(0)
fabs
fxch st(2)
fsubrp st(1)
fabs
fmul dword [0x44e7e4]
fxch st(1)
fcompi st(1)
fstp st(0)
jb 0x41475b
jmp 0x413f46
fstp st(0)
fstp st(0)
cdq
mov esi, 3
lea ecx, [ebp - 0x40]
idiv esi
mov edx, 6
call fcn.00413e80
test al, al
jne 0x41475b
mov edx, dword [ebp - 0x40]
test edx, edx
js 0x4143d9
lea ecx, [ebp - 0x20]
call fcn.004065f0
mov eax, ebx
cdq
idiv esi
mov eax, ebx
sub eax, edx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x58], eax
xor eax, ebx
xor edx, dword [ebp - 0x58]
not eax
or eax, edx
jns 0x41475b
xor esi, esi
xor edi, edi
cmp edi, dword [ebp - 0x58]
jne 0x413fac
cmp dword [ebp - 0x54], 1
jne 0x414177
jmp 0x414186
test edi, edi
js 0x414730
cmp ebx, edi
jle 0x414730
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x3c]
mov edx, 1
movzx eax, byte [eax + edi]
shl eax, 0x10
mov dword [ebp - 0x50], eax
mov eax, edi
call fcn.00413e80
test al, al
jne 0x41475b
mov eax, dword [ebp - 0x3c]
test eax, eax
js 0x4144aa
cmp eax, ebx
jge 0x4144aa
mov edi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x38]
mov edx, 1
movzx edi, byte [edi + eax]
shl edi, 8
call fcn.00413e80
test al, al
jne 0x41475b
mov eax, dword [ebp - 0x38]
test eax, eax
js 0x4144aa
cmp eax, ebx
jge 0x4144aa
mov ecx, dword [ebp - 0x4c]
movzx edx, byte [ecx + eax]
lea ecx, [ebp - 0x34]
or edx, edi
or edx, dword [ebp - 0x50]
mov dword [ebp - 0x50], edx
mov edx, 1
call fcn.00413e80
test al, al
jne 0x41475b
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp esi, eax
jge 0x414835
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x30]
shr eax, 0x12
mov dl, byte [eax + 0x44e7a0]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp esi, eax
jge 0x414835
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x2c]
shr eax, 0xc
and eax, 0x3f
mov dl, byte [eax + 0x44e7a0]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp esi, eax
jge 0x414835
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x28]
shr eax, 6
and eax, 0x3f
mov dl, byte [eax + 0x44e7a0]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp esi, eax
jge 0x414835
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x24]
and eax, 0x3f
mov dl, byte [eax + 0x44e7a0]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov esi, dword [ebp - 0x24]
jmp 0x413f98
cmp dword [ebp - 0x54], 2
jne 0x4148b8
jmp 0x414278
test edi, edi
js 0x414730
cmp ebx, edi
jle 0x414730
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x34]
mov edx, 1
movzx ebx, byte [eax + edi]
mov eax, edi
call fcn.00413e80
test al, al
jne 0x41475b
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp esi, eax
jge 0x414835
shl ebx, 0x10
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, ebx
lea ecx, [ebp - 0x30]
shr eax, 0x12
mov dl, byte [eax + 0x44e7a0]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp esi, eax
jge 0x414835
shr ebx, 0xc
lea eax, [ebp - 0x20]
call fcn.00413e9d
and ebx, 0x3f
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x2c]
mov dl, byte [ebx + 0x44e7a0]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
test ebx, ebx
js 0x41487f
cmp ebx, eax
jge 0x41487f
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x28]
mov edx, 1
mov byte [eax + ebx + 4], 0x3d
mov eax, ebx
jmp 0x414864
test edi, edi
js 0x414730
cmp ebx, edi
jle 0x414730
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x38]
mov edx, 1
mov al, byte [eax + edi]
mov byte [ebp - 0x50], al
mov eax, edi
call fcn.00413e80
test al, al
jne 0x41475b
mov eax, dword [ebp - 0x38]
test eax, eax
js 0x4144aa
cmp ebx, eax
jle 0x4144aa
mov edi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x34]
mov edx, 1
movzx ebx, byte [edi + eax]
call fcn.00413e80
test al, al
jne 0x41475b
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp esi, eax
jge 0x414835
movzx eax, byte [ebp - 0x50]
shl ebx, 8
shl eax, 0x10
or ebx, eax
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, ebx
lea ecx, [ebp - 0x30]
shr eax, 0x12
mov dl, byte [eax + 0x44e7a0]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp eax, esi
jle 0x414835
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, ebx
lea ecx, [ebp - 0x2c]
shr eax, 0xc
and eax, 0x3f
mov dl, byte [eax + 0x44e7a0]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp esi, eax
jge 0x414835
shr ebx, 6
lea eax, [ebp - 0x20]
call fcn.00413e9d
and ebx, 0x3f
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x28]
mov dl, byte [ebx + 0x44e7a0]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
jmp 0x414704
fstp st(0)
fstp st(0)
cdq
mov esi, 3
lea ecx, [ebp - 0x40]
idiv esi
mov edx, 6
call fcn.00413e80
test al, al
jne 0x41475b
mov edx, dword [ebp - 0x40]
test edx, edx
jns 0x414403
mov dword [esp + 0x10], 0x7fffffff
mov eax, edx
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], edx
jmp 0x4148e1
lea ecx, [ebp - 0x20]
call fcn.004065f0
mov eax, ebx
cdq
idiv esi
mov eax, ebx
sub eax, edx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x58], eax
xor eax, ebx
xor edx, dword [ebp - 0x58]
not eax
or eax, edx
jns 0x41475b
xor esi, esi
xor edi, edi
cmp edi, dword [ebp - 0x58]
jne 0x414441
cmp dword [ebp - 0x54], 1
jne 0x414608
jmp 0x414617
test edi, edi
js 0x414730
cmp ebx, edi
jle 0x414730
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x3c]
mov edx, 1
movzx eax, byte [eax + edi]
shl eax, 0x10
mov dword [ebp - 0x50], eax
mov eax, edi
call fcn.00413e80
test al, al
jne 0x41475b
mov eax, dword [ebp - 0x3c]
test eax, eax
js 0x4144aa
cmp ebx, eax
jle 0x4144aa
mov edi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x38]
mov edx, 1
movzx edi, byte [edi + eax]
shl edi, 8
call fcn.00413e80
test al, al
jne 0x41475b
mov eax, dword [ebp - 0x38]
test eax, eax
js 0x4144aa
cmp ebx, eax
jg 0x4144b6
lea edx, [ebx - 1]
mov dword [esp + 4], edx
jmp 0x414775
mov ecx, dword [ebp - 0x4c]
movzx edx, byte [ecx + eax]
lea ecx, [ebp - 0x34]
or edx, edi
or edx, dword [ebp - 0x50]
mov dword [ebp - 0x50], edx
mov edx, 1
call fcn.00413e80
test al, al
jne 0x41475b
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp esi, eax
jge 0x414835
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x30]
shr eax, 0x12
mov dl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp esi, eax
jge 0x414835
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x2c]
shr eax, 0xc
and eax, 0x3f
mov dl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp esi, eax
jge 0x414835
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x28]
shr eax, 6
and eax, 0x3f
mov dl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp esi, eax
jge 0x414835
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x24]
and eax, 0x3f
mov dl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov esi, dword [ebp - 0x24]
jmp 0x41442d
cmp dword [ebp - 0x54], 2
jne 0x4148b8
jmp 0x414728
test edi, edi
js 0x414730
cmp ebx, edi
jle 0x414730
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x34]
mov edx, 1
movzx ebx, byte [eax + edi]
mov eax, edi
call fcn.00413e80
test al, al
jne 0x41475b
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp eax, esi
jle 0x414835
shl ebx, 0x10
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, ebx
lea ecx, [ebp - 0x30]
shr eax, 0x12
mov dl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp esi, eax
jge 0x414835
shr ebx, 0xc
lea eax, [ebp - 0x20]
call fcn.00413e9d
and ebx, 0x3f
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x2c]
mov dl, byte [ebx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
test ebx, ebx
js 0x41487f
cmp ebx, eax
jge 0x41487f
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x28]
mov edx, 1
mov byte [eax + ebx + 4], 0x3d
mov eax, ebx
call fcn.00413e80
test al, al
jne 0x41475b
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
test ebx, ebx
js 0x41487f
cmp ebx, eax
jge 0x41487f
jmp 0x41488e
test edi, edi
js 0x414730
cmp ebx, edi
jg 0x41473f
lea eax, [ebx - 1]
mov dword [esp], edi
mov dword [esp + 4], eax
jmp 0x414887
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x38]
mov edx, 1
mov al, byte [eax + edi]
mov byte [ebp - 0x50], al
mov eax, edi
call fcn.00413e80
test al, al
je 0x414765
call fcn.0040518c
jmp 0x4148f9
mov eax, dword [ebp - 0x38]
test eax, eax
js 0x414770
cmp ebx, eax
jg 0x41477d
dec ebx
mov dword [esp + 4], ebx
mov dword [esp], eax
jmp 0x414887
mov edi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x34]
mov edx, 1
movzx ebx, byte [edi + eax]
call fcn.00413e80
test al, al
jne 0x41475b
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp eax, esi
jle 0x414835
movzx eax, byte [ebp - 0x50]
shl ebx, 8
shl eax, 0x10
or ebx, eax
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, ebx
lea ecx, [ebp - 0x30]
shr eax, 0x12
mov dl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp esi, eax
jge 0x414835
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, ebx
lea ecx, [ebp - 0x2c]
shr eax, 0xc
and eax, 0x3f
mov dl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x414835
cmp eax, esi
jg 0x41483f
dec eax
mov dword [esp], esi
mov dword [esp + 4], eax
jmp 0x414887
shr ebx, 6
lea eax, [ebp - 0x20]
call fcn.00413e9d
and ebx, 0x3f
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x28]
mov dl, byte [ebx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00413e80
test al, al
jne 0x41475b
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
test ebx, ebx
js 0x41487f
cmp eax, ebx
jg 0x41488e
dec eax
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00406e30
jmp 0x4148f9
lea eax, [ebp - 0x20]
call fcn.00413e9d
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x24]
mov edx, 1
mov byte [eax + ebx + 4], 0x3d
mov eax, ebx
call fcn.00413e80
test al, al
jne 0x41475b
mov esi, dword [ebp - 0x24]
test esi, esi
jns 0x4148ef
mov dword [esp + 0x10], 0x7fffffff
mov eax, esi
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], esi
sar eax, 0x1f
mov dword [esp + 4], eax
call fcn.004058fa
jmp 0x4148f9
mov edx, esi
lea ecx, [ebp - 0x20]
call fcn.004065f0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret 4