Function at 0x608044
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x609103
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x60911c
call fcn.0063caf8
mov eax, dword [ebp - 4]
mov byte [eax + 0x931], 1
mov eax, dword [ebp - 4]
mov byte [eax + 0x8b4], 0
mov eax, dword [0x65a970]
mov eax, dword [eax]
movzx edx, byte [eax + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e8]
call fcn.004ca858
mov eax, dword [0x65a970]
mov eax, dword [eax]
movzx edx, byte [eax + 0x99]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c4]
call fcn.004ca858
mov eax, dword [0x65a970]
mov eax, dword [eax]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3dc]
mov ecx, dword [eax]
call dword [ecx + 0xe0]
mov eax, dword [0x65a970]
mov eax, dword [eax]
movzx edx, byte [eax + 0x3b1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x554]
mov ecx, dword [eax]
call dword [ecx + 0xe0]
mov eax, dword [0x65a970]
mov eax, dword [eax]
movzx edx, byte [eax + 0x3b8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x568]
mov ecx, dword [eax]
call dword [ecx + 0xdc]
mov eax, dword [0x65a970]
mov eax, dword [eax]
movzx edx, byte [eax + 0x535]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x8a0]
mov ecx, dword [eax]
call dword [ecx + 0xdc]
mov eax, dword [ebp - 4]
call fcn.0060d290
mov eax, dword [ebp - 4]
call fcn.0060d314
mov eax, dword [ebp - 4]
call fcn.0060d3a4
mov eax, dword [0x65a970]
mov eax, dword [eax]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
call fcn.00596910
mov eax, dword [0x65a970]
mov eax, dword [eax]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x434]
call fcn.004a6c80
mov eax, dword [0x65a970]
mov eax, dword [eax]
mov edx, dword [eax + 0x45c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6e8]
mov ecx, dword [eax]
call dword [ecx + 0xe0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov edx, dword [eax + 0x284]
mov eax, dword [ebp - 4]
call fcn.00607edc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0xe0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov eax, dword [eax + 0x284]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x608216
inc esi
xor ebx, ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov eax, dword [eax + 0x284]
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [0x65a970]
mov edx, dword [edx]
cmp eax, dword [edx + 0x38]
jne 0x608212
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0xe0]
jmp 0x608216
inc ebx
dec esi
jne 0x6081da
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x548]
mov edx, dword [eax + 0x260]
mov eax, dword [ebp - 4]
call fcn.00607edc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x548]
mov eax, dword [eax + 0x260]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x608281
inc esi
xor ebx, ebx
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x548]
mov eax, dword [edi + 0x260]
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, eax
mov eax, dword [0x65a970]
mov eax, dword [eax]
call fcn.0061dc94
mov ecx, eax
xor cl, 1
mov eax, edi
mov edx, ebx
call fcn.0053b708
inc ebx
dec esi
jne 0x60824b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x488]
mov eax, dword [eax + 0x2dc]
mov edx, dword [eax]
call dword [edx + 0x20]
xor eax, eax
push ebp
push 0x6083af
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x488]
mov eax, dword [eax + 0x2dc]
call fcn.00425a10
mov eax, dword [0x65a894]
mov eax, dword [eax]
call fcn.00406e94
mov esi, eax
dec esi
test esi, esi
jl 0x60838d
inc esi
xor ebx, ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x488]
mov eax, dword [eax + 0x2dc]
call fcn.004d8a3c
mov edi, eax
mov eax, ebx
add eax, eax
mov edx, dword [0x65a894]
mov edx, dword [edx]
mov edx, dword [edx + eax*8 + 0xc]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x20]
mov eax, ebx
add eax, eax
mov edx, dword [0x65a894]
mov edx, dword [edx]
movzx edx, byte [edx + eax*8 + 8]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov eax, ebx
add eax, eax
mov edx, dword [0x65a894]
mov edx, dword [edx]
mov eax, dword [edx + eax*8 + 4]
mov edx, dword [0x65a970]
mov edx, dword [edx]
cmp eax, dword [edx + 0x78]
jne 0x608348
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x488]
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0xe0]
jmp 0x608385
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x488]
mov edx, dword [eax]
call dword [edx + 0xdc]
inc eax
jne 0x608385
mov eax, ebx
add eax, eax
mov edx, dword [0x65a894]
mov edx, dword [edx]
cmp dword [edx + eax*8 + 4], 0x409
jne 0x608385
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x488]
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0xe0]
inc ebx
dec esi
jne 0x6082d1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6083b6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x488]
mov eax, dword [eax + 0x2dc]
mov edx, dword [eax]
call dword [edx + 0x24]
ret