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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xcf2552
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xcc
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov edx, dword [ebp + 0x10]
movsx eax, byte [edx + 0x15]
mov dword [ebp - 0x20], ecx
test eax, eax
je 0x491863
push 0xd27f00
lea ecx, [ebp - 0x64]
call fcn.00490bfc
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
call 0xd44bb5
mov dword [ebp - 4], 1
mov dword [ebp - 0x8c], 0xe442a8
lea esi, [ebp - 0x80]
xor eax, eax
mov dword [ebp - 0x68], 0xf
mov dword [ebp - 0x6c], eax
mov byte [ebp - 0x7c], al
mov ebx, dword [ebp - 0x50]
mov dword [ebp - 0x30], esi
test ebx, ebx
lea edi, [ebp - 0x64]
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], eax
jae 0x4917d7
call 0xd77759
mov ebx, dword [ebp - 0x50]
lea eax, [ebp - 0x80]
lea edx, [ebp - 0x64]
cmp ebx, 0xffffffff
jbe 0x4917e7
mov ebx, 0xffffffff
mov dword [ebp - 0x3c], ebx
cmp eax, edx
je 0x491d00
mov dword [ebp - 0x40], ebx
cmp ebx, 0xfffffffe
jbe 0x491802
call 0xd7771a
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x68]
cmp esi, ebx
jb 0x491bf8
test ebx, ebx
je 0x491bd9
test ebx, ebx
ja 0x491b76
mov dword [ebp - 4], 0
push 0xe4a780
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x8c]
mov dword [eax], 0xe442cc
push edx
call 0xd44e32
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x4c]
cmp eax, 0x10
jae 0x491b68
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x4c], 0xf
xor eax, eax
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x60], al
mov eax, dword [ebp + 0xc]
mov ebx, edx
test eax, eax
je 0x492217
movsx eax, byte [edx + 0x15]
test eax, eax
je 0x49187f
call 0xd44b9c
jmp 0x4918b7
mov eax, dword [edx + 8]
movsx ecx, byte [eax + 0x15]
test ecx, ecx
je 0x49189e
mov ecx, dword [edx + 4]
movsx eax, byte [ecx + 0x15]
test eax, eax
je 0x491de7
mov dword [ebp + 0x10], ecx
jmp 0x4918b7
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
jne 0x4918b4
mov eax, dword [eax]
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x4918a8
mov dword [ebp + 0x10], eax
mov eax, dword [ebx]
movsx edx, byte [eax + 0x15]
mov edi, ebx
test edx, edx
je 0x4918c8
mov esi, dword [ebx + 8]
jmp 0x4918dd
mov edx, dword [ebx + 8]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x4918d7
mov esi, eax
jmp 0x4918dd
mov edi, dword [ebp + 0x10]
mov esi, dword [edi + 8]
cmp edi, ebx
je 0x492137
mov dword [eax + 4], edi
mov eax, dword [ebx]
mov dword [edi], eax
cmp edi, dword [ebx + 8]
jne 0x4918f5
mov ecx, edi
jmp 0x491912
mov ecx, dword [edi + 4]
movsx eax, byte [esi + 0x15]
test eax, eax
je 0x49212f
mov dword [ecx], esi
mov eax, dword [ebx + 8]
mov dword [edi + 8], eax
mov edx, dword [ebx + 8]
mov dword [edx + 4], edi
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [eax + 4]
cmp ebx, dword [eax + 4]
je 0x492127
mov eax, dword [ebx + 4]
cmp ebx, dword [eax]
je 0x491930
mov dword [eax + 8], edi
jmp 0x491932
mov dword [eax], edi
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
movzx eax, byte [edi + 0x14]
movzx edx, byte [ebx + 0x14]
mov byte [edi + 0x14], dl
mov byte [ebx + 0x14], al
movsx eax, byte [ebx + 0x14]
cmp eax, 1
je 0x491e0e
push ebx
call 0xd4342d
pop ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 8]
test eax, eax
je 0x49196a
add eax, 0xffffffff
mov dword [edx + 8], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebp - 0x94]
test edx, edx
ja 0x491a83
mov edx, dword [ebp - 0x98]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jae 0x491a6f
mov dword [edx + 0x18], 0xf
mov eax, dword [ebp - 0x98]
mov dword [eax + 0x14], 0
mov eax, dword [ebp - 0x98]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x491a14
mov eax, dword [eax + 4]
jmp 0x491a17
add eax, 4
mov ecx, dword [ebp - 0xa0]
mov byte [eax], 0
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x9c]
mov dword [edx + 4], eax
mov ebx, dword [ebp - 0x98]
mov dword [ebx + 0x18], ecx
mov edi, dword [ebp - 0x98]
mov esi, dword [ebp - 0x94]
mov dword [edi + 0x14], esi
mov edx, dword [ebp - 0x98]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jb 0x491a5a
mov edx, dword [edx + 4]
jmp 0x491a5d
add edx, 4
mov eax, dword [ebp - 0x94]
mov byte [edx + eax], 0
mov ebx, dword [ebp - 0x40]
jmp 0x491815
push dword [edx + 4]
call 0xd4342d
pop ecx
mov edx, dword [ebp - 0x98]
jmp 0x4919ed
mov ecx, dword [ebp - 0x98]
mov eax, dword [ecx + 0x18]
cmp eax, 0x10
jb 0x491a96
mov ecx, dword [ecx + 4]
jmp 0x491a99
add ecx, 4
mov ebx, dword [ebp - 0xa0]
movzx eax, byte [ebp - 0xb4]
mov byte [ebp - 0xb8], al
push edx
add ebx, 1
push ecx
push ebx
push dword [ebp - 0x9c]
call 0xd44e7c
add esp, 0x10
jmp 0x4919db
push dword [ebp - 0x60]
call 0xd4342d
pop ecx
jmp 0x491851
mov ebx, dword [ebp - 0x30]
mov ecx, dword [ebx + 0x18]
cmp ecx, 0x10
jb 0x491b86
mov ebx, dword [ebx + 4]
jmp 0x491b89
add ebx, 4
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jb 0x491b99
mov edx, dword [edx + 4]
jmp 0x491b9c
add edx, 4
add edx, dword [ebp - 0x28]
push dword [ebp - 0x3c]
movzx eax, byte [ebp - 0x44]
mov byte [ebp - 0x48], al
push edx
push ecx
push ebx
call 0xd44e7c
add esp, 0x10
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x491bcd
mov eax, dword [eax + 4]
jmp 0x491bd0
add eax, 4
mov byte [eax + ecx], 0
jmp 0x49181d
mov dword [ebp - 0x6c], 0
cmp esi, 0x10
jb 0x491bea
mov eax, dword [ebp - 0x7c]
jmp 0x491bed
lea eax, [ebp - 0x7c]
mov byte [eax], 0
mov ebx, dword [ebp - 0x40]
jmp 0x491815
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0xac], ebx
mov ecx, ebx
lea eax, [ebp - 0x80]
or ecx, 0xf
cmp ecx, 0xfffffffe
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], edx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xa0], ecx
jbe 0x491c34
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xa0], ebx
jmp 0x491c4b
mov ebx, ecx
mov ecx, esi
shr ecx, 1
mov eax, 0xaaaaaaab
mul ebx
shr edx, 1
cmp ecx, edx
ja 0x491cdd
mov dword [ebp - 0x9c], 0
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0xb0]
add eax, 1
mov dword [ebp - 0xb0], eax
jne 0x491c77
xor eax, eax
mov dword [ebp - 0xb0], eax
jmp 0x491cbe
mov ecx, eax
xor edx, edx
mov eax, 0xffffffff
div ecx
cmp eax, 1
jae 0x491cbe
mov dword [ebp - 0xbc], 0
lea eax, [ebp - 0xbc]
push eax
lea ecx, [ebp - 0xcc]
call 0xd44bc6
mov dword [ebp - 0xcc], 0xe40cb4
lea eax, [ebp - 0xcc]
push 0xe4a720
push eax
call 0xd44e32
mov eax, dword [ebp - 0xb0]
push eax
call 0xd433c3
pop ecx
mov dword [ebp - 0x9c], eax
mov dword [ebp - 4], 1
jmp 0x4919cd
mov eax, ecx
neg eax
add eax, 0xfffffffe
cmp esi, eax
ja 0x491c4b
lea eax, [esi + ecx]
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xa0], eax
jmp 0x491c4b
mov edx, dword [ebp - 0x6c]
cmp edx, ebx
jae 0x491d0f
call 0xd77759
mov edx, dword [ebp - 0x6c]
mov eax, edx
sub eax, ebx
cmp eax, 0xffffffff
mov esi, eax
jb 0x491d1f
mov esi, 0xffffffff
test esi, esi
ja 0x491d90
test edx, edx
jae 0x491d2f
call 0xd77759
mov edx, dword [ebp - 0x6c]
test edx, edx
mov ebx, edx
jb 0x491d3a
mov ebx, 0
test ebx, ebx
jbe 0x49181d
mov ecx, dword [ebp - 0x68]
cmp ecx, 0x10
jb 0x491d52
mov esi, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x7c]
jmp 0x491d58
lea esi, [ebp - 0x7c]
lea eax, [ebp - 0x7c]
mov byte [ebp - 0xa8], 0
add eax, ebx
sub edx, ebx
push edx
push eax
push ecx
push esi
call 0xd44ef7
add esp, 0x10
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
sub edx, ebx
mov dword [ebp - 0x6c], edx
cmp eax, 0x10
jb 0x491d84
mov eax, dword [ebp - 0x7c]
jmp 0x491d87
lea eax, [ebp - 0x7c]
mov byte [eax + edx], 0
jmp 0x49181d
mov ecx, dword [ebp - 0x68]
cmp ecx, 0x10
jb 0x491da0
mov edi, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x7c]
jmp 0x491da6
lea edi, [ebp - 0x7c]
lea edx, [ebp - 0x7c]
mov byte [ebp - 0xa4], 0
add edi, ebx
sub ecx, ebx
add ebx, esi
add ebx, edx
sub eax, esi
push eax
push ebx
push ecx
push edi
call 0xd44ef7
add esp, 0x10
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
sub edx, esi
mov dword [ebp - 0x6c], edx
cmp eax, 0x10
jb 0x491dd8
mov eax, dword [ebp - 0x7c]
jmp 0x491ddb
lea eax, [ebp - 0x7c]
mov byte [eax + edx], 0
mov edx, dword [ebp - 0x6c]
jmp 0x491d23
cmp edx, dword [ecx + 8]
jne 0x491899
mov dword [ebp + 0x10], ecx
mov edx, ecx
mov ecx, dword [ecx + 4]
movsx eax, byte [ecx + 0x15]
test eax, eax
jne 0x491899
cmp edx, dword [ecx + 8]
je 0x491df0
jmp 0x491899
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 4]
cmp esi, dword [edx + 4]
je 0x491e22
movsx eax, byte [esi + 0x14]
cmp eax, 1
je 0x491e2b
mov byte [esi + 0x14], 1
jmp 0x491953
mov edi, dword [ecx]
cmp esi, edi
je 0x491fb9
movsx eax, byte [edi + 0x14]
test eax, eax
je 0x491f68
movsx eax, byte [edi + 0x15]
test eax, eax
jne 0x491e6e
mov eax, dword [edi + 8]
movsx edx, byte [eax + 0x14]
mov dword [ebp - 0xb0], eax
cmp edx, 1
jne 0x491ee4
mov eax, dword [edi]
movsx edx, byte [eax + 0x14]
cmp edx, 1
jne 0x491e89
mov byte [edi + 0x14], 0
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 4]
mov esi, ecx
mov ecx, dword [ecx + 4]
cmp esi, dword [edx + 4]
je 0x491e22
movsx eax, byte [esi + 0x14]
cmp eax, 1
je 0x491e2b
jmp 0x491e22
movzx eax, byte [ecx + 0x14]
mov byte [edi + 0x14], al
mov edx, 1
mov byte [ecx + 0x14], dl
mov edi, dword [edi]
mov byte [edi + 0x14], dl
mov eax, dword [ecx]
mov edx, dword [eax + 8]
mov dword [ecx], edx
mov edi, dword [eax + 8]
movsx edx, byte [edi + 0x15]
test edx, edx
je 0x491edf
mov edi, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [edi + 4]
cmp ecx, dword [edx + 4]
je 0x491eda
mov edx, dword [ecx + 4]
cmp ecx, dword [edx + 8]
je 0x491ecc
mov dword [edx], eax
jmp 0x491ecf
mov dword [edx + 8], eax
mov dword [eax + 8], ecx
mov dword [ecx + 4], eax
jmp 0x491e22
mov dword [edx + 4], eax
jmp 0x491ecf
mov dword [edi + 4], ecx
jmp 0x491eaf
mov eax, dword [edi]
movsx edx, byte [eax + 0x14]
cmp edx, 1
jne 0x491e89
mov eax, dword [ebp - 0xb0]
mov byte [eax + 0x14], 1
mov eax, dword [edi + 8]
mov byte [edi + 0x14], 0
mov edx, dword [eax]
mov dword [edi + 8], edx
mov edx, dword [eax]
mov dword [ebp - 0xb0], eax
movsx eax, byte [edx + 0x15]
test eax, eax
je 0x491f63
mov edx, dword [ebp - 0xb0]
mov eax, dword [edi + 4]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 4]
cmp edi, dword [edx + 4]
je 0x491f58
mov eax, dword [edi + 4]
cmp edi, dword [eax]
je 0x491f3e
mov edx, dword [ebp - 0xb0]
mov dword [eax + 8], edx
jmp 0x491f46
mov edx, dword [ebp - 0xb0]
mov dword [eax], edx
mov eax, dword [ebp - 0xb0]
mov dword [eax], edi
mov dword [edi + 4], eax
mov edi, dword [ecx]
jmp 0x491e89
mov eax, dword [ebp - 0xb0]
mov dword [edx + 4], eax
jmp 0x491f46
mov dword [edx + 4], edi
jmp 0x491f15
mov byte [edi + 0x14], 1
mov eax, dword [ecx]
mov byte [ecx + 0x14], 0
mov edx, dword [eax + 8]
mov dword [ecx], edx
mov edx, dword [eax + 8]
movsx edi, byte [edx + 0x15]
test edi, edi
je 0x491fb4
mov edi, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [edi + 4]
cmp ecx, dword [edx + 4]
je 0x491faf
mov edx, dword [ecx + 4]
cmp ecx, dword [edx + 8]
je 0x491f9f
mov dword [edx], eax
jmp 0x491fa2
mov dword [edx + 8], eax
mov dword [eax + 8], ecx
mov edi, dword [ecx]
mov dword [ecx + 4], eax
jmp 0x491e41
mov dword [edx + 4], eax
jmp 0x491fa2
mov dword [edx + 4], ecx
jmp 0x491f82
mov edi, dword [ecx + 8]
movsx eax, byte [edi + 0x14]
test eax, eax
je 0x4920d7
movsx eax, byte [edi + 0x15]
test eax, eax
jne 0x491e6e
mov eax, dword [edi]
movsx edx, byte [eax + 0x14]
mov dword [ebp - 0xb0], eax
cmp edx, 1
jne 0x49204f
mov eax, dword [edi + 8]
movsx edx, byte [eax + 0x14]
cmp edx, 1
invalid
adc ebp, edi
mov cl, 0x3d
push esp
invalid
sub al, 0xea
pushal
test byte [edi + 0x6d], cl
je 0x49208c
pushfd
shl byte [esi*8 + 0x79f6e051], 0x56
sbb eax, 0x39c37d05
inc edx
retf 0x8521
adc edi, dword [edx + 0x5a1eba5d]
jbe 0x492107
sub dword [ebp + 0x2930d4e], ecx
int1
lea ecx, [esi + 0xd]
xchg ebx, eax
add dh, cl
sub dword [ebx + esi*8 - 0x18fd0a3f], esp
cmp dword [ebp - 0x12], ebx
sub eax, 0x454cbd4c
add ebp, 0xda6665ce
sbb ebp, 0xf17fe1b7
sub bh, 0x11
jl 0x492033
sub eax, esp
aas
loopne 0x4920f4
invalid
popfd
sub eax, 0x20f40e80
push ebp
bound eax, qword [edx]
or eax, 0x6b690dc2
xor edi, dword [ebx]
loope 0x492156
int1
mov word [edi - 0x50523a48], cs
jae 0x492083
or eax, 0x6c86ecf2
out dx, eax
push eax
in al, dx
xchg byte [edi + ebp*8 + 0x50], ch
ror byte [ebp + 0x50], 1
xor eax, 0xcce1dd49
xor byte [edx - 0x57cfb060], dh
adc ebp, edx
jno 0x492144
int1
std
lahf
in eax, 0x99
out dx, al
mov cl, 0xb7
mov al, 0x15
jle 0x4920b3
add bl, byte [esp + ecx*4 + 9]
and dword [ebx], edx
lahf
dec ecx
movsb byte es:[edi], byte [esi]
leave
mov byte [0xa2ea4f8d], al
jmp 0x30e45768
jmp 0x30e45768
mov dword [0x4e5fbbb5], eax
mov esp, 0x5db95be2
out dx, al
jle 0x49219d
mov ecx, 0x617eee5d
int 0xd4
push 0x79216d17
jno 0x49215e
sbb dword [ecx], eax
popfd
jo 0x492115
add dword [ebp + 0x5d63cc70], ebx
arpl word [ebp - 0x5e], bx
test byte [bp + si], dl
jno 0x4921bf
pop ebp
mov byte [0x71128467], al
outsb dx, byte [esi]
mov bl, 0x48
mov bl, 0x3f
popfd
imul edx, dword [ecx - 0x78], 0x9721dce
dec ecx
mov ah, 0xd1
nop
test ebp, edx
outsb dx, byte [esi]
sub byte [eax], 0x33
mov ah, 0xe1
insd dword es:[edi], dx
int1
popfd
inc ecx
mov ecx, 0x36fcf1b3
imul eax, ebp, 0xfc843eb1
loope 0x4921c8
fnstenv [ebx - 0x7b]
pop ecx
dec ecx
and byte [ecx], 0x99
jne 0x49214a
jns 0x4921f1
out dx, eax
inc eax
jns 0x4921d7
jo 0x492201
inc esp
pop ebx
add byte [ebp - 0x2da50b5f], bl
shr byte [edx*4 - 0xde639bf], 0x89
shl edi, 0xea
inc eax
cmp dword [ebp + 0x69435c0e], ecx
outsb dx, byte [esi]
outsb dx, byte [esi]
mov al, 0xb2
mov esp, 0x7115358a
aad 0xf9
shr cl, cl
leave
mov byte [0xc5d0d09], al
vsubss xmm6, xmm2, dword [ecx]
sub al, 0xe1
adc byte [edx + 0x1eb721dc], ah
loope 0x4921d1
mov byte [0x1eb721dc], al
fsub qword [ecx]
mov bh, 0x1e
test al, 0x10
inc ecx
add eax, 0x610351a7
cmp byte [ebx + 0xc], dl
ror dword [ebp + eax*4 + 0x222821d], cl
invalid
add al, ch
clc
aad 0x7f
inc edx
cmp eax, 0x8d549411
pop ebp
call 0x5622b773
pushfd
int 0xc7
pop ss
rol byte [ecx + 0x1d], cl
mov dword [0x79ad5d44], eax
invalid
sub eax, 0xf12d8441
jno 0x4921c2
sub eax, 0xe0bd71f1
mov byte [0x4663dda0], al
jno 0x4921fe
loopne 0x4921a9
mov al, byte [0x714663dd]
int1
scasb al, byte es:[edi]
hlt
clc
frstor dword [ebx - 0x7d769bb4]
inc ebx
inc ebp
mov esp, 0xccd8a863
cmp dl, ch
pushal
cmp bh, ah
mov dword [ecx + 0xeeddfbd], eax
iretd