Function at 0x1020602
Capabilities:
Encode data using xor

Disassembly:
jge 0x10206e0
sub esp, 4
mov dword [esp], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x12c0b75
mov eax, dword fs:[0]
sub esp, 4
mov dword [esp], eax
mov dword fs:[0], esp
sub esp, 4
mov dword [esp], 0x11f
xor dword [esp], 0x17b
sub esp, dword [esp]
sub esp, 4
mov dword [esp], ebx
sub esp, 4
mov dword [esp], esi
mov dword [ebp - 4], 1
push 0
mov ecx, 0xfff89491
lea ecx, [ecx + ebp + 0x76b2f]
call fcn.00e3c0e0
mov byte [ebp - 4], 2
push 0
mov ecx, 0xfffc9921
lea ecx, [ecx + ebp + 0x3666b]
call fcn.00e3c0e0
mov byte [ebp - 4], 3
mov ecx, 0xfff8ed3d
lea ecx, [ecx + ebp + 0x712cf]
call fcn.012431c0
mov esi, eax
mov ecx, 0xfff2e6af
lea ecx, [ecx + ebp + 0xd1991]
call fcn.012431c0
imul eax, eax, 0x64
add esi, eax
sub esp, 4
mov dword [esp], esi
mov ecx, 0xfff87b2f
lea ecx, [ecx + ebp + 0x7845d]
call fcn.00e3bd50
mov ecx, 0xfff6c0f9
lea ecx, [ecx + ebp + 0x93e93]
call fcn.012431c0
sub esp, 4
mov dword [esp], eax
call 0x1020602
imul ebp, dword [esi], 0x115b033
out dx, eax
ffreep st(1)
add dword [esp], 0xae
push dword [esp]
sub dword [esp], 0xac
push dword [esp]
xchg dword [esp], ebp
mov ebp, dword [ebp]
push eax
push ss
pop ss
pushfd
mov eax, dword [esp]
test ah, 1
je 0x102062d
mov ecx, 0x7be
xor eax, eax
je 0x1020632
call 0x17525ed3
popfd
pop eax
push eax
push ss
pop ss
pushfd
mov eax, dword [esp]
test ah, 1
je 0x1020645
mov ecx, 0x7be
xor eax, eax
je 0x102064a
call 0xed855eeb
and bh, al
inc esp
and al, 0x1c
outsb dx, byte [esi]
movsb byte es:[edi], byte [esi]
mov al, byte [0x2444c7f3]
sbb byte [ecx], bh
add al, byte [eax]
popfd
pop eax
sub esp, 0x20
mov dword [esp + 0x1c], 0xf3a0a46e
mov dword [esp + 0x18], 0x20079
mov dword [esp + 0x14], eax
mov eax, 0x10205d0
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], eax
xor eax, eax
mov edi, dword [esp + 0x1c]
xchg esi, esi
mov edi, dword [edi]
nop
xor eax, edi
add dword [esp + 0x1c], 4
dec word [esp + 0x18]
jne 0x1020672
mov edi, dword [esp + 0x10]
add ebp, eax
mov eax, dword [esp + 0x14]
nop
add esp, 0x20
nop
xchg dword [esp], ebp
mov dword [esp + 4], 0xc00004c2
jmp 0x102069f
ret 4
sub esp, 4
mov dword [esp], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x12c0b75
mov eax, dword fs:[0]
sub esp, 4
mov dword [esp], eax
mov dword fs:[0], esp
sub esp, 4
mov dword [esp], 0x44e
xor dword [esp], 0x42a
sub esp, dword [esp]
sub esp, 4
mov dword [esp], ebx
sub esp, 4
mov dword [esp], esi
mov dword [ebp - 4], 1
push 0
mov ecx, 0xfffc0185
lea ecx, [ecx + ebp + 0x3fe3b]
call fcn.00e3c0e0
mov byte [ebp - 4], 2
push 0
mov ecx, 0xfff74a9f
lea ecx, [ecx + ebp + 0x8b4ed]
call fcn.00e3c0e0
mov byte [ebp - 4], 3
mov ecx, 0xfff5d497
lea ecx, [ecx + ebp + 0xa2b75]
call fcn.012431c0
mov esi, eax
mov ecx, 0xfffb8767
lea ecx, [ecx + ebp + 0x478d9]
call fcn.012431c0
imul eax, eax, 0x64
add esi, eax
sub esp, 4
mov dword [esp], esi
mov ecx, 0xfff117b5
lea ecx, [ecx + ebp + 0xee7d7]
call fcn.00e3bd50
mov ecx, 0xfffb8bbd
lea ecx, [ecx + ebp + 0x473cf]
call fcn.012431c0
sub esp, 4
mov dword [esp], eax
call 0x10207bd
test byte [ecx + 0x15aaec0d], cl
add dword [edx + ebp*2 + 0x5c], ecx
add dword [esp], 0x36
push dword [esp]
sub dword [esp], 0x33
push dword [esp]
xchg dword [esp], ebx
mov ebx, dword [ebx]
add ebx, 0x2696
xchg dword [esp], ebx
mov dword [esp + 4], 0xea0004c2
jmp 0x10207e3
ret 4