Function at 0x48fdf4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
xor edx, edx
mov dword [ebp - 4], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x490140
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
call fcn.00404b58
cmp dword [ebx + 0x188], 0
jge 0x48fe34
lea eax, [ebp - 4]
mov edx, 0x490158
call fcn.00404bf0
jmp 0x490011
mov eax, dword [ebx + 0x190]
cmp eax, 1
jl 0x48fe46
cmp eax, 0x400
jle 0x48fe58
lea eax, [ebp - 4]
mov edx, 0x490164
call fcn.00404bf0
jmp 0x490011
mov al, byte [ebx + 0x18e]
test al, al
je 0x48fe7c
cmp al, 1
je 0x48fe7c
cmp al, 2
je 0x48fe7c
lea eax, [ebp - 4]
mov edx, 0x490174
call fcn.00404bf0
jmp 0x490011
mov eax, dword [ebx + 0x194]
cmp eax, 1
jl 0x48fe8e
cmp eax, 0x400
jle 0x48fea0
lea eax, [ebp - 4]
mov edx, 0x490184
call fcn.00404bf0
jmp 0x490011
mov eax, dword [ebx + 0x188]
test eax, eax
jne 0x48ff1a
cmp dword [ebx + 0x190], 1
je 0x48fec5
lea eax, [ebp - 4]
mov edx, 0x490164
call fcn.00404bf0
jmp 0x490011
cmp byte [ebx + 0x18e], 0
je 0x48fee0
lea eax, [ebp - 4]
mov edx, 0x490174
call fcn.00404bf0
jmp 0x490011
cmp dword [ebx + 0xea80], 0
je 0x48fefb
lea eax, [ebp - 4]
mov edx, 0x490194
call fcn.00404bf0
jmp 0x490011
cmp dword [ebx + 0xea84], 0
je 0x490011
lea eax, [ebp - 4]
mov edx, 0x4901a0
call fcn.00404bf0
jmp 0x490011
cmp eax, dword [ebx + 0x190]
jge 0x48ff34
lea eax, [ebp - 4]
mov edx, 0x490164
call fcn.00404bf0
jmp 0x490011
cmp byte [ebx + 0x18e], 0
jne 0x48ff58
cmp dword [ebx + 0x190], 1
je 0x48ff58
lea eax, [ebp - 4]
mov edx, 0x490164
call fcn.00404bf0
jmp 0x490011
cmp byte [ebx + 0x18e], 1
jne 0x48ff83
mov eax, dword [ebx + 0x190]
cmp eax, 2
jl 0x48ff71
cmp eax, 0x10
jle 0x48ff83
lea eax, [ebp - 4]
mov edx, 0x490164
call fcn.00404bf0
jmp 0x490011
cmp byte [ebx + 0x18e], 2
jne 0x48ffad
mov eax, dword [ebx + 0x190]
cmp eax, 2
jl 0x48ff9e
cmp eax, 0x400
jle 0x48ffad
lea eax, [ebp - 4]
mov edx, 0x490164
call fcn.00404bf0
jmp 0x490011
cmp dword [ebx + 0xea80], 0
je 0x48ffc5
lea eax, [ebp - 4]
mov edx, 0x490194
call fcn.00404bf0
jmp 0x490011
mov esi, dword [ebx + 0x190]
mov eax, dword [ebx + esi*4 + 0xea80]
cmp eax, dword [ebx + 0x188]
je 0x48ffe6
lea edx, [ebp - 4]
mov eax, esi
call fcn.0040939c
jmp 0x490011
mov eax, esi
test eax, eax
jle 0x490011
mov esi, 1
mov edx, dword [ebx + esi*4 + 0xea80]
cmp edx, dword [ebx + esi*4 + 0xea7c]
jg 0x49000d
lea edx, [ebp - 4]
mov eax, esi
call fcn.0040939c
jmp 0x490011
inc esi
dec eax
jne 0x48fff1
cmp dword [ebp - 4], 0
je 0x4900de
mov eax, dword [ebp - 4]
mov edx, 0x490158
call fcn.00404f64
jne 0x490032
mov esi, dword [ebx + 0x188]
jmp 0x4900a3
mov eax, dword [ebp - 4]
mov edx, 0x490164
call fcn.00404f64
jne 0x490049
mov esi, dword [ebx + 0x190]
jmp 0x4900a3
mov eax, dword [ebp - 4]
mov edx, 0x490174
call fcn.00404f64
jne 0x490061
movzx esi, byte [ebx + 0x18e]
jmp 0x4900a3
mov eax, dword [ebp - 4]
mov edx, 0x490184
call fcn.00404f64
jne 0x490078
mov esi, dword [ebx + 0x194]
jmp 0x4900a3
mov eax, dword [ebp - 4]
call fcn.004094d8
mov esi, eax
mov esi, dword [ebx + esi*4 + 0xea80]
push 0x4901ac
push dword [ebp - 4]
push 0x4901bc
lea eax, [ebp - 4]
mov edx, 3
call fcn.00404ed8
push 0x4901c8
push dword [ebp - 4]
push 0x4901dc
lea eax, [ebp - 4]
mov edx, 3
call fcn.00404ed8
mov dword [ebp - 0xc], esi
mov byte [ebp - 8], 0
lea eax, [ebp - 0xc]
push eax
push 0
mov ecx, dword [ebp - 4]
mov dl, 1
mov eax, dword [0x4081a0]
call fcn.0040cf04
call fcn.0040456c
cmp byte [ebx + 0x18e], 1
jne 0x49012a
mov eax, dword [ebx + 0x188]
cdq
idiv dword [ebx + 0x190]
cmp eax, 0x1bb1
jg 0x49012a
mov eax, dword [ebx + 0x184]
mov dl, byte [eax]
mov eax, dword [ebx + 0x188]
dec eax
test eax, eax
jle 0x490120
mov esi, 1
mov ecx, dword [ebx + 0x184]
xor dl, byte [ecx + esi]
inc esi
dec eax
jne 0x490113
xor eax, eax
mov al, dl
mov dword [ebx + 0x198], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x490147
lea eax, [ebp - 4]
call fcn.00404b58
ret