Function at 0x491cac
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xcf256c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x118
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov eax, dword [ecx + 8]
mov dword [ebp - 0x20], ecx
cmp eax, 0x3ffffffe
jb 0x491dea
mov dword [ebp - 0x48], 0xf
lea edx, [ebp - 0x60]
xor eax, eax
mov ecx, 0x13
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x5c], al
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x2c], 0xd27f1c
mov dword [ebp - 0x30], edx
cmp eax, 0x10
mov dword [ebp - 0x28], 0x13
jb 0x491d1c
mov ebx, dword [ebp - 0x5c]
jmp 0x491d1f
lea ebx, [ebp - 0x5c]
mov edx, 0xd27f1c
cmp edx, ebx
jae 0x492562
xor edx, edx
test edx, edx
je 0x491d83
cmp eax, 0x10
jb 0x491d3c
mov edx, dword [ebp - 0x5c]
jmp 0x491d3f
lea edx, [ebp - 0x5c]
lea eax, [ebp - 0x60]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov ebx, 0xd27f1c
sub ebx, edx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x38], ebx
cmp edx, ebx
jae 0x491d67
call 0xd76dd9
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x38]
mov eax, edx
sub eax, ebx
cmp ecx, eax
jb 0x491d71
mov ecx, eax
mov dword [ebp - 0x44], ecx
jmp 0x49233d
mov dword [ebp - 0x34], 0x13
cmp eax, 0x13
jb 0x492481
mov eax, dword [ebp - 0x34]
test eax, eax
ja 0x49242f
mov dword [ebp - 4], 8
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x90]
call fcn.004949d0
push 0xe4a7c0
lea eax, [ebp - 0x90]
push eax
call 0xd444b2
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jae 0x492421
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x48], 0xf
xor eax, eax
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x5c], al
mov ebx, dword [ebp + 0x10]
push 0x14
mov esi, dword [ecx + 4]
call 0xd42a43
pop ecx
test eax, eax
je 0x491e14
mov dword [eax], esi
mov dword [eax + 4], ebx
mov dword [eax + 8], esi
mov esi, dword [ebp + 0x14]
mov edi, dword [esi]
mov dword [eax + 0xc], edi
xor edx, edx
mov byte [eax + 0x10], dl
mov byte [eax + 0x11], dl
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
add dword [esi + 8], 1
cmp edx, ecx
je 0x4926e3
movzx ecx, byte [ebp + 0xc]
test ecx, ecx
je 0x491e40
mov dword [edx], eax
mov ecx, dword [esi + 4]
cmp edx, dword [ecx]
je 0x492589
jmp 0x491e4f
mov dword [edx + 8], eax
mov ecx, dword [esi + 4]
cmp edx, dword [ecx + 8]
je 0x4926db
mov edx, dword [eax + 4]
movsx ebx, byte [edx + 0x10]
mov ecx, eax
test ebx, ebx
jne 0x491f03
mov ebx, dword [ecx + 4]
mov edx, dword [ebx + 4]
mov edi, dword [edx]
cmp ebx, edi
je 0x4925ef
movsx edx, byte [edi + 0x10]
mov dword [ebp + 0x10], edi
test edx, edx
jne 0x491e98
mov edx, 1
mov byte [ebx + 0x10], dl
mov byte [edi + 0x10], dl
mov ebx, dword [ecx + 4]
mov edi, dword [ebx + 4]
mov byte [edi + 0x10], 0
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 4]
jmp 0x491ef4
mov edx, dword [ebx]
cmp ecx, edx
je 0x4925a3
mov byte [ebx + 0x10], 1
mov edx, dword [ecx + 4]
mov ebx, dword [edx + 4]
mov byte [ebx + 0x10], 0
mov edi, dword [ecx + 4]
mov ebx, dword [edi + 4]
mov edx, dword [ebx + 8]
mov edi, dword [edx]
mov dword [ebx + 8], edi
mov edi, dword [edx]
mov dword [ebp - 0x24], edi
movsx edi, byte [edi + 0x11]
test edi, edi
je 0x492598
mov edi, dword [ebx + 4]
mov dword [edx + 4], edi
mov edi, dword [esi + 4]
cmp ebx, dword [edi + 4]
je 0x492590
mov edi, dword [ebx + 4]
cmp ebx, dword [edi]
je 0x491eed
mov dword [edi + 8], edx
jmp 0x491eef
mov dword [edi], edx
mov dword [edx], ebx
mov dword [ebx + 4], edx
mov edx, dword [ecx + 4]
movsx ebx, byte [edx + 0x10]
test ebx, ebx
je 0x491e60
mov edx, dword [esi + 4]
mov ecx, dword [edx + 4]
mov edx, dword [ebp + 8]
test esi, esi
mov byte [ecx + 0x10], 1
mov dword [edx + 4], eax
mov dword [edx], 0
je 0x4926cb
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x14]
mov dword [edx], esi
mov esi, dword [ebp - 0x18]
mov eax, edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [ebp - 0xa4]
test edx, edx
ja 0x49202d
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jae 0x492019
mov dword [edx + 0x18], 0xf
mov eax, dword [ebp - 0xa8]
mov dword [eax + 0x14], 0
mov eax, dword [ebp - 0xa8]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x491fc1
mov eax, dword [eax + 4]
jmp 0x491fc4
add eax, 4
mov ecx, dword [ebp - 0xb0]
mov byte [eax], 0
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xac]
mov dword [edx + 4], eax
mov ebx, dword [ebp - 0xa8]
mov dword [ebx + 0x18], ecx
mov edi, dword [ebp - 0xa8]
mov esi, dword [ebp - 0xa4]
mov dword [edi + 0x14], esi
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jb 0x492007
mov edx, dword [edx + 4]
jmp 0x49200a
add edx, 4
mov eax, dword [ebp - 0xa4]
mov byte [edx + eax], 0
jmp 0x491d93
push dword [edx + 4]
call 0xd42aad
pop ecx
mov edx, dword [ebp - 0xa8]
jmp 0x491f9a
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ecx + 0x18]
cmp eax, 0x10
jb 0x492040
mov ecx, dword [ecx + 4]
jmp 0x492043
add ecx, 4
mov ebx, dword [ebp - 0xb0]
movzx eax, byte [ebp - 0xd8]
mov byte [ebp - 0xdc], al
push edx
add ebx, 1
push ecx
push ebx
push dword [ebp - 0xac]
call 0xd444fc
add esp, 0x10
jmp 0x491f88
add ebx, ecx
cmp edx, ebx
jae 0x49234b
call 0xd76dd9
mov edx, dword [ebp - 0x4c]
mov eax, edx
sub eax, ebx
cmp eax, 0xffffffff
mov esi, eax
jb 0x49235b
mov esi, 0xffffffff
test esi, esi
ja 0x4923ca
mov ebx, dword [ebp - 0x38]
test edx, edx
jae 0x49236e
call 0xd76dd9
mov edx, dword [ebp - 0x4c]
cmp edx, ebx
jae 0x492374
mov ebx, edx
test ebx, ebx
jbe 0x491d9e
mov ecx, dword [ebp - 0x48]
cmp ecx, 0x10
jb 0x49238c
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
jmp 0x492392
lea esi, [ebp - 0x5c]
lea eax, [ebp - 0x5c]
mov byte [ebp - 0xcc], 0
add eax, ebx
sub edx, ebx
push edx
push eax
push ecx
push esi
call 0xd44577
add esp, 0x10
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
sub edx, ebx
mov dword [ebp - 0x4c], edx
cmp eax, 0x10
jb 0x4923be
mov eax, dword [ebp - 0x5c]
jmp 0x4923c1
lea eax, [ebp - 0x5c]
mov byte [eax + edx], 0
jmp 0x491d9e
mov ecx, dword [ebp - 0x48]
cmp ecx, 0x10
jb 0x4923da
mov edi, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
jmp 0x4923e0
lea edi, [ebp - 0x5c]
lea edx, [ebp - 0x5c]
mov byte [ebp - 0xc8], 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 0xd44577
add esp, 0x10
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
sub edx, esi
mov dword [ebp - 0x4c], edx
cmp eax, 0x10
jb 0x492412
mov eax, dword [ebp - 0x5c]
jmp 0x492415
lea eax, [ebp - 0x5c]
mov byte [eax + edx], 0
mov edx, dword [ebp - 0x4c]
jmp 0x49235f
push dword [ebp - 0x5c]
call 0xd42aad
pop ecx
jmp 0x491dd8
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 0x18]
cmp edx, 0x10
jb 0x49243f
mov ecx, dword [ecx + 4]
jmp 0x492442
add ecx, 4
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
movzx eax, byte [ebp - 0x64]
mov byte [ebp - 0x68], al
push edx
push ecx
call 0xd444fc
add esp, 0x10
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0x18]
cmp ecx, 0x10
jb 0x492472
mov eax, dword [eax + 4]
jmp 0x492475
add eax, 4
mov edx, dword [ebp - 0x28]
mov byte [eax + edx], 0
jmp 0x491d9e
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0xd0], 0x13
mov ebx, 0x1f
lea edx, [ebp - 0x60]
mov dword [ebp - 0xb0], 0x1f
mov dword [ebp - 0xa8], edx
mov dword [ebp - 0xa4], ecx
mov ecx, eax
mov dword [ebp - 0x24], ebx
shr ecx, 1
cmp ecx, 0xa
ja 0x492542
mov dword [ebp - 0xac], 0
mov dword [ebp - 4], 4
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jne 0x4924df
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x492526
mov ecx, eax
xor edx, edx
mov eax, 0xffffffff
div ecx
cmp eax, 1
jae 0x492526
mov dword [ebp - 0xec], 0
lea eax, [ebp - 0xec]
push eax
lea ecx, [ebp - 0x108]
call 0xd44246
mov dword [ebp - 0x108], 0xe40cb4
lea eax, [ebp - 0x108]
push 0xe4a720
push eax
call 0xd444b2
mov eax, dword [ebp - 0x24]
push eax
call 0xd42a43
pop ecx
mov dword [ebp - 0xac], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x491f7a
mov edx, ecx
neg edx
add edx, 0xfffffffe
cmp eax, edx
ja 0x4924bc
lea eax, [eax + ecx]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xb0], eax
jmp 0x4924bc
cmp eax, 0x10
jb 0x49256c
mov edx, dword [ebp - 0x5c]
jmp 0x49256f
lea edx, [ebp - 0x5c]
add ecx, eax
push ecx
adc eax, 0xc670a541
add byte [edx - 0x4ad0659c], ch
cli
and byte [0xcfc010d7], dl
jg 0x4925bc
xchg edi, eax
add eax, 0x29914523
mov bh, 0x5b
mov eax, dword [0x4d7ba1f6]
and eax, dword [ebp - 0x6f]
sub dword [edi - 0x5e095ea5], esi
jnp 0x4925e1
mul byte [ecx - 0x40ab285]
cmc
sti
jg 0x4925e9
xchg ebp, eax
add ebp, edx
mov byte [ebx], bl
inc edi
sbb dword [edx - 0x3e18a572], ebp
pop ebp
sbb edi, dword [esi + 0x2d59f516]
xor dword [eax + 0x53], ebp
or byte [ecx - 0x31b4a2bc], al
dec ebx
pushal
call 0x4b651b44
mov cl, 0xb5
popfd
rcr dword [ebp + 0x1b], 0xbe
push ss
cmc
pop ecx
sub eax, 0x8536831
add dword [ebp + ebx*2 + 0x4b], 0xe8604bce
mov ebp, esi
sbb ecx, dword [ebx - 0x4f]
mov ch, 0x9d
xchg edi, eax
loopne 0x492631
add al, 0xcb
jnp 0x4925fa
hlt
enter 0x1915, 0x17
out dx, al
sbb byte [edx + ebx*4 + 0x6bf1fb25], dl
push cs
and eax, 0xe6bf1fb
sub ebx, dword [ebp + 0x462555d5]
invalid
popfd
aad 0x55
and eax, 0xf457f046
arpl dx, si
test dword [eax - 0x2b], 0xc9f54490
dec eax
aad 0x90
inc esp
cmc
leave
inc eax
sbb dword [edi + 0x7b7124d9], 0x294f46ec
mov ds, ecx
mov ss, edi
and dword [ecx + 0x69ed5951], edx
adc al, 0x11
cli
sahf
hlt
in eax, dx
imul edx, dword [ecx + edx], 0x2cf49efa
invalid
jb 0x4926a2
cmp eax, 0x4bb4223d
sbb eax, 0x6401d910
and byte [eax], ch
adc cl, bl
add dword [eax + 0x28], esp
shr esi, 0xd2
and al, 0x15
and al, 0xf1
mov dword [ebp + 0x75], esp
invalid
push edx
xor esp, 0xc161f376
xchg esp, eax
inc eax
leave
sbb al, 0xa1
jo 0x492614
pop esi
stosd dword es:[edi], eax
lfs ecx, [ebp - 0x42d1fdbb]
dec ecx
inc edi
cmp eax, 0x4ed75a0
and al, 0xe0
add dword [ecx + 0x51], esp
and dh, dl
iretd
and al, ah
mov cl, 0x74
fsubrp st(1)
jecxz 0x49266b
add dword [edi + 0x11], edi
mov cl, 0xbc
nop
js 0x492703
push ecx
loopne 0x492639
xchg edi, eax
aam 0xb5
je 0x4926f3
or al, 0xa8
mov cl, 0x69
and byte [eax], ah
daa
hlt
push ss
xor dl, cl
inc esi
adc dword [ebp + 0x5a], ebp
js 0x492715
sub dword [edx + 0x4a], ebp
dec eax
fisttp dword [ecx - 0x34]
add eax, 0xa3634401
aad 0xa6
xchg esi, eax
add bh, cl
mov ch, 0xe0
test eax, 0xa8c5f080
xor dword [ebp + 0x161cc86b], 0xb973a692
xchg edx, eax
cmpsb byte [esi], byte es:[edi]
jae 0x4926b0
mov byte [0x40fdb219], dh
and dword es:[ebp + 0x6b71c5d4], ebx
jno 0x492770
test dword [edi + edi*8 - 0x14bdca7], 0x20f8b2e6
nop
out 0x95, eax
arpl word [esi], di
je 0x492748
jecxz 0x4926b1
arpl word [edx], sp
push esp
stc
pushal
mov al, 0x68
shl byte [ecx - 0xe65b02f], 1
sub dword [ecx + 0xbd8c44b], eax
inc ebp
cld
invalid
jns 0x4926db
inc esp
salc
out 0x61, al
je 0x4927b1
pop esp
inc esp
invalid
inc ecx
lodsd eax, dword [esi]
aaa
sub dword [esi + ecx*4 + 0x60c72133], edi
lodsd eax, dword [esi]
push esi
mov cl, 0x7d
sahf
pop ebx
add eax, 0x38636cd8
cdq
in eax, 0x27
stc
pop edx
sbb dword [ecx + 0x58], edi
xor al, 0x31
sbb al, byte [ebx]
lds esp, [ebp - 0x52]
jns 0x492812
popal
lock add dword [eax + 0x37020698], ebp
push es
add dh, byte [edi]
lea ebp, [esi]
inc ecx
xchg byte [edx + 0x27], cl
sbb dword [ebp + 0x2ecee565], ebp
xor ch, byte [edx - 0x4f]
pushfd
mov eax, 0xc307ff6c
movsd dword es:[edi], dword [esi]
jno 0x49279c
inc dword [edi]
ret
hlt
xchg ecx, eax
inc ecx
lodsb al, byte [esi]
cmc
test dword [eax + 0x46], edi
out 0x5d, eax
pcmpgtw mm6, qword [eax]
inc esi
and ebp, dword [0xfc20d043]
push ss
xchg dword [ecx - 0x31935338], ebp
push edi
adc eax, 0x780338c
xlatb
int1
and dl, byte [edi]
dec edx
xchg edi, eax
push esi
adc dword [ebp + 0x30], 0x2ecfd9f3
retf