Function at 0x813a54
Capabilities:
Encode data using xor

Disassembly:
jmp 0x813a5e
pushal
call 0x813a64
pop ebp
sub ebp, 0x10
sub ebp, 0x413a54
jmp 0x813a7a
mov eax, 0x413a54
add eax, ebp
add eax, 0x4c
mov ecx, 0x5ee
mov edx, 0xb55cc28c
xor byte [eax], dl
inc eax
dec ecx
jne 0x813a91
jmp 0x813aa4
pop es
inc ecx
pop es
add eax, 0x8c8c8cb0
or eax, 0x8c8c744d
mov word [edi - 0x7377cbbf], cs
mov word [esi + esi - 0x7373735c], cs
jnp 0x813b2e
pop dword [edi + eax + 0xd]
or byte [esp + ecx*4 - 0x23b67074], 1
call 0x8886ab79
test al, 0xe4
pushal
or eax, dword [edx + 0x3eeae48c]
mov esi, 0xa8a08d8c
in al, 0xf0
in al, dx
aaa
mov dword fs:[esp + ecx*4 - 0x73439a74], ecx
mov word [ecx + ebx*8 - 0x73571fff], cs
mov esp, 0xd98c8c8c
add eax, esp
test al, 0x8c
pop es
or dword [esp + ecx*4 + 0x19078c8c], eax
or byte [esp + ecx*4 - 0x63fef874], 0x8c
mov word [ebp + ecx*2 - 0x7142719b], cs
cmovle ecx, dword [eax + 0x780983c5]
jae 0x813b86
jae 0x813b1c
mov al, byte [0xa8e801a8]
mov byte [esi - 0x80], cl
mov word [edi], es
add byte [eax - 0x73737378], ch
in al, 0x60
or byte [edi + eax - 0x73775800], 0x8c
mov esp, fs
pushal
or eax, dword [edx + 0x3eeae48c]
mov esi, 0xa8a08d8c
frstor dword [ecx + ecx*4 - 0x74]
mov word [ebp - 0x73737133], cs
mov word [ebp + 0x64dda8a0], cs
mov dword [esp + ecx*4 - 0x71329a74], ecx
mov word [ecx + ebx*8 - 0x73571fff], cs
fld dword [ecx]
loopne 0x813ae9
test al, 0x8c
invalid
jae 0x813b3d
xor byte [ebx - 7], 0x84
dec byte fs:[esp + ecx*4 - 0x7bcef874]
mov word [esp + ecx*4 - 0x32182f3], cs
test byte [esp + ecx*4 - 0x2182f274], cl
cld
inc ecx
add ecx, dword [0x41fcde7d]
add edi, dword [edi + 0xf5ebf45]
mov esp, eax
or dword [eax], 0xffffffc2
mov word [esp + ecx*4 - 0x733bfb7d], cs
mov word [edx + ebp*8 + 0xcb59007], cs
ja 0x813bde
or dword [eax], 0xffffff96
mov word [esp + ecx*4 - 0x7c9a88f4], cs
or byte [ebp - 0x15737374], bl
or eax, 0x83a97377
or byte [ecx - 0x32737374], bl
inc eax
jae 0x813c0c
popfd
mov word [esp + ecx*4 + 0x73770dea], cs
test eax, 0x8c990883
mov word [ebp + ecx*8 + 0x73734065], cs
jae 0x813b40
sal byte [ebp - 0x76b2f073], 0xf
mov byte fs:[ebp + 0x31], ah
jae 0x813c1b
jae 0x813b4f
fdiv dword [ebp - 0x75b2f072]
pcmpgtd mm1, qword [eax + 0x6589640f]
daa
jae 0x813c2d
jae 0x813b8d
dec esi
or byte [ecx + ebx*8 - 0x24259ff9], 0xd9
pop es
stc
add byte [edi], 0xf1
test byte [eax + 0x3e], dh
or al, 6
mov cl, byte [0x8c8c8d4a]
mov word [ebx + ecx*4], es
or eax, 0x8c8c8d4b
invalid
aaa
mov cs, word [esp + ecx*4 - 0x7ca17174]
or dword [ecx + 0x68c8c8c], ecx
lcall 0x540f, 0x835e9eca
jae 0x813c68
jae 0x813b85
pop esi
or dword [ecx], 0xffffff89
mov word [esp + ecx*4 - 0x613565fa], cs
pop esi
or dword [edi], 0xffffffe6
mov word [esp + ecx*4 + 0x5e8e4cbf], cs
pop esi
or dword [ecx], 0xffffff89
mov word [esp + ecx*4 - 0x613565fa], cs
pop esi
or dword [edi], 0xffffffa6
lea ecx, [esp + ecx*4 + 0x9835e8e]
mov dword [esp + ecx*4 - 0x3565f974], ecx
sahf
pop esi
lahf
dec esp
mov ds, word [esi - 0x7d]
or dword [ecx + 0x68c8c8c], ecx
lcall 0x8e4c, 0x9f5e9eca
pop esi
or dword [ecx], 0xffffff89
mov word [esp + ecx*4 - 0x613565fa], cs
pop esi
lahf
dec esp
mov ds, word [esi - 0x7d]
or dword [ecx + 0x68c8c8c], ecx
lcall 0x834c, 0x9f5e9eca
or byte [edx + 0x78c8c8c], cl
push ebx
cmpsd dword [esi], dword es:[edi]
push esp
push es
pop dword [ebx + ecx*4]
retf