Function at 0x428384
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 [0xe52780]
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 0x4283ec
fxch st(1)
fucomi st(1)
jp 0x4283cb
je 0x428881
fld st(0)
fabs
fxch st(2)
fsubrp st(1)
fabs
fmul dword [0xe52784]
fxch st(1)
fcompi st(1)
fstp st(0)
jae 0x428885
jmp 0x428c2b
fxch st(1)
fucomi st(1)
jp 0x4283f4
je 0x428412
fld st(0)
fabs
fxch st(2)
fsubrp st(1)
fabs
fmul dword [0xe52784]
fxch st(1)
fcompi st(1)
fstp st(0)
jb 0x428c2b
jmp 0x428416
fstp st(0)
fstp st(0)
cdq
mov esi, 3
lea ecx, [ebp - 0x40]
idiv esi
mov edx, 6
call fcn.00428350
test al, al
jne 0x428c2b
mov edx, dword [ebp - 0x40]
test edx, edx
js 0x4288a9
lea ecx, [ebp - 0x20]
call fcn.00405ddb
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 0x428c2b
xor esi, esi
xor edi, edi
cmp edi, dword [ebp - 0x58]
jne 0x42847c
cmp dword [ebp - 0x54], 1
jne 0x428647
jmp 0x428656
test edi, edi
js 0x428c00
cmp ebx, edi
jle 0x428c00
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.00428350
test al, al
jne 0x428c2b
mov eax, dword [ebp - 0x3c]
test eax, eax
js 0x42897a
cmp eax, ebx
jge 0x42897a
mov edi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x38]
mov edx, 1
movzx edi, byte [edi + eax]
shl edi, 8
call fcn.00428350
test al, al
jne 0x428c2b
mov eax, dword [ebp - 0x38]
test eax, eax
js 0x42897a
cmp eax, ebx
jge 0x42897a
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.00428350
test al, al
jne 0x428c2b
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp esi, eax
jge 0x428d05
lea eax, [ebp - 0x20]
call fcn.0042836d
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x30]
shr eax, 0x12
mov dl, byte [eax + 0xe52740]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00428350
test al, al
jne 0x428c2b
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp esi, eax
jge 0x428d05
lea eax, [ebp - 0x20]
call fcn.0042836d
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x2c]
shr eax, 0xc
and eax, 0x3f
mov dl, byte [eax + 0xe52740]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00428350
test al, al
jne 0x428c2b
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp esi, eax
jge 0x428d05
lea eax, [ebp - 0x20]
call fcn.0042836d
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x28]
shr eax, 6
and eax, 0x3f
mov dl, byte [eax + 0xe52740]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00428350
test al, al
jne 0x428c2b
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp esi, eax
jge 0x428d05
lea eax, [ebp - 0x20]
call fcn.0042836d
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x24]
and eax, 0x3f
mov dl, byte [eax + 0xe52740]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00428350
test al, al
jne 0x428c2b
mov esi, dword [ebp - 0x24]
jmp 0x428468
cmp dword [ebp - 0x54], 2
jne 0x428d88
jmp 0x428748
test edi, edi
js 0x428c00
cmp ebx, edi
jle 0x428c00
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x34]
mov edx, 1
movzx ebx, byte [eax + edi]
mov eax, edi
call fcn.00428350
test al, al
jne 0x428c2b
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp esi, eax
jge 0x428d05
shl ebx, 0x10
lea eax, [ebp - 0x20]
call fcn.0042836d
mov eax, ebx
lea ecx, [ebp - 0x30]
shr eax, 0x12
mov dl, byte [eax + 0xe52740]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00428350
test al, al
jne 0x428c2b
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp esi, eax
jge 0x428d05
shr ebx, 0xc
lea eax, [ebp - 0x20]
call fcn.0042836d
and ebx, 0x3f
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x2c]
mov dl, byte [ebx + 0xe52740]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00428350
test al, al
jne 0x428c2b
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
test ebx, ebx
js 0x428d4f
cmp ebx, eax
jge 0x428d4f
lea eax, [ebp - 0x20]
call fcn.0042836d
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x28]
mov edx, 1
mov byte [eax + ebx + 4], 0x3d
mov eax, ebx
jmp 0x428d34
test edi, edi
js 0x428c00
cmp ebx, edi
jle 0x428c00
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.00428350
test al, al
jne 0x428c2b
mov eax, dword [ebp - 0x38]
test eax, eax
js 0x42897a
cmp ebx, eax
jle 0x42897a
mov edi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x34]
mov edx, 1
movzx ebx, byte [edi + eax]
call fcn.00428350
test al, al
jne 0x428c2b
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp esi, eax
jge 0x428d05
movzx eax, byte [ebp - 0x50]
shl ebx, 8
shl eax, 0x10
or ebx, eax
lea eax, [ebp - 0x20]
call fcn.0042836d
mov eax, ebx
lea ecx, [ebp - 0x30]
shr eax, 0x12
mov dl, byte [eax + 0xe52740]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00428350
test al, al
jne 0x428c2b
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp eax, esi
jle 0x428d05
lea eax, [ebp - 0x20]
call fcn.0042836d
mov eax, ebx
lea ecx, [ebp - 0x2c]
shr eax, 0xc
and eax, 0x3f
mov dl, byte [eax + 0xe52740]
mov eax, dword [ebp - 0x1c]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
call fcn.00428350
test al, al
jne 0x428c2b
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp esi, eax
jge 0x428d05
shr ebx, 6
lea eax, [ebp - 0x20]
call fcn.0042836d
and ebx, 0x3f
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x28]
mov dl, byte [ebx + 0xe52740]
mov byte [eax + esi + 4], dl
mov edx, 1
mov eax, esi
jmp 0x428bd4
fstp st(0)
fstp st(0)
cdq
mov esi, 3
lea ecx, [ebp - 0x40]
idiv esi
mov edx, 6
call fcn.00428350
test al, al
jne 0x428c2b
mov edx, dword [ebp - 0x40]
test edx, edx
jns 0x4288d3
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 0x428db1
lea ecx, [ebp - 0x20]
call fcn.00405ddb
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 0x428c2b
xor esi, esi
xor edi, edi
cmp edi, dword [ebp - 0x58]
jne 0x428911
cmp dword [ebp - 0x54], 1
jne 0x428ad8
jmp 0x428ae7
test edi, edi
js 0x428c00
cmp ebx, edi
jle 0x428c00
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.00428350
test al, al
jne 0x428c2b
mov eax, dword [ebp - 0x3c]
test eax, eax
js 0x42897a
cmp ebx, eax
jle 0x42897a
mov edi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x38]
mov edx, 1
movzx edi, byte [edi + eax]
shl edi, 8
call fcn.00428350
test al, al
jne 0x428c2b
mov eax, dword [ebp - 0x38]
test eax, eax
js 0x42897a
cmp ebx, eax
jg 0x428986
lea edx, [ebx - 1]
mov dword [esp + 4], edx
jmp 0x428c45
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.00428350
test al, al
jne 0x428c2b
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp esi, eax
jge 0x428d05
lea eax, [ebp - 0x20]
call fcn.0042836d
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.00428350
test al, al
jne 0x428c2b
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp esi, eax
jge 0x428d05
lea eax, [ebp - 0x20]
call fcn.0042836d
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.00428350
test al, al
jne 0x428c2b
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp esi, eax
jge 0x428d05
lea eax, [ebp - 0x20]
call fcn.0042836d
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.00428350
test al, al
jne 0x428c2b
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp esi, eax
jge 0x428d05
lea eax, [ebp - 0x20]
call fcn.0042836d
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.00428350
test al, al
jne 0x428c2b
mov esi, dword [ebp - 0x24]
jmp 0x4288fd
cmp dword [ebp - 0x54], 2
jne 0x428d88
jmp 0x428bf8
test edi, edi
js 0x428c00
cmp ebx, edi
jle 0x428c00
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x34]
mov edx, 1
movzx ebx, byte [eax + edi]
mov eax, edi
call fcn.00428350
test al, al
jne 0x428c2b
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp eax, esi
jle 0x428d05
shl ebx, 0x10
lea eax, [ebp - 0x20]
call fcn.0042836d
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.00428350
test al, al
jne 0x428c2b
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp esi, eax
jge 0x428d05
shr ebx, 0xc
lea eax, [ebp - 0x20]
call fcn.0042836d
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.00428350
test al, al
jne 0x428c2b
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
test ebx, ebx
js 0x428d4f
cmp ebx, eax
jge 0x428d4f
lea eax, [ebp - 0x20]
call fcn.0042836d
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x28]
mov edx, 1
mov byte [eax + ebx + 4], 0x3d
mov eax, ebx
call fcn.00428350
test al, al
jne 0x428c2b
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
test ebx, ebx
js 0x428d4f
cmp ebx, eax
jge 0x428d4f
jmp 0x428d5e
test edi, edi
js 0x428c00
cmp ebx, edi
jg 0x428c0f
lea eax, [ebx - 1]
mov dword [esp], edi
mov dword [esp + 4], eax
jmp 0x428d57
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.00428350
test al, al
je 0x428c35
call fcn.004048fc
jmp 0x428dc9
mov eax, dword [ebp - 0x38]
test eax, eax
js 0x428c40
cmp ebx, eax
jg 0x428c4d
dec ebx
mov dword [esp + 4], ebx
mov dword [esp], eax
jmp 0x428d57
mov edi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x34]
mov edx, 1
movzx ebx, byte [edi + eax]
call fcn.00428350
test al, al
jne 0x428c2b
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp eax, esi
jle 0x428d05
movzx eax, byte [ebp - 0x50]
shl ebx, 8
shl eax, 0x10
or ebx, eax
lea eax, [ebp - 0x20]
call fcn.0042836d
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.00428350
test al, al
jne 0x428c2b
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp esi, eax
jge 0x428d05
lea eax, [ebp - 0x20]
call fcn.0042836d
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.00428350
test al, al
jne 0x428c2b
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x428d05
cmp eax, esi
jg 0x428d0f
dec eax
mov dword [esp], esi
mov dword [esp + 4], eax
jmp 0x428d57
shr ebx, 6
lea eax, [ebp - 0x20]
call fcn.0042836d
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.00428350
test al, al
jne 0x428c2b
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
test ebx, ebx
js 0x428d4f
cmp eax, ebx
jg 0x428d5e
dec eax
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.0040661b
jmp 0x428dc9
lea eax, [ebp - 0x20]
call fcn.0042836d
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x24]
mov edx, 1
mov byte [eax + ebx + 4], 0x3d
mov eax, ebx
call fcn.00428350
test al, al
jne 0x428c2b
mov esi, dword [ebp - 0x24]
test esi, esi
jns 0x428dbf
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.0040506a
jmp 0x428dc9
mov edx, esi
lea ecx, [ebp - 0x20]
call fcn.00405ddb
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret 4