Function at 0x81c96d
Capabilities:
Encode data using base64

Disassembly:
cmp al, 0x61
jb 0x81c907
cmp al, 0x7a
jbe 0x81c931
ja 0x81c907
mov al, byte [0x21d2b727]
pushfd
cmp al, 0x69
sub byte [edi + 0x4289e9a5], al
or eax, dword [eax]
ljmp 0xdbaf
lea esp, [esp]
push dword [esp + 6]
push cx
lea esp, [esp + 2]
lea esp, [esp + 0xc]
push ebx
push edi
mov edi, eax
mov al, byte [ecx]
cmp al, 0x41
jb 0x81c884
cmp al, 0x5a
jbe 0x81c931
ja 0x81c884
cmp al, 0x2b
je 0x81c931
cmp al, 0x2f
jmp 0x81ca28
mov eax, 0x403
jmp 0x856312
cmp al, 0x30
jb 0x81c8cf
cmp al, 0x39
jbe 0x81c931
ja 0x81c8cf
movsd dword es:[edi], dword [esi]
jmp 0x8d0b04
mov bl, byte [ecx + 1]
mov byte [ebp - 1], bl
cmp bl, 0x41
jb 0x81c9f0
cmp bl, 0x5a
jbe 0x81ca0c
ret
ja 0x81c9f0
lea ebx, [esi]
imul eax, dword [eax - 0x165a6379], 0xb41b3
sti
ja 0x81c945
xor byte [ecx - 0x47], 0x3b
lcall 0x124, 0x548852c0
push edx
mov byte [esp + 1], dl
lea esp, [esp + 4]
push ebp
mov ebp, esp
pushal
lea esp, [esp + 0x14]
mov dword [esp + 4], ebp
mov word [esp + 6], sp
pop word [esp + 6]
push dword [esp + 4]
mov word [esp + 3], cx
lea esp, [esp + 2]
mov dword [esp + 8], ecx
pushfd
lea esp, [esp + 3]
mov byte [esp], bl
pushfd
push si
pop word [esp]
push word [esp + 2]
mov byte [esp + 1], ah
lea esp, [esp + 3]
lea esp, [esp + 0xc]
push esi
mov dword [esp], ecx
push ecx
mov byte [esp + 2], cl
mov word [esp], bp
push dword [esp + 2]
jmp 0x81c8ac
push ecx
push dx
lea esp, [esp + 2]
lea esp, [esp + 4]
lea esp, [esp + 4]
jmp 0x81c964
cmp bl, 0x61
jb 0x856412
cmp bl, 0x7a
jmp 0x856356
mov dl, byte [ecx + 2]
cmp dl, 0x41
jb 0x8562c1
jmp 0x85629b
jne 0x81c8e6
je 0x81c931
call 0x86c9ed
in eax, dx
dec ebp
frstor dword [edi + edx*2 - 0x38af112e]
mov edi, 0x26f2e82f
add dword [eax], eax
cmp ebp, dword [esi + 0x1b65b3c]
mov bl, byte [0x5c621f11]
xchg ebp, eax
salc
adc ah, byte [ebx]
salc
aaa
call fcn.0081c9d3
cmp dword [ebp + 0xc], 3
jmp 0x81cb00
push ebx
push esi
push edi
mov ecx, eax
push 0x3f
mov esi, eax
shr ecx, 0x12
pop edx
jmp 0x81cae4
shr esi, 0xc
pushal
pop dword [esp + 0x16]
lea esp, [esp + 2]
jmp 0x8567b0
jne 0x81ca74
movzx ecx, byte [ecx + 2]
or eax, ecx
jmp 0x81ca74
cmp dl, 0x2b
je 0x85625b
cmp dl, 0x2f
je 0x85625b
cmp dl, 0x3d
jne 0x81c8e6
je 0x85625b
ret 0xd949
cmp dl, 0x30
jb 0x856217
cmp dl, 0x39
jbe 0x85625b
ja 0x856217
cmp esi, dword [edx + ebp - 0x2ffd43b3]
pop esp
xchg ebp, eax
shl ecx, cl
insb byte es:[edi], dx
loop 0x8561db
je 0x85621a
rcl dword [ebx - 0xa], cl
mov cl, byte [ecx + 3]
cmp cl, 0x41
jmp 0x8562a2
cmp cl, 0x61
jb 0x856306
lea eax, [eax]
add byte [eax], al
cmp cl, 0x7a
jbe 0x856331
ja 0x856306
rol byte [eax - 0x2a], 1
inc eax
salc
mov cl, 0x40
pop es
xchg esi, eax
add al, 0x63
sahf
pop edx
jnp 0x856289
arpl word [esi], ax
cmc
xor esi, edx
cmp dl, 0x5a
jbe 0x85625b
ja 0x8562c1
jb 0x856270
cmp cl, 0x5a
jbe 0x856331
ja 0x856270
stc
outsb dx, byte [esi]
cld
wait
jbe 0x856275
mov al, byte [0x3ccdaa34]
std
movsd dword es:[edi], dword gs:[esi]
scasd eax, dword es:[edi]
and cl, byte [edx - 0x41]
cmp dl, 0x61
jb 0x85623a
cmp dl, 0x7a
jbe 0x85625b
ja 0x85623a
push ebx
invalid
cmp bl, 0x2b
je 0x81ca0c
cmp bl, 0x2f
jne 0x81c8e6
je 0x81ca0c
cmp cl, 0x30
jb 0x856386
cmp cl, 0x39
jbe 0x856331
ja 0x856386
pop edi
pop ebx
leave
ret
cmp dl, 0x3d
jne 0x856362
mov dword [edi], 1
jmp 0x8563c0
jbe 0x81ca0c
ja 0x856412
sub esp, 4
push dword [esp + 2]
lea esp, [esp + 4]
sub esp, 9
lea esp, [esp + 1]
xor ebx, ebx
jmp 0x85639b
cmp cl, 0x2b
je 0x856331
cmp cl, 0x2f
je 0x856331
cmp cl, 0x3d
je 0x856331
jne 0x81c8e6
push si
push word [esp]
mov dword [esp], esp
lea esp, [esp + 1]
lea esp, [esp + 2]
mov byte [esp], al
jmp 0x8563dc
cmp al, 0x2b
jne 0x8563f6
push 0x3e
jmp 0x85680c
mov byte [esp], bh
lea esp, [esp + 1]
lea esp, [esp + 0xc]
cmp cl, 0x3d
setne bl
inc ebx
inc ebx
mov dword [edi], ebx
mov bl, byte [ebp - 1]
jmp 0x8563c0
cmp al, 0x2f
jne 0x8565d7
push 0x3f
jmp 0x85680c
cmp bl, 0x30
jb 0x8562ee
cmp bl, 0x39
jbe 0x81ca0c
ja 0x8562ee
cmp bl, 0x2f
jne 0x85646b
push 0x3f
jmp 0x85644f
sub eax, 0x47
jmp 0x8564df
pop esi
jmp 0x8564c1
movzx esi, bl
cmp bl, 0x39
ja 0x856494
add esi, 4
jmp 0x8564c1
cmp al, 0x5a
movzx eax, al
ja 0x856447
sub eax, 0x41
jmp 0x8564df
cmp bl, 0x5a
ja 0x856526
sub esi, 0x41
jmp 0x8564c1
mov edx, dword [ebp - 8]
jmp 0x85656e
mov edi, dword [edi]
cmp edi, 2
jb 0x8564a2
cmp dl, 0x2b
jne 0x8564fd
push 0x3e
jmp 0x8565a6
push di
lea esp, [esp]
lea esp, [esp + 1]
lea esp, [esp + 1]
push esi
cmp bl, 0x2b
jne 0x85642a
push 0x3e
jmp 0x85644f
cmp dl, 0x2f
jne 0x856552
push 0x3f
jmp 0x8565a6
mov edx, dword [esp + 0x20]
push ebx
lea esp, [esp + 1]
mov byte [esp], dl
jmp 0x85652b
sub esi, 0x47
jmp 0x8564c1
lea esp, [esp + 3]
lea esp, [esp + 0x24]
jmp 0x85656e
cmp dl, 0x5a
movzx edx, dl
ja 0x85658a
sub edx, 0x41
jmp 0x85656e
cmp dl, 0x39
ja 0x856535
movzx edx, dl
add edx, 4
jmp 0x85656e
cmp edi, 3
jne 0x85670b
cmp cl, 0x2b
jmp 0x8565eb
sub edx, 0x47
jmp 0x85656e
bswap dx
lea edx, [eax + 0x213a4722]
pushal
xchg word [esp + 0x17], dx
mov dh, byte [esp + 3]
push word [esp + 0x11]
xchg dh, dl
mov edx, dword [esp + 6]
lea esp, [esp + 2]
jmp 0x856509
cmp al, 0x39
ja 0x856487
movzx eax, al
add eax, 4
jmp 0x8564df
jne 0x856609
push 0x3e
jmp 0x856651
cmp cl, 0x2f
jmp 0x8566b8
cmp cl, 0x39
jmp 0x856654
cmp cl, 0x5a
movzx ecx, cl
ja 0x85665e
sub ecx, 0x41
jmp 0x85667e
pop ecx
jmp 0x85667e
ja 0x85662d
movzx ecx, cl
add ecx, 4
jmp 0x85667e
sub ecx, 0x47
jmp 0x85667e
shl eax, 6
or eax, esi
shl eax, 0xc
pop esi
cmp edi, 2
jmp 0x8566e8
cmp edi, 3
jne 0x8566c2
or eax, ecx
jmp 0x8566c2
jne 0x85661b
push 0x3f
jmp 0x856651
mov ecx, dword [ebp + 8]
pushal
push di
mov ch, 0xe9
xchg byte [esp], bl
mov word [esp], di
xchg word [esp], bp
mov di, bx
jmp 0x8567d3
jb 0x856699
shl edx, 6
or eax, edx
jmp 0x856699
mov ecx, dword [ebp - 8]
jmp 0x85667e
mov byte [ecx + 1], dl
jmp 0x856779
xor eax, eax
jmp 0x856312
mov di, 0x129a
lea ecx, [edi + ebp]
mov dword [esp + 0x14], eax
push eax
mov word [esp + 1], cx
mov byte [esp + 2], ah
push ecx
pop word [esp + 2]
push dword [esp]
mov byte [esp + 2], cl
lea esp, [esp + 7]
lea esp, [esp + 3]
popal
shr edx, 8
jmp 0x856713
cmp edi, 3
jne 0x856718
mov byte [ecx + 2], al
jmp 0x856718
mov byte [esp + 0xf], al
lea esp, [esp + 0x1c]
and ecx, edx
and esi, edx
cmp dword [ebp + 0xc], 2
jb 0x85684f
mov edi, eax
shr edi, 6
and edi, edx
jmp 0x85682e
pop word [esp + 6]
push dword [esp + 0x15]
mov byte [esp + 4], al
mov word [esp + 8], bx
jmp 0x856783
xchg byte [esp], dl
lea esp, [esp + 2]
mov dword [esp + 0x14], eax
pushfd
push word [esp + 3]
mov dword [esp], esp
lea esp, [esp + 2]
lea esp, [esp + 4]
popal
shr edx, 0x10
mov byte [ecx], dl
cmp edi, 2
jb 0x856779
pushal
jmp 0x856739
mov eax, 0x1d1a65e3
mov al, 0xbc
bswap eax
mov ah, byte [esp]
mov eax, dword [esp]
push eax
mov byte [esp + 1], ah
mov byte [esp], dl
lea esp, [esp + 8]
jmp 0x8564df
cmp dword [ebp + 0xc], 3
jne 0x85689c
push si
mov byte [esp], bh
add esp, 1
lea esp, [esp]
jmp 0x856875
mov edi, dword [ebp + 0xc]
jmp 0x85682e
mov cx, 0xbbf
mov bl, dh
mov dword [esp + 0x10], eax
push edi
pop word [esp]
jmp 0x856a63
lea esp, [esp + 1]
and eax, edx
push ecx
push dword [esp]
pop dword [esp]
lea esp, [esp + 4]
pushal
xchg ebp, ebx
bswap edx
jmp 0x856854
push ecx
pushal
mov dl, 0xe7
lea edx, [ebp + ebp]
mov dword [esp + 0x18], ebp
push edx
jmp 0x8569ce
mov ecx, dword [ebp + 8]
mov byte [ecx], dl
cmp esi, 0x1a
jae 0x856967
lea ecx, [esi + 0x41]
jmp 0x8569ad
cmc
pushfd
mov word [esp + 1], ax
cmp esi, eax
pushal
lea esp, [esp + 0x24]
jae 0x856a47
jmp 0x856b2f
cmp ecx, 0x34
jae 0x8569a4
lea edx, [ecx + 0x47]
jmp 0x85692d
cmp esi, 0x34
jae 0x85693c
lea ecx, [esi + 0x47]
jmp 0x8569ad
xor edx, edx
cmp ecx, eax
setne dl
lea edx, [edx*4 + 0x2b]
jmp 0x85692d
cmp ecx, eax
jae 0x856985
lea edx, [ecx - 4]
jmp 0x85692d
cmp dword [ebp + 0xc], 2
mov edx, dword [ebp + 8]
mov byte [edx + 1], cl
jb 0x856af4
jmp 0x856ad7
push dword [esp + 2]
push dword [esp + 4]
pop word [esp + 4]
mov byte [esp + 7], cl
pop dword [esp]
push ebx
mov word [esp + 7], dx
lea esp, [esp + 2]
lea esp, [esp + 8]
popal
lea ecx, [ecx + 0xc]
mov ebx, dword [ecx]
pop ecx
jmp 0x856a0f
push 0x3e
mov ax, word [esp]
lea eax, [esi + ebp]
mov ah, byte [esp]
lea eax, [esi*4]
pushfd
push dx
pop ax
mov eax, 0x1a6b34ff
mov eax, dword [esp + 4]
pushfd
lea esp, [esp + 0xc]
cmp ecx, 0x1a
jae 0x85695d
lea edx, [ecx + 0x41]
jmp 0x85692d
xor ecx, ecx
cmp esi, eax
setne cl
lea ecx, [ecx*4 + 0x2b]
jmp 0x8569ad
mov byte [esp], dl
mov word [esp], ax
lea esp, [esp + 2]
popal
jmp 0x856a0f
mov byte [edx + 2], cl
jmp 0x856b61
cmp edi, 0x34
jmp 0x856b10
cmp edi, eax
jmp 0x856b53
xor ecx, ecx
cmc
pushal
cmp edi, eax
push ebx
mov word [esp], bp
lea esp, [esp + 2]
mov word [esp], sp
jmp 0x856b37
cmp edi, 0x1a
jae 0x856a90
lea ecx, [edi + 0x41]
jmp 0x856a71
mov byte [edx + 2], 0x3d
jmp 0x856b61
jae 0x856aa2
lea ecx, [edi + 0x47]
jmp 0x856a71
lea ecx, [esi - 4]
jmp 0x8569ad
lea esp, [esp + 2]
lea esp, [esp + 0x20]
setne cl
jmp 0x856b86
jae 0x856ab4
lea ecx, [edi - 4]
jmp 0x856a71
cmp dword [ebp + 0xc], 3
jne 0x856f2b
cmp ebx, 0x1a
jae 0x856f0d
lea ecx, [ebx + 0x41]
jmp 0x856f91
lea ecx, [ecx*4 + 0x2b]
jmp 0x856a71
mov byte [edx + 3], 0x3d
jmp 0x856fa3
push 0x7e0d0ee4
call fcn.0082f13b
push 0x7e0d0efe
call fcn.0082f13b
fmul qword [ebx - 0x25]
mov esi, 0x178f8d4d
xchg edx, esp
adc ebp, ebx
out 0x78, eax
out dx, al
mov dword [eax - 0x39], edi
psrad mm5, qword [ecx + 0x68]
retf 0xd0e