Function at 0x4844d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x79d60c
mov eax, dword fs:[0]
push eax
sub esp, 0x31c
mov eax, dword [0x82f184]
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 0x4848a3
mov dword [ebp - 0x1bc], 7
xor ecx, ecx
mov dword [ebp - 0x1b8], 0xda0097
mov dword [ebp - 0x1b4], 0xde00c8
mov dword [ebp - 0x1b0], 0xc900dd
mov dword [ebp - 0x1ac], 0xbf00db
lea eax, [ecx + 0xb8]
xor word [ebp + ecx*2 - 0x1b8], ax
inc ecx
mov eax, dword [ebp - 0x1bc]
cmp ecx, eax
jb 0x484541
xor ecx, ecx
mov word [ebp + eax*2 - 0x1b8], cx
lea eax, [ebp - 0x1b8]
mov dword [ebp - 0x190], eax
lea ecx, [ebp - 0x30c]
push 0x7cd378
lea eax, [ebp - 0x190]
push eax
call fcn.00485ac0
mov dword [ebp - 4], 0
xor ecx, ecx
mov dword [ebp - 0x1d0], 7
mov dword [ebp - 0x1cc], 0xd700d7
mov dword [ebp - 0x1c8], 0xd400d6
mov dword [ebp - 0x1c4], 0xd200db
mov dword [ebp - 0x1c0], 0xbf00d0
nop dword [eax]
nop word [eax + eax]
lea eax, [ecx + 0xb8]
xor word [ebp + ecx*2 - 0x1cc], ax
inc ecx
mov eax, dword [ebp - 0x1d0]
cmp ecx, eax
jb 0x4845d0
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 0x7d7dac
call fcn.00485b80
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2ac]
push 3
xor eax, eax
mov dword [ebp - 0x29c], 0
push 0x7d7dbc
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], 0xd000d0
mov dword [ebp - 0x1dc], 0xd300dd
mov dword [ebp - 0x1d8], 0xce00d9
mov dword [ebp - 0x1d4], 0xbf00ca
nop word [eax + eax]
lea eax, [ecx + 0xb8]
xor word [ebp + ecx*2 - 0x1e0], ax
inc ecx
mov eax, dword [ebp - 0x1e4]
cmp ecx, eax
jb 0x4846a0
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 0x7d7db4
call fcn.00485b80
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x24c]
push 3
xor eax, eax
mov dword [ebp - 0x23c], 0
push 0x7d7dd0
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.004481e0
mov byte [ebp - 4], 7
mov eax, 8
mov dword [ebp - 0x1a8], eax
xor ecx, ecx
mov dword [ebp - 0x1a4], 0xda00cb
mov dword [ebp - 0x1a0], 0xcf00d2
mov dword [ebp - 0x19c], 0xce00dd
mov dword [ebp - 0x198], 0xcc00d5
mov dword [ebp - 0x194], 0xc0
nop dword [eax]
nop word [eax + eax]
lea eax, [ecx + 0xb8]
xor word [ebp + ecx*2 - 0x1a4], ax
inc ecx
mov eax, dword [ebp - 0x1a8]
cmp ecx, eax
jb 0x4847a0
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 0x4847e5
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.00446830
push fcn.00420a60
push 5
push 0x30
lea eax, [ebp - 0x30c]
mov byte [ebp - 4], 0xc
push eax
call fcn.0076d1e5
movsx eax, byte [ebp - 0x14]
test eax, eax
jne 0x48492f
mov ecx, esi
call fcn.00483b30
mov dword [ebp - 4], 0xe
mov al, byte [ebp - 0x14]
test al, al
js 0x484898
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 + 0x7d56d8]
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 0x4848d6
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.00482ad0
sub esp, 0xc
mov dword [ebp - 4], 0xf
lea ecx, [ebp - 0x188]
call fcn.00482ed0
lea ecx, [ebp - 0x188]
call fcn.004849c0
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.0076d59e
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x328]
push eax
call fcn.00484980
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.00483ab0
push 0x824a64
lea eax, [ebp - 0x19c]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
int3