Function at 0x484190
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x70c98d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x68
mov eax, dword [0x7b7fc0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x78], ecx
mov edi, dword [ebx + 8]
lea eax, [ebp - 0x60]
mov esi, dword [ebx + 0xc]
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x23], 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x68], 4
test esi, esi
je 0x484249
test edi, edi
je 0x484213
cmp esi, 0x3c
ja 0x484213
push esi
push edi
push eax
call fcn.00678240
add esp, 0xc
jmp 0x484249
push 0x3c
lea eax, [ebp - 0x60]
push 0
push eax
call fcn.00678c60
add esp, 0xc
test edi, edi
jne 0x484234
call fcn.0068bca3
mov dword [eax], 0x16
jmp 0x484244
cmp esi, 0x3c
jbe 0x484249
call fcn.0068bca3
mov dword [eax], 0x22
call fcn.00681d70
mov eax, 0x3c
sub eax, esi
push eax
lea eax, [ebp - 0x60]
add eax, esi
push 0
push eax
call fcn.00678c60
add esp, 0xc
lea edx, [ebp - 0x68]
lea ecx, [ebp - 0x64]
call fcn.0045d8d0
mov eax, dword [ebp - 0x1c]
mov ecx, 0xf
shr esi, 2
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], ecx
mov dword [eax + esi*4], esi
nop dword [eax + eax]
mov eax, 8
mov dword [ebp - 0x74], 0xf
xor edi, edi
mov dword [ebp - 0x6c], eax
jmp 0x4842a8
mov ecx, 0xf
add eax, 5
mov esi, dword [ebp - 0x1c]
xor edx, edx
div ecx
mov eax, dword [ebp - 0x6c]
mov ecx, dword [esi + edx*4]
xor edx, edx
div dword [ebp - 0x64]
mov eax, dword [ebp - 0x70]
add eax, edi
xor ecx, dword [esi + edx*4]
rol ecx, 3
xor ecx, eax
mov eax, dword [ebp - 0x6c]
xor dword [edi + esi], ecx
inc eax
add edi, 4
mov dword [ebp - 0x6c], eax
sub dword [ebp - 0x74], 1
jne 0x4842a3
mov edi, 4
xor ecx, ecx
lea eax, [ecx + 0xe]
mov esi, dword [ebp - 0x1c]
xor edx, edx
div dword [ebp - 0x64]
mov eax, dword [esi + edx*4]
and eax, 0x1ff
mov eax, dword [eax*4 + 0x76afb8]
add eax, dword [esi + ecx*4]
rol eax, 9
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, 0xf
jb 0x4842e4
sub edi, 1
jne 0x4842e2
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x68]
inc dword [ebp - 0x70]
mov ecx, dword [edx + 0xbc]
mov eax, dword [eax]
mov dword [esi + ecx], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 0xbc]
mov eax, dword [eax + 0x10]
mov dword [esi + ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 0xbc]
mov eax, dword [eax + 0x20]
mov dword [esi + ecx + 8], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 0xbc]
mov eax, dword [eax + 0x30]
mov dword [esi + ecx + 0xc], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 0xbc]
mov eax, dword [eax + 4]
mov dword [esi + ecx + 0x10], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 0xbc]
mov eax, dword [eax + 0x14]
mov dword [esi + ecx + 0x14], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 0xbc]
mov eax, dword [eax + 0x24]
mov dword [esi + ecx + 0x18], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 0xbc]
mov eax, dword [eax + 0x34]
mov dword [esi + ecx + 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 0xbc]
mov eax, dword [eax + 8]
mov dword [esi + ecx + 0x20], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 0xbc]
mov eax, dword [eax + 0x18]
mov dword [esi + ecx + 0x24], eax
add esi, 0x28
mov dword [ebp - 0x68], esi
lea ecx, [edi + 0xf]
cmp esi, 0xa0
jb 0x484290
mov ecx, 0x14
mov dword [ebp - 0x64], ecx
nop word [eax + eax]
mov eax, dword [edx + 0xbc]
mov edx, dword [eax + ecx]
add eax, ecx
mov dword [ebp - 0x68], eax
mov edi, edx
or edi, 3
and edx, 3
mov ecx, edi
mov esi, edi
shr esi, 1
not ecx
xor esi, ecx
lea eax, [edi + edi]
mov edx, dword [edx*4 + 0x76b3dc]
xor eax, ecx
mov ecx, dword [ebp - 0x68]
and esi, eax
and esi, 0x7ffffffe
mov eax, esi
shr eax, 1
and esi, eax
mov ecx, dword [ecx - 4]
mov eax, esi
rol edx, cl
shr eax, 2
and esi, eax
mov ecx, dword [ebp - 0x64]
mov eax, esi
add ecx, 8
shr eax, 4
and esi, eax
mov dword [ebp - 0x64], ecx
lea eax, [esi + esi]
or esi, eax
lea eax, [esi*4]
or esi, eax
mov eax, esi
shl eax, 4
or eax, esi
and edx, eax
mov eax, dword [ebp - 0x68]
and edx, 0x7ffffffc
xor edx, edi
mov dword [eax], edx
mov edx, dword [ebp - 0x78]
cmp ecx, 0x94
jb 0x4843e0
mov edi, dword [ebp - 0x1c]
lea eax, [ebp - 0x60]
cmp edi, eax
jne 0x48447d
mov ecx, dword [ebp - 0x20]
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0065d40e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc