Function at 0x401370
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x629a40]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
push 0x20
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0xc]
push str.a070e428367f40dccea1d005382b99a4
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 8], 0xf
mov dword [ebp - 0xc], 0
mov byte [ebp - 0x1c], 0
call fcn.004075c0
cmp dword [ebp - 0xc], 0x100
mov eax, dword [ebp - 8]
jbe 0x4013f0
cmp eax, 0x10
jb 0x4013d4
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407ab0
and esp, dword [esi + 0x24e1d619]
mov edx, 0x607546bf
lodsd eax, dword [esi]
f2xm1
mov al, 0x6f
mov ebx, 0xca2d8983
out dx, eax
cwde
xchg ebp, eax
mov edx, 0x8312ebb0
clc
adc byte [edx + 0xd], dh
cmp eax, 0x10
jb 0x401402
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407ab0
push 0x20
push str.09fbf3e361cf43bcf595193166830ee0
lea ecx, [ebp - 0x1c]
mov dword [ebp - 8], 0xf
mov dword [ebp - 0xc], 0
mov byte [ebp - 0x1c], 0
call fcn.004075c0
cmp dword [ebp - 0xc], 0x100
mov eax, dword [ebp - 8]
jbe 0x401459
cmp eax, 0x10
jb 0x401441
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407ab0
sbb eax, 0xc19e8014
rcr eax, cl
xchg ebp, eax
sub eax, 0x4f3a172f
mov word [edi + 0x32dc232c], ds
or eax, 0x12eb935c
cmp eax, 0x10
jb 0x40146b
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407ab0
push 0x20
push str.d226943601a6bfa945ae0bf05287764d
lea ecx, [ebp - 0x1c]
mov dword [ebp - 8], 0xf
mov dword [ebp - 0xc], 0
mov byte [ebp - 0x1c], 0
call fcn.004075c0
cmp dword [ebp - 0xc], 0x100
mov eax, dword [ebp - 8]
jbe 0x4014c4
cmp eax, 0x10
jb 0x4014aa
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407ab0
cdq
lodsb al, byte [esi]
mov eax, dword [0xd88a1fda]
dec esi
sub byte [esi - 0x1fe21b8b], ah
xor bh, byte [eax - 0x6f707755]
jmp 0x40145e
cmp eax, 0x10
jb 0x4014d6
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407ab0
push 0x20
push str.29ab494c7e7128b53b59f7ffc9d7bb5a
lea ecx, [ebp - 0x1c]
mov dword [ebp - 8], 0xf
mov dword [ebp - 0xc], 0
mov byte [ebp - 0x1c], 0
call fcn.004075c0
cmp dword [ebp - 0xc], 0x100
mov eax, dword [ebp - 8]
jbe 0x401531
cmp eax, 0x10
jb 0x401515
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407ab0
or eax, 0xbf0b97f3
out 0x40, eax
push ebx
sbb byte [si], 0x1c
invalid
cmp eax, 0x10
jb 0x401543
inc eax
lea ecx, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.00407ab0
mov ebx, dword [ebp - 0x20]
xor esi, esi
xor edx, edx
xor ecx, ecx
test ebx, ebx
jle 0x4016c6
mov edi, dword [ebp - 0x24]
mov al, byte [ecx + edi]
cmp al, 0x3d
jne 0x401564
inc edx
cmp edx, 2
jg 0x4015ba
cmp al, 0x7f
ja 0x4015ba
movzx eax, al
mov al, byte [eax + 0x61a9e0]
cmp al, 0x7f
je 0x4015ba
cmp al, 0x40
jae 0x40157d
test edx, edx
jne 0x4015ba
inc ecx
inc esi
mov dword [ebp - 0x30], ecx
cmp ecx, ebx
jl 0x401557
test esi, esi
je 0x4016c6
mov ecx, dword [ebp - 0x2c]
lea eax, [esi + esi*2]
lea eax, [eax*2 + 7]
sar eax, 3
cmp dword [ecx], eax
jge 0x4015d0
mov dword [ecx], eax
mov eax, 0xfffffff0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00572ac9
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.00572ac9
mov esp, ebp
pop ebp
ret
call fcn.00437a40
test al, al
je 0x4015f8
push edx
mov byte [0xf389f01e], al
iretd
call fcn.00437dc0
test al, al
je 0x40161d
add byte [eax + eax*8 + 0x7bbc1c74], al
fsub dword [eax - 0x72]
mov esp, 0x8e60d87b
mov bh, 0x34
sbb al, 0x28
cmpsb byte [esi], byte es:[edi]
nop
sub eax, 0x2d26513f
out 0xc6, eax
xor al, 0xde
jae 0x4015fc
loope 0x401669
out dx, eax
xchg ebp, eax
push es
call fcn.00437ea0
test al, al
je 0x40163c
popal
into
sub byte [esi + 0x1a402994], dh
outsd dx, dword [esi]
movsb byte es:[edi], byte [esi]
loope 0x401641
push ecx
adc dword [eax], ebx
add al, 0x14
sbb esp, esi
dec esp
mov esi, dword [ebp - 0x30]
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x28]
mov edi, 3
mov edx, eax
test esi, esi
jle 0x4016bf
mov eax, dword [ebp - 0x24]
nop word [eax + eax]
movzx eax, byte [eax]
mov cl, byte [eax + 0x61a9e0]
xor eax, eax
cmp cl, 0x40
sete al
shl ebx, 6
sub edi, eax
movzx eax, cl
mov ecx, dword [ebp - 0x20]
and eax, 0x3f
inc ecx
or ebx, eax
mov dword [ebp - 0x20], ecx
cmp ecx, 4
jne 0x4016b0
xor eax, eax
mov dword [ebp - 0x20], eax
test edi, edi
jle 0x40169b
mov eax, ebx
shr eax, 0x10
mov byte [edx], al
inc edx
cmp edi, 1
jle 0x4016a8
mov eax, ebx
shr eax, 8
mov byte [edx], al
inc edx
cmp edi, 2
jle 0x4016b0
mov byte [edx], bl
inc edx
mov eax, dword [ebp - 0x24]
dec esi
inc eax
mov dword [ebp - 0x24], eax
test esi, esi
jg 0x401660
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.00572ac9
mov esp, ebp
pop ebp
ret