Function at 0x40f2e6
Capabilities:
Encode data using base64

Disassembly:
dec edx
push 0x6b
loop 0x40f1e4
invalid
loop 0x40f214
invalid
push ss
mov ebp, dword [ebx + 0x1e]
insd dword es:[edi], dx
cmp eax, dword [ebx - 0x109493df]
or dword [esi], 0x6c
imul ebp, dword [ebx - 0x54], 0x2e
xchg edi, eax
xchg ebp, eax
xchg esp, eax
xchg esp, eax
xchg esp, eax
loopne 0x40f22f
pop dword [eax + 0x2bab5878]
test al, 0xe0
push cs
sub dword [esi + ebp - 0x6b6b6a69], 0xffffff94
rcl dword [ebx + ebp*2 + 0xe836b6b], cl
imul ebp, dword [ebx + 0x6b], 0xffffff83
push cs
dec eax
imul ebp, dword [ebx - 0x58], 0xffffff83
rol dword [eax], cl
adc ebx, 0
imul ebp, dword [ebx - 0x7e], 0x7d
xchg ebp, eax
xchg esp, eax
xchg esp, eax
loopne 0x40f1b1
cmp bh, byte [eax]
loopne 0x40f25c
call 0x2f2359df
call 0x2f2359df
xchg edi, eax
pavgb mm6, qword [esi + 0x6b]
imul ebp, dword [ebx + 0x6b], 0xffffffe0
push 0x6b6bc80f
imul ebp, dword [ebx - 0x20], 0x2e
arpl ax, sp
loopne 0x40f252
xchg edi, eax
loopne 0x40f257
xchg edi, eax
xchg esp, eax
mov esi, dword [eax]
mov byte [0x336b63a9], al
xor byte [edx + 0x336b63a9], ah
xor esi, dword [edx]
in al, dx
xor ch, ah
outsd dx, dword [esi]
dec edi
xchg esp, eax
mov edi, dword [esi]
loopne 0x40f1e8
xchg dword [edx], edi
cmp bh, byte [eax]
cmp eax, 0x5ee00f3c
cmp bh, byte [edx]
cmp byte [0x5ee00f3c], bh
imul ebp, dword [ebx + 0x6b], 0x6b
loop 0x40f28d
xchg edi, eax
lodsb al, byte [esi]
xchg ebx, eax
xchg ebx, eax
in al, dx
cdq
sub ebp, dword [ebx + 1]
imul edx, dword [esi + ebx - 0x6ce16b99], 0xffffff94
push ds
arpl word [ebx + 0x6b6a7012], ax
loopne 0x40f2b7
loopne 0x40f2b7
outsd dx, dword [esi]
call 0x2721891d
loop 0x40f2bf
outsd dx, dword [esi]
pavgb mm2, qword [esi + 0x6b]
imul ebp, dword [ebx + 0x6b], 0xffffffe0
xchg edi, eax
loop 0x40f2f2
psrad mm6, qword [esi + 0x6b]
imul ebp, dword [ebx + 0x6b], 0x34
xor eax, 0x63a9a230
imul edi, dword [esi], 0xffffffe0
xchg eax, ebp
xchg dword [ebx + 0x38], esp
cmp eax, 0x2ee2973c
xchg edi, eax
pop eax
stosd dword es:[edi], eax
cmp edi, dword [ebx]
cmp edx, dword [esi + ebx + 0x7f1e9497]
xchg esp, eax
push ds
jnp 0x40f260
push ds
xchg esp, eax
push ds
arpl word [ebx + 0x6b6b1c55], ax
call 0x2f233e8a
xchg ebx, eax
xor al, 0x35
xor al, ah
xchg ebx, eax
loopne 0x40f272
test al, 0x3d
xchg edi, eax
loopne 0x40f309
dec edi
loopne 0x40f313
arpl word [eax - 0x5b], bx
xor dword [0x194949a], 0x6b
cmp eax, 0x947f1d94
sbb eax, 0x946b0167
xor eax, 0x194949a
imul edi, dword [0x947f1d94], 0x1d
add dword [bp + di - 0x6c], ebp
pop ds
dec edi
dec edi
xchg esp, eax
sbb eax, 0x4f1f947b
pop ds
dec edi
dec edi
sub dword [eax + 0x1c], 0x6b
imul ebp, eax, 0xffffffaf
dec ebx
xor eax, 0x87e03ea8
call 0xea7946a5
push ss
arpl word [eax + 0x6a], cx
imul ebp, dword [ebx + 0x1e], 0x79
rcl esp, cl
cwde
sub ebp, dword [ebx - 0x20]
loop 0x40f39a
pop eax
stosd dword es:[edi], eax
sub eax, dword [edx + 0x6b6b6bdb]
call 0xacaca64b
imul ebp, dword [ebx - 0x18], 0xe
mov bl, 0x6b
lodsb al, byte [esi]
mov bh, 0x80
cwde
sub ebp, dword [ebx - 0x36]
xchg ebx, eax
mov al, 0x29
imul esp, esi, 0x26
mov bl, 0x58
stosb byte es:[edi], al
loop 0x40f37d
mov esp, eax
jae 0x40f336
invalid
imul ebp, dword [ebx + 0x6b], 0xffffffe2
mov bl, 0xe6
imul esp, edx, 0x2e
mov bl, 0xe6
mov bl, 0xf
enter 0x6b6b, 0x6b
imul ebp, dword [esi + ebp + 0x6b6b6aa3], 0x6b
loopne 0x40f3c3
arpl dx, sp
cmpsd dword cs:[esi], dword es:[edi]
loopne 0x40f3c9
jnp 0x40f37f
jnp 0x40f37f
mov ebx, 0x6b596b83
imul esp, eax, 0xffffffeb
jmp 0x40f413
pop ds
jl 0x40f3d5
loopne 0x40f43e
imul ebp, dword [ebx + 0x6b], 0x6b
loopne 0x40f436
imul ebp, dword [ebx + 0x6b], 0xffffffe0
push 0xe2b336e0
loopne 0x40f406
mov bl, 0xe2
push 0x6b76e20f
jbe 0x40f442
imul ebp, dword [ebx + 0x6b], 0xffffff80
invalid
mov ecx, dword [0x2ee07a1f]
lodsb al, byte [si]
sub ecx, dword [edi + 0x6a]
imul ebp, dword [ebx + 0x6b], 0x58
stosd dword es:[edi], eax
sub eax, dword [eax + 0x1018007]
imul ebx, dword [eax - 0x55], 0x2b
add byte [edi], 0x80
add dword [ecx], eax
push 0xffffffffffffffe0
xchg esp, eax
sbb esi, dword [ebx - 0x20]
xchg esp, eax
sbb edi, dword [edi - 0x20]
xchg esp, eax
sbb esp, dword [edi + 1]
imul edx, dword [esi + ebx + 0x672ee07b], 0xffffff94
xchg esp, eax
sbb edi, dword [ebx - 0x6c]
push ds
arpl word [ebx + 0x6b6b1eb9], ax
mov ecx, 0xe86b6b1e
scasd eax, dword es:[edi]
dec ebx
loopne 0x40f475
call 0x2f213ff6
call 0x1eac4360
pushal
xchg esp, eax
push ds
arpl word [esi + ebx - 0x6a917c99], dx
push ds
sub dword [bp - 0x6b], 0xffffff94
outsb dx, byte [esi]
xchg ebp, eax
xchg esp, eax
xchg esp, eax
add dword [ebx + 1], ebp
imul eax, dword [ecx], 0x6b
add dword [ebx + 1], ebp
imul esp, esi, 0x2e
xchg edi, eax
imul eax, dword [ecx], 0x6b
add dword [ebx - 0x1a], ebp
xchg edi, eax
cmp eax, dword [ebx]
dec eax
push 0x6b
imul eax, dword [ebx - 0x6b6b6a32], 0xffffffe8
scasd eax, dword es:[edi]
ja 0x40f455
xchg edi, eax
xchg edi, eax
loopne 0x40f4af
loopne 0x40f484
ja 0x40f45e
add byte [ebx - 0x6c], cl
mov ebx, dword [eax - 0x55]
sub esi, dword [eax]
mov byte [0x87e03ea8], al
cmp bh, byte [eax]
cmp eax, 0x6316e03c
loopne 0x40f4c0
jnp 0x40f476
sbb al, 0x67
loop 0x40f4c8
xchg edi, eax
loopne 0x40f452
add byte [esi - 0x18], 0x95
xchg esp, eax
push ds
outsb dx, byte [esi]
xor eax, 0x1d
imul ebp, dword [ebx - 0x20], 0x26
xchg edi, eax
and eax, 0xab00ade0
jg 0x40f51b
add byte [ebx - 0x1f559781], ch
jnp 0x40f50a
stosb byte es:[edi], al
loopne 0x40f4dc
jnp 0x40f50a
and ebp, dword [edi + 0x16]
outsb dx, byte [esi]
push eax
and esp, dword [ebx + 0x15]
outsb dx, byte [esi]
call 0x625f895b
xchg esp, eax
loopne 0x40f501
loopne 0x40f501
arpl dx, sp
push ds
arpl ax, bp
push ss
imul edx, dword [0xffffe0a1], 0x2e
jg 0x40f506
loop 0x40f536
pop ebx
loopne 0x40f50b
jae 0x40f4c1
jae 0x40f4c1
jae 0x40f531
xor al, 0x67
sbb al, 0x6f
push eax
cwde
sbb eax, 0x1d3d836e
imul ebp, dword [ebx - 0x20], 0xffffffad
add byte [ebx - 0x68d19781], ch
xor al, 0x35
xor byte [edx + 0x4f2fe0a8], ah
arpl word [0x634f1fe0], di
loop 0x40f573
pop ds
dec edi
arpl dx, sp
insd dword es:[edi], dx
xor edx, 0x5b
imul ebp, dword [ebx - 0x20], 0xffffffeb
imul esp, eax, 0xffffffeb
loopne 0x40f4f8
imul ebp, dword [ebx + 0x6b], 0xffffffe2
sub eax, 0x5be0836f
imul ebp, dword [ebx - 0x1e], 0xffffffdb
imul ebp, dword [ebx + 0x6b], 0xffffffe0
lodsd eax, dword [esi]
xor eax, 0x5b1783a8
imul ebp, dword [ebx - 0x20], 0xffffffeb
imul ebp, dword [ebx + 0x6b], 0xffffff80
pushal
loopne 0x40f595
arpl word [eax + 0x27], dx
push eax
daa
dec edi
outsd dx, dword [esi]
pop ds
invalid
test al, 0x3d
xor dword [ecx], 0x5b
imul ebp, dword [ebx - 0x20], 0x1f
dec edi
arpl word [eax - 0x25], dx
imul ebp, dword [ebx + 0x6b], 0x1e
jnp 0x40f4da
and bl, byte [ebx + 0x6b]
imul esp, eax, 0x25
outsd dx, dword [esi]
loop 0x40f543
imul ebp, dword [ebx + 0x6b], 0x35
imul ebp, dword [ebx + 0x6b], 0x35
test al, 0x83
push edx
pop ebx
imul ebp, dword [ebx - 0x20], 0xffffffeb
imul ebp, dword [ebx + 0x6b], 0xffffff80
invalid
loopne 0x40f598
outsd dx, dword [esi]
push eax
lcall 0x13e8, 0xaae0651f
outsd dx, dword [esi]
imul ebx, dword [esi], 0xffffff9a
xor eax, 0x6b1ed782
imul esp, eax, 0x25
xlatb
push ds
imul ebp, dword [ebx - 0x20], 0x25
outsd dx, dword [esi]
loop 0x40f5b0
outsd dx, dword [esi]
xor eax, 0x87e03ea8
call 0x940b691f
jae 0x40f561
retf 0xb093
xchg ebx, eax
mov al, 0x29
imul ebp, eax, 0xe
sub dword [ebx - 0x1a], 0x26
sbb dword [eax - 0x56], 0xffffffe0
arpl dx, sp
wait
loopne 0x40f5da
loop 0x40f5dd
lahf
loopne 0x40f5e0
jg 0x40f5df
lodsb al, byte [esi]
xchg dword cs:[ebp - 0x1d94d467], ecx
xchg ebx, eax
loop 0x40f5ee
xchg edi, eax
bswap edx
imul ebp, dword [ebx + 0x6b], 0x6b
loop 0x40f5f7
and esi, 0x2e
or dword [edi], 0xffffffc8
imul ebp, dword [ebx + 0x6b], 0x6b
xchg esp, eax
push ds
jae 0x40f611
xchg esp, eax
push ds
jnp 0x40f55e
sbb edx, 0x1e
ficomp dword [esi]
imul ebp, dword [ebx - 0x20], 0xffffffa3
loopne 0x40f584
mov dword [0xf832ee0], eax
enter 0x6b6b, 0x6b
imul esp, eax, 0xffffffaa
loopne 0x40f611
or dword [edi], 0xffffffc8
imul ebp, dword [ebx + 0x6b], 0x6b
loopne 0x40f596
mov byte [0x940f3ba8], al
cmp ecx, dword [edi]
xchg esp, eax
pop esi
imul ebp, dword [ebx + 0x6b], 0x6b
out 0x2f, al
das
dec edi
inc eax
cmovg esp, dword [edi + 0x38]
cmp eax, 0xe043e23c
or edx, 0xffffff93
mov al, 0x29
imul ebx, dword [eax - 0x52], 0x3b
xchg esp, eax
push ds
xchg edi, eax
lodsb al, byte [esi]
xchg edi, eax
xchg esp, eax
xchg esp, eax
xchg esp, eax
xchg esp, eax
out 0x2e, al
lahf
bswap eax
imul ebp, dword [ebx + 0x6b], 0x6b
test al, 0x3b
sete byte [esi + 0x6b]
imul ebp, dword [ebx + 0x6b], 0xffffffe6
das
dec edi
inc eax
cmovg esp, dword [edi + 0x38]
cmp eax, 0xe043e23c
or edx, 0xffffff93
mov al, 0x29
imul ebx, dword [eax - 0x52], 0x3b
loop 0x40f650
wait
xchg esp, eax
push ds
xchg edi, eax
lodsb al, byte [esi]
xchg edi, eax
xchg esp, eax
xchg esp, eax
xchg esp, eax
xchg esp, eax
out 0x2e, al
lahf
bswap eax
imul ebp, dword [ebx + 0x6b], 0x6b
test al, 0x3b
sete byte [esi + 0x6b]
imul ebp, dword [ebx + 0x6b], 0xffffffe6
das
dec edi
inc eax
cmovg esp, dword [edi + 0x38]
cmp eax, 0xe043e23c
or edx, 0xffffff93
mov al, 0x29
imul ebx, dword [eax - 0x52], 0x3b
loop 0x40f6a6
wait
xchg esp, eax
push ds
xchg edi, eax
lodsb al, byte [esi]
xchg edi, eax
xchg esp, eax
xchg esp, eax
xchg esp, eax
xchg esp, eax
out 0x2e, al
lahf
bswap eax
imul ebp, dword [ebx + 0x6b], 0x6b
test al, 0xe0
lahf
psrad mm4, qword [esi + 0x6b]
imul ebp, dword [ebx + 0x6b], 0x32
xor al, 0x34
xor eax, 0x368ee030
cmp ch, byte [eax + 0x589b26e0]
cmpsb byte [esi], byte es:[edi]
add edx, 0xffffff86
xchg esp, eax
xchg esp, eax
xor byte [esi - 0x7c6b6b6c], 0x61
imul ebp, dword ss:[ebx - 0x6c], 0x1f
dec edi
outsd dx, dword [esi]
or dword [edx], 0x30
imul ebp, dword [ebx - 0x6c], 0x5e
out dx, eax
mov cl, 0x29
imul eax, dword [ebx + 0x6b6b47ba], 3
xchg esp, eax
imul ebp, dword [ebx + 0x6b], 0xffffff94
mov ebx, 0xa867afe8
add ebp, dword [edi - 0x6b94d6f9]
jle 0x40f743
cmp dword [ecx], ebp
imul ebp, esi, 0xffffffab
pop ds
jge 0x40f6e7
fild word [edi]
sub dword [ebx + 0x3b], ebp
xchg esp, eax
imul edi, dword [ebx], 0xffffff94
cmp edx, dword [esi + edi*2 + 0x6b29397b]
out dx, al
stosd dword es:[edi], eax
jle 0x40f767
cmp dword [ecx], ebp
imul ebp, esi, 0xffffffab
pop ds
insd dword es:[edi], dx
xchg esp, eax
pop ds
dec edi
outsd dx, dword [esi]
xchg esp, eax
mov ebx, 0x4f1f94a8
outsd dx, dword [esi]
cmp dword [edx + 0x32949494], 0xffffff94
pop ds
dec edi
outsd dx, dword [esi]
xchg esp, eax
jle 0x40f6de
cmp ebp, dword [ecx]
imul esp, dword [edi - 0x397c9cff], 0x24
imul ebp, dword [ebx + 0x32], 0xffffffa8
add dword [ebx - 0x7d], esp
cmpsd dword [esi], dword es:[edi]
and eax, 0xa8326b6b
cmp eax, 0x60809be0
xor ch, byte [eax - 0x7f641fc3]
pushal
loopne 0x40f795
insd dword es:[edi], dx
out dx, al
stosd dword es:[edi], eax
pop ds
imul edx, dword [ebx + edi*4 + 0x506fade8], 0x19634f1f
test byte [0x1fe03da8], dh
dec edi
arpl word [eax - 0x55], bx
and byte [esi + ebp*8 - 0x55], 0x1e
stosd dword es:[edi], eax
push ds
jp 0x40f727
out dx, al
mov byte [0xba94691f], al
call 0x1f916700
dec edi
sbb dword [bx + si - 0x57cb], eax
loopne 0x40f782
dec edi
outsd dx, dword [esi]
cmp eax, 0xa5509d58
push ds
jbe 0x40f6e8
scasb al, byte es:[edi]
push 0x3d3d6b6b
imul ebp, dword [ebx + 0x3d], 0x3d
cmp eax, 0x6bac3d3d
jge 0x40f7dd
imul ebp, dword [ebx - 0x7d], 0xffffffc5
push esp
imul ebp, dword [ebx - 0x18], 0xffffffaf
jg 0x40f77e
jge 0x40f7b2
xor esi, dword [0x667fcaa8]
xor eax, 0x667fcaa8
jg 0x40f7ea
sub byte [ebx + 0x50], ch
push eax
lodsd eax, dword [esi]
pop ds
mov cl, 0xe2
push 0x58
stosd dword es:[edi], eax
xor eax, 0x4f2fe0a8
outsd dx, dword [esi]
cmp eax, 0xad509d58
pop eax
popfd
push eax
lodsd eax, dword [esi]
push ds
jbe 0x40f71f
in eax, 0x68
imul ebp, dword [ebx + 0x3d], 0x3d
cmp eax, 0x6bac3d3d
jge 0x40f814
imul ebp, dword [ebx - 0x7d], 0x1c
push esp
imul ebp, dword [ebx - 0x18], 0xffffffaf
jg 0x40f7b5
jge 0x40f7e9
xor esi, dword [0x7f5e52a8]
xor eax, 0x7f5e52a8
sub byte [ebx + 0x1f], ch
mov al, 0xe0
dec bx
sub byte [ebx - 0x1e], ch
arpl word [eax - 0x55], bx
xor eax, 0x9b56e8a8
pop es
sub dword [ebx + 0x6b], ebp
pop ds
jno 0x40f7d9
wait
pop es
sub dword [ebx - 0x7d], ebp
clc
pop ds
imul eax, dword [ebx + 0x6b6b1ff8], 0xffffffee
stosd dword es:[edi], eax
imul ebp, dword [ebx - 0x12], 0xffffffab
xor bl, byte [edi]
pushal
xchg esp, eax
pop ds
dec edi
outsd dx, dword [esi]
xchg esp, eax
jle 0x40f786
wait
pop es
sub dword [ebx + 0x32], ebp
add dword [ebx + 0x36b6b18], 0xffffffa3
aas
sub dword [ebx + 3], ebp
invalid
xchg esp, eax
aad 0x2b
aas
sub dword [ebx - 0x20], ebp
lodsd eax, dword [esi]
aam 0xc3
aas
sub dword [ebx + 0x50], ebp
lodsb al, byte [esi]
xor bl, byte [eax]
loopne 0x40f895
out dx, al
stosd dword es:[edi], eax
pop ds
imul edx, dword [ebx + edi*4 + 0x506fade8], 0xe89a199c
push esi
pop ds
inc ecx
sub byte [ebx + 0x6b], ch
xor al, 0x35
pop ds
jo 0x40f844
pop ds
inc ecx
sub byte [ebx - 0x7d], ch
inc ebx
pop ds
imul ebp, dword [ebx - 0x12], 0xffffffab
imul eax, dword [ebx + 0x6b6b1f43], 0xffffffee
stosd dword es:[edi], eax
xor bl, byte [edi]
add dword [bp + di + 1], ebp
imul eax, dword [ecx], 0x1f7e946b
inc ecx
sub byte [ebx + 0x58], ch
imul edx, dword [esi + edi*2 + 0x6b28411f], 0x58
stosd dword es:[edi], eax
test al, 1
add ecx, dword [bp + di + 0x29c6]
imul eax, dword [ebx + 0x6b6b77b9], 1
arpl word [ebx + 0x6b6b2539], ax
xor ch, al
push cs
xchg edi, eax
imul ebx, dword [eax - 0x63], 0x2d
push edx
pop esi
aas
sub byte [ebx + 0x1f], ch
add dl, ah
pop esi
cmp esp, dword [esi + 0x28]
imul esp, ecx, 0x2e
jnp 0x40f854
daa
sub byte [ebx - 0x18], ch
push ss
imul ebx, dword [0xffff942c], 0x5e
xchg esp, eax
pop esi
pop es
inc ecx
sub byte [ebx - 0x7d], ch
xchg ecx, eax
inc ecx
imul ebp, dword [ebx - 0x20], 0xffffff93
xchg esp, eax
pop esi
add eax, dword [ecx + 0x28]
imul eax, dword [ebx + 0x6b6b4186], 0x32
xor ah, dl
invalid
pushal
mov ecx, 0x2319c
mov ah, byte [ecx + 0x400fff]
xor ah, 0x6b
mov byte [ecx + 0x400fff], ah
loop 0x4241a1
popal
jmp 0x40f21d