Function at 0x401370
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x627a40]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
push 0x20
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0xc]
push str.bacdc88e0bb26d08994982e5a0c9e047
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 8], 0xf
mov dword [ebp - 0xc], 0
mov byte [ebp - 0x1c], 0
call fcn.00407270
cmp dword [ebp - 0xc], 0x100
mov eax, dword [ebp - 8]
jbe 0x4013e7
cmp eax, 0x10
jb 0x4013d4
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407760
fisubr word [ecx - 0x2e]
retf
cmp eax, 0x10
jb 0x4013f9
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407760
push 0x20
push str.bea7c6963deb46f081eaf1a0607baba0
lea ecx, [ebp - 0x1c]
mov dword [ebp - 8], 0xf
mov dword [ebp - 0xc], 0
mov byte [ebp - 0x1c], 0
call fcn.00407270
cmp dword [ebp - 0xc], 0x100
mov eax, dword [ebp - 8]
jbe 0x401459
cmp eax, 0x10
jb 0x401438
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407760
push es
pushfd
push edx
neg byte [esi + edi*4 - 0x784d7132]
mov dl, byte [edi]
xor al, 6
out 0x9a, al
mov dl, 0x98
mov al, 0x12
dec ecx
add al, 0xec
leave
pop esp
xchg ebp, eax
pop edi
sub al, 0x18
mov ah, dh
jmp 0x40146b
cmp eax, 0x10
jb 0x40146b
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407760
push 0x20
push str.3d88f477cc748e404077ca22c1ae812c
lea ecx, [ebp - 0x1c]
mov dword [ebp - 8], 0xf
mov dword [ebp - 0xc], 0
mov byte [ebp - 0x1c], 0
call fcn.00407270
cmp dword [ebp - 0xc], 0x100
mov eax, dword [ebp - 8]
jbe 0x4014c2
cmp eax, 0x10
jb 0x4014aa
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407760
sti
ret 0xb76f
cmp eax, 0x10
jb 0x4014d4
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407760
mov esi, dword [ebp - 0x24]
xor edx, edx
xor ecx, ecx
xor ebx, ebx
test esi, esi
jle 0x401656
mov edi, dword [ebp - 0x20]
mov al, byte [ebx + edi]
cmp al, 0x3d
jne 0x4014f5
inc ecx
cmp ecx, 2
jg 0x40154b
cmp al, 0x7f
ja 0x40154b
movzx eax, al
mov al, byte [eax + 0x6189e0]
cmp al, 0x7f
je 0x40154b
cmp al, 0x40
jae 0x40150e
test ecx, ecx
jne 0x40154b
inc ebx
inc edx
mov dword [ebp - 0x24], ebx
cmp ebx, esi
jl 0x4014e8
test edx, edx
je 0x401656
mov ecx, dword [ebp - 0x2c]
lea eax, [edx + edx*2]
lea eax, [eax*2 + 7]
sar eax, 3
cmp dword [ecx], eax
jge 0x401561
mov dword [ecx], eax
mov eax, 0xfffffff0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00570ea9
mov esp, ebp
pop ebp
ret
mov eax, 0xffffffee
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00570ea9
mov esp, ebp
pop ebp
ret
push 0x20
push str.a661f2d90fff216c2229b9adf2f0c279
lea ecx, [ebp - 0x1c]
mov dword [ebp - 8], 0xf
mov dword [ebp - 0xc], 0
mov byte [ebp - 0x1c], 0
call fcn.00407270
cmp dword [ebp - 0xc], 0x100
mov eax, dword [ebp - 8]
jbe 0x4015ba
cmp eax, 0x10
jb 0x4015a0
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407760
mov cl, byte [ecx - 0x62]
rcr dh, cl
add byte [ebx + 0x39], cl
shl esi, cl
lahf
popfd
out dx, eax
push ebx
movsb byte es:[edi], byte [esi]
ja 0x40160b
mov cl, 0x8b
pop ebp
fmul qword [ebx + 0x12ebe07d]
cmp eax, 0x10
jb 0x4015cc
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407760
xor eax, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], eax
mov esi, 3
mov eax, dword [ebp - 0x28]
mov edx, eax
test ebx, ebx
jle 0x40164f
nop word [eax + eax]
movzx eax, byte [edi]
mov cl, byte [eax + 0x6189e0]
xor eax, eax
cmp cl, 0x40
sete al
sub esi, eax
movzx eax, cl
mov ecx, dword [ebp - 0x24]
and eax, 0x3f
aas
shl ecx, 6
or ecx, eax
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], eax
cmp eax, 4
jne 0x401646
xor eax, eax
mov dword [ebp - 0x20], eax
test esi, esi
jle 0x401631
mov eax, ecx
shr eax, 0x10
mov byte [edx], al
inc edx
cmp esi, 1
jle 0x40163e
mov eax, ecx
shr eax, 8
mov byte [edx], al
inc edx
cmp esi, 2
jle 0x401646
mov byte [edx], cl
inc edx
dec ebx
inc edi
test ebx, ebx
jg 0x4015f0
mov eax, dword [ebp - 0x28]
sub edx, eax
mov eax, dword [ebp - 0x2c]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00570ea9
mov esp, ebp
pop ebp
ret