Function at 0x485550
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x79edcc
mov eax, dword fs:[0]
push eax
sub esp, 0x31c
mov eax, dword [0x831184]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
cmp byte [esi + 0x1e4], 0
je 0x485923
mov dword [ebp - 0x1bc], 7
xor ecx, ecx
mov dword [ebp - 0x1b8], 0xc90086
mov dword [ebp - 0x1b4], 0xc900d9
mov dword [ebp - 0x1b0], 0xda00cc
mov dword [ebp - 0x1ac], 0xb000ca
lea eax, [ecx + 0xa9]
xor word [ebp + ecx*2 - 0x1b8], ax
inc ecx
mov eax, dword [ebp - 0x1bc]
cmp ecx, eax
jb 0x4855c1
xor ecx, ecx
mov word [ebp + eax*2 - 0x1b8], cx
lea eax, [ebp - 0x1b8]
mov dword [ebp - 0x190], eax
lea ecx, [ebp - 0x30c]
push 0x7cf388
lea eax, [ebp - 0x190]
push eax
call fcn.00486b40
mov dword [ebp - 4], 0
xor ecx, ecx
mov dword [ebp - 0x1d0], 7
mov dword [ebp - 0x1cc], 0xc400c6
mov dword [ebp - 0x1c8], 0xc300c7
mov dword [ebp - 0x1c4], 0xc100ca
mov dword [ebp - 0x1c0], 0xb000c1
nop dword [eax]
nop word [eax + eax]
lea eax, [ecx + 0xa9]
xor word [ebp + ecx*2 - 0x1cc], ax
inc ecx
mov eax, dword [ebp - 0x1d0]
cmp ecx, eax
jb 0x485650
xor ecx, ecx
mov word [ebp + eax*2 - 0x1cc], cx
lea eax, [ebp - 0x1cc]
mov dword [ebp - 0x190], eax
lea ecx, [ebp - 0x2dc]
lea eax, [ebp - 0x190]
push eax
push 0x7d9e1c
call fcn.00486c00
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2ac]
push 3
xor eax, eax
mov dword [ebp - 0x29c], 0
push 0x7d9df8
mov dword [ebp - 0x298], 7
mov word [ebp - 0x2ac], ax
call fcn.004044f0
lea eax, [esi + 0x1b4]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x294]
call fcn.00404120
mov byte [ebp - 4], 3
xor ecx, ecx
mov dword [ebp - 0x1e4], 7
mov dword [ebp - 0x1e0], 0xc300c1
mov dword [ebp - 0x1dc], 0xc400cc
mov dword [ebp - 0x1d8], 0xdd00c8
mov dword [ebp - 0x1d4], 0xb000db
nop word [eax + eax]
lea eax, [ecx + 0xa9]
xor word [ebp + ecx*2 - 0x1e0], ax
inc ecx
mov eax, dword [ebp - 0x1e4]
cmp ecx, eax
jb 0x485720
xor ecx, ecx
mov word [ebp + eax*2 - 0x1e0], cx
lea eax, [ebp - 0x1e0]
mov dword [ebp - 0x190], eax
lea ecx, [ebp - 0x27c]
lea eax, [ebp - 0x190]
push eax
push 0x7d9e00
call fcn.00486c00
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x24c]
push 3
xor eax, eax
mov dword [ebp - 0x23c], 0
push 0x7d9e08
mov dword [ebp - 0x238], 7
mov word [ebp - 0x24c], ax
call fcn.004044f0
lea eax, [esi + 0x1cc]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x234]
call fcn.00404120
lea eax, [ebp - 0x21c]
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x30c]
push eax
push ecx
lea ecx, [ebp - 0x21c]
call fcn.004481b0
mov byte [ebp - 4], 7
mov eax, 8
mov dword [ebp - 0x1a8], eax
xor ecx, ecx
mov dword [ebp - 0x1a4], 0xc900da
mov dword [ebp - 0x1a0], 0xd800c3
mov dword [ebp - 0x19c], 0xdd00cc
mov dword [ebp - 0x198], 0xc300c4
mov dword [ebp - 0x194], 0xb1
nop dword [eax]
nop word [eax + eax]
lea eax, [ecx + 0xa9]
xor word [ebp + ecx*2 - 0x1a4], ax
inc ecx
mov eax, dword [ebp - 0x1a8]
cmp ecx, eax
jb 0x485820
xor ecx, ecx
mov dword [ebp - 0x1e8], 7
mov word [ebp + eax*2 - 0x1a4], cx
xor eax, eax
mov dword [ebp - 0x1ec], ecx
lea ecx, [ebp - 0x1a4]
mov word [ebp - 0x1fc], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x485865
sub ecx, edx
lea eax, [ebp - 0x1a4]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x1fc]
call fcn.004044f0
push 0
lea eax, [ebp - 0x21c]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x1fc]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00421920
add esp, 0x10
lea ecx, [ebp - 0x1fc]
call fcn.00404490
lea ecx, [ebp - 0x21c]
call fcn.00446810
push fcn.00420a60
push 5
push 0x30
lea eax, [ebp - 0x30c]
mov byte [ebp - 4], 0xc
push eax
call fcn.0076e7c5
movsx eax, byte [ebp - 0x14]
test eax, eax
jne 0x4859af
mov ecx, esi
call fcn.00484bb0
mov dword [ebp - 4], 0xe
mov al, byte [ebp - 0x14]
test al, al
js 0x485918
movsx eax, al
lea ecx, [ebp - 0x189]
push ecx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x189], 0
push ecx
mov eax, dword [eax*4 + 0x7d76e8]
call eax
add esp, 8
mov byte [ebp - 0x14], 0xff
mov dword [ebp - 4], 0xffffffff
push 0x158
lea eax, [ebp - 0x188]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 4
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [esi + 0x1ec]
test eax, eax
je 0x485956
lock inc dword [eax + 4]
mov eax, dword [esi + 0x1e8]
mov dword [ecx], eax
mov eax, dword [esi + 0x1ec]
mov dword [ecx + 4], eax
lea ecx, [ebp - 0x188]
push esi
call fcn.00483b50
sub esp, 0xc
mov dword [ebp - 4], 0xf
lea ecx, [ebp - 0x188]
call fcn.00483f50
lea ecx, [ebp - 0x188]
call fcn.00485a40
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0076eb7e
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x328]
push eax
call fcn.00485a00
mov ecx, eax
call fcn.004131e0
push eax
lea ecx, [ebp - 0x1fc]
call fcn.00406b50
lea eax, [ebp - 0x1fc]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x19c]
call fcn.00484b30
push 0x826bd4
lea eax, [ebp - 0x19c]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
int3