Function at 0x859991
Capabilities:
Encode data using xor

Disassembly:
mov dword [esp + 4], edx
jmp 0x859265
jmp 0x859d09
mov eax, 0xf36682f5
sub eax, edi
push dword [esp]
pop edi
add esp, 4
jmp 0x859403
not eax
jmp 0x85962d
sub esi, ebp
add esi, 0x6d7fcebb
push dword [esp]
pop ebp
add esp, 4
jmp 0x859bca
mov edi, dword [esp]
add esp, 4
mov eax, esi
push dword [esp]
mov esi, dword [esp]
push ebx
mov ebx, esp
add ebx, 4
add ebx, 4
xchg dword [esp], ebx
jmp 0x8592c1
xor eax, dword [esp]
xor dword [esp], eax
xor eax, dword [esp]
pop esp
jmp 0x859068
mov eax, edx
mov edx, dword [esp]
add esp, 4
mov edx, eax
pop eax
push edx
mov edx, 0x6fc7a0e3
add esi, edx
pop edx
sub esi, edx
push eax
mov eax, 0x6fc7a0e3
sub esi, eax
mov eax, dword [esp]
jmp 0x8598cc
pop esi
add edx, 0x7fe6cf02
push eax
jmp 0x859b8a
sub ebx, 0x4399d79
push ecx
push ebx
sub dword [esp], 0x7ffd5535
pop ecx
add ecx, 0x7ffd5535
mov edx, ecx
mov ecx, dword [esp]
add esp, 4
pop ebx
jmp 0x8591c0
not dword [esp]
pop eax
neg eax
shr eax, 3
sub eax, 0xe3e062c9
mov edi, eax
mov eax, dword [esp]
jmp 0x85965a
add eax, 0x14ce830d
mov ebx, eax
push dword [esp]
pop eax
add esp, 4
sub edx, 0x3faff475
add edx, ebx
add edx, 0x3faff475
pop ebx
sub esi, edx
push dword [esp]
push dword [esp]
mov edx, dword [esp]
add esp, 4
jmp 0x85987a
pop edx
mov dword [esp], eax
mov dword [esp], esi
mov dword [esp], 0x669d116a
mov dword [esp], eax
pop dword [esi]
push esi
jmp 0x8593de
add esi, 0x37d7947f
jmp 0x859b2e
pop esp
push eax
push esp
pop eax
jmp 0x8592eb
push eax
push edi
mov edi, 0x7fe76d62
jmp 0x85906d
push eax
push dword [esp + 4]
pop eax
pop dword [esp]
jmp 0x859597
inc ebx
push eax
jmp 0x859911
push ebx
mov ebx, 0x7deecfa2
sub ebx, 0x7deecf9e
add eax, ebx
pop ebx
push ecx
mov ecx, 4
add eax, ecx
pop ecx
jmp 0x8591b1
sub ebx, 0x88ac74ba
mov ebp, ebx
mov ebx, dword [esp]
add esp, 4
jmp 0x859545
push eax
mov dword [esp], ecx
push edi
push eax
push 0x7fbac4c6
mov eax, dword [esp]
jmp 0x859819
pop edi
sub edi, ecx
pop ecx
mov edx, edi
mov edi, dword [esp]
push edi
mov dword [esp], 0x7ee681d6
mov dword [esp], eax
mov eax, esp
add eax, 4
add eax, 4
jmp 0x8592d6
mov dword [esp], edx
push eax
push edx
push edx
jmp 0x8593f4
or ecx, 0x5b3f6d18
jmp 0x859af3
mov dword [esp], ebx
push eax
push 0x7dae7a00
pop eax
jmp 0x859083
push edi
mov edi, 0x6cb53211
dec edi
xor edi, 0x7fff4fdc
not edi
dec edi
sub edi, 0xb8b6618a
jmp 0x8596b7
xor eax, 0xff75f8a6
add edx, eax
pop eax
add edx, ebp
sub edx, 0x3f7d5204
push edi
mov edi, esp
add edi, 4
jmp 0x8597cb
pop edx
neg edx
sub edx, 0x608111a0
mov edi, edx
pop edx
push ebp
mov ebp, 0x606e4115
or edi, ebp
pop ebp
sub esp, 4
mov dword [esp], ecx
mov ecx, 0
sub ecx, edi
xchg edi, ecx
mov ecx, dword [esp]
add esp, 4
shr edi, 2
xor edi, 0x7ff3145d
push ecx
push edi
mov edi, 0x7da72002
inc edi
xor edi, 0x2250bc03
push eax
mov eax, 0x225ec729
mov ecx, eax
pop eax
add ecx, edi
jmp 0x8593a7
sub eax, edi
sub eax, 0x373a4324
pop edi
jmp 0x859841
push esi
mov esi, 0xebb311f5
mov edx, esi
jmp 0x8591e9
mov esp, dword [esp]
add edx, ebp
push dword [esp]
pop ebp
add esp, 4
jmp 0x8595ab
push 0x251fa845
mov dword [esp], ebp
push 0x3f61b9c4
mov dword [esp], eax
jmp 0x859a5b
not eax
push edi
mov edi, 0x7d9dd893
jmp 0x8596c1
mov ebp, 0x68f7fc0e
jmp 0x85985e
add esp, 4
jmp 0x8596f2
pop edx
add edx, 0x7bfe5e60
xor edx, 0x51def7a5
push ebx
jmp 0x8592ca
add eax, 0x373a4324
jmp 0x8594d0
xor edi, 0x7d7fb994
or edi, 0x6cdf8bba
inc edi
add edi, 0x6e1df89e
xor edi, 0x2b53cc4c
add eax, edi
pop edi
mov ebx, eax
pop eax
shl ebx, 4
sub ebx, 0x5dad5261
dec ebx
shl ebx, 1
jmp 0x8591f6
mov ecx, edi
jmp 0x859758
pop edi
mov edx, ecx
push dword [esp]
jmp 0x85988f
sub edi, 4
xchg dword [esp], edi
pop esp
mov dword [esp], edx
mov dword [esp], eax
mov eax, 0x7fe6cf02
add edx, 0x7fdf9e76
sub edx, 0x608fc4f4
sub edx, eax
add edx, 0x608fc4f4
sub edx, 0x7fdf9e76
pop eax
pop ebp
sub esp, 4
mov dword [esp], esi
jmp 0x859b96
add esp, 4
push eax
jmp 0x85921a
add esp, 4
jmp 0x85905f
sub eax, 1
jmp 0x859232
push 0xda6dc38
mov dword [esp], edi
push edx
push 0x2fff747e
jmp 0x859460
add esp, 4
add esp, 4
dec ecx
jne 0x8594c6
jmp 0x8599c8
pop ecx
jmp 0x859836
add esp, 4
push dword [esp]
mov edx, dword [esp]
add esp, 4
push ebx
mov ebx, esp
jmp 0x859946
mov eax, 0x7aef6363
and eax, 0x7a57101d
shl eax, 8
shl eax, 6
inc eax
push ecx
mov ecx, 0x4fc1bf6c
sub ecx, 1
jmp 0x859930
add ecx, 0x57cd62f2
jmp 0x8593e9
add ebx, 4
add ebx, 4
xchg dword [esp], ebx
pop esp
push 0x603de700
mov dword [esp], edx
push 0x7e71214f
jmp 0x859662
push ebp
mov ebp, esp
add ebp, 4
sub ebp, 4
xchg dword [esp], ebp
jmp 0x859c61
sti
push ebp
jmp 0x85963a
mov dword [esp], ebx
mov ebx, 0x57ece081
jmp 0x8592e4
shl ecx, 4
xor ecx, 0x760b364f
jmp 0x859b62
and esi, ebp
pop ebp
and esi, 0x7efdc553
add esi, 0x66d5ac64
push edi
mov edi, 0x17a1c0b0
jmp 0x8592ad
sub esi, edi
sub esi, 0x37d7947f
jmp 0x859189
xor eax, ecx
pop ecx
sub ebx, eax
pop eax
shl ebx, 8
push edi
mov edi, 0x7b8eff79
sub edi, 0xb99c632
xor ebx, edi
jmp 0x859b7e
pop edi
add ebx, 0x6efde37e
jmp 0x859308
mov eax, 0x3ff7555e
neg eax
jmp 0x85941e
mov esi, 0x5ef313a9
push ebp
mov ebp, 0x6fbf0a7a
sub ebp, 0x64388436
jmp 0x859bb3
push edx
mov edx, 0x7dfe3b59
shl edx, 2
add edx, 0x7586e157
sub esi, edx
pop edx
jmp 0x859149
shl esi, 7
jmp 0x859bd2
push ebp
mov ebp, 0x45ba209c
xor ebp, 0x7f2bb116
shr ebp, 4
jmp 0x859be6
and ebp, 0x653f278f
and ebp, 0xf7a908e
xor ebp, 0x4af6b219
jmp 0x859b14
mov esp, dword [esp]
mov dword [esp], edi
jmp 0x859cc4
push edi
mov edi, esp
add edi, 4
jmp 0x859cf7
sub edi, 4
xchg dword [esp], edi
pop esp
mov dword [esp], edx
jmp 0x859331
pop ebp
jp 0x859d49
sbb ah, 0xa3
faddp st(4)
rol byte [edi + 0x31], 1
cli
adc al, 0x42
mov dh, 0xb9
jno 0x859d5d
mov esi, 0xd1dc8f98
stc
pop ds
inc edx
xor dword [edi - 0x30], esi
invalid
imul edx, ecx, 0x6388e55e
xchg ecx, eax
invalid
mov byte [0x3eb87476], al
inc esp
popal
pop dword [ebx - 0x24340ba4]
jno 0x859d36
popal
mov ecx, 0xd077317c
inc edi
mul byte [eax - 0x21]
mov eax, 0xd2a8468a
rol byte [edi - 0xa], 1
pushal
fistp qword [eax - 0x2d57b976]
push ds
mov ecx, 0x61e2bc88
cli
inc edi
xor dword [edi + 0x47], esi
xchg edx, eax
sbb eax, 0xdea3d480
jg 0x859d59
mov dword [0x47df7fde], eax
inc edi
xor dword [edx - 0x203d2252], edx
out 0xc, eax
fisubr word [ecx - 0x20ceb830]
or al, 0xde
test eax, 0xdf3147d0
ja 0x859d56
imul byte [ebx]
inc ebp
pop edx
sbb eax, 0xb64214fa
inc ecx
xor ebx, dword [ebx + 0x7a]
les ecx, [esi - 0x2f88a284]
inc edi
imul esi, dword [eax], 0xffffffe7
jl 0x859d82
loop 0x859d76
inc edi
xor dword [0x773d2a8d], ebp
rol byte [edi - 0x4a], 1
bound ebp, qword [ebx + esi*2]
inc edi
mov dh, 0x62
sub al, 0x73
dec esp
adc edi, esp
or eax, 0x732cbab6
dec esp
adc dword [ebp - 0x32], esi
sub al, 0x13
inc ebp
mov byte [0xa3e4801d], al
insd dword es:[edi], dx
sub eax, 0x773d005f
rol byte [edi + 0x59], 1
push edi
mov bl, byte [eax - 0x5c3b7fb2]
mov esi, 0x3d28f41c
ja 0x859dae
inc edi
push ds
pop ebp
inc ebp
mov edx, 0x4214fa1d
add byte [ebx], al
hlt