Function at 0x1004f5d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2b4
mov eax, dword [0x101165b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2a8], eax
mov eax, dword [ebp + 0x10]
push esi
mov esi, dword [eax]
mov dword [ebp - 0x298], eax
push edi
lea eax, [ebx + esi + 8]
mov edi, edx
push eax
mov dword [ebp - 0x2ac], edi
mov dword [ebp - 0x2b4], ecx
mov dword [ebp - 0x28c], 0
call fcn.10085e5d
push esi
mov dword [ebp - 0x2a0], eax
call fcn.10085e5d
push esi
mov dword [ebp - 0x290], eax
call fcn.10085e5d
mov dword [ebp - 0x294], eax
sub edi, esi
lea eax, [edi - 1]
push eax
mov dword [ebp - 0x2a4], eax
call fcn.10085e5d
push edi
mov dword [ebp - 0x288], eax
call fcn.10085e5d
add esp, 0x14
mov edi, eax
mov dword [ebp - 0x29c], edi
test ebx, ebx
je 0x1004f674
push ebx
call fcn.10085e5d
add esp, 4
mov dword [ebp - 0x28c], eax
mov ecx, dword [ebp - 0x2ac]
mov eax, ecx
sub eax, ebx
sub eax, esi
sub eax, 2
lea edx, [ebx + esi + 2]
mov dword [ebp - 0x2b0], eax
cmp ecx, edx
jae 0x1004f6f2
mov eax, dword [ebp - 0x2a0]
push eax
call fcn.10085a2f
mov ecx, dword [ebp - 0x290]
push ecx
call fcn.10085a2f
mov edx, dword [ebp - 0x294]
push edx
call fcn.10085a2f
mov eax, dword [ebp - 0x288]
push eax
call fcn.10085a2f
push edi
call fcn.10085a2f
add esp, 0x14
test ebx, ebx
je 0x1004f6dd
mov ecx, dword [ebp - 0x28c]
push ecx
call fcn.10085a2f
add esp, 4
pop edi
mov eax, 0xfffffbba
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1008600b
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x2a8]
cmp byte [ecx + eax - 1], 0xbc
je 0x1004f760
mov edx, dword [ebp - 0x2a0]
push edx
call fcn.10085a2f
mov eax, dword [ebp - 0x290]
push eax
call fcn.10085a2f
mov ecx, dword [ebp - 0x294]
push ecx
call fcn.10085a2f
mov edx, dword [ebp - 0x288]
push edx
call fcn.10085a2f
push edi
call fcn.10085a2f
add esp, 0x14
test ebx, ebx
je 0x1004f6dd
mov eax, dword [ebp - 0x28c]
push eax
call fcn.10085a2f
add esp, 4
pop edi
mov eax, 0xfffffbba
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1008600b
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x2a4]
mov edx, dword [ebp - 0x288]
push ecx
push eax
push edx
call fcn.10086490
mov eax, dword [ebp - 0x2a8]
add eax, dword [ebp - 0x2a4]
mov edx, dword [ebp - 0x290]
push esi
push eax
push edx
call fcn.10086490
mov eax, dword [ebp - 0x2a4]
mov ecx, dword [ebp - 0x290]
push esi
push eax
push edi
mov edi, dword [ebp - 0x298]
call fcn.1004d750
mov edi, eax
add esp, 0x24
test edi, edi
je 0x1004f815
mov ecx, dword [ebp - 0x2a0]
push ecx
call fcn.10085a2f
mov edx, dword [ebp - 0x290]
push edx
call fcn.10085a2f
mov eax, dword [ebp - 0x294]
push eax
call fcn.10085a2f
mov ecx, dword [ebp - 0x288]
push ecx
call fcn.10085a2f
mov edx, dword [ebp - 0x29c]
push edx
call fcn.10085a2f
add esp, 0x14
test ebx, ebx
je 0x1004f803
mov eax, dword [ebp - 0x28c]
push eax
call fcn.10085a2f
add esp, 4
mov eax, edi
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1008600b
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x2a4]
test ecx, ecx
je 0x1004f839
mov eax, dword [ebp - 0x288]
mov edi, dword [ebp - 0x29c]
sub edi, eax
lea ecx, [ecx]
mov dl, byte [edi + eax]
xor byte [eax], dl
inc eax
dec ecx
jne 0x1004f830
mov ecx, dword [ebp - 0x2ac]
mov edi, dword [ebp - 0x288]
add ecx, ecx
add ecx, ecx
add ecx, ecx
sub ecx, dword [ebp + 0xc]
mov eax, 0xff
sar eax, cl
and byte [edi], al
test ebx, ebx
je 0x1004f876
mov ecx, dword [ebp - 0x2b0]
mov eax, dword [ebp - 0x28c]
push ebx
lea edx, [ecx + edi + 1]
push edx
push eax
call fcn.10086490
add esp, 0xc
mov edi, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x2b4]
push esi
xor eax, eax
push ecx
lea edx, [edi + 8]
mov dword [edi], eax
push edx
mov dword [edi + 4], eax
call fcn.10086490
add esp, 0xc
test ebx, ebx
je 0x1004f8b0
mov eax, dword [ebp - 0x28c]
push ebx
push eax
lea ecx, [edi + esi + 8]
push ecx
call fcn.10086490
add esp, 0xc
mov edx, dword [ebp - 0x298]
push edx
lea eax, [ebp - 0x284]
push eax
call sym.cis_cc_3.2.dll_HASH_Initialize
lea eax, [ebx + esi + 8]
push eax
lea ecx, [ebp - 0x284]
push edi
push ecx
call sym.cis_cc_3.2.dll_HASH_Update_PCIS
mov ecx, dword [ebp - 0x294]
lea edx, [ebp - 0x284]
push edx
lea eax, [ebp - 0x2a8]
push eax
push ecx
call sym.cis_cc_3.2.dll_HASH_Finalize
add esp, 0x20
mov dword [ebp - 0x298], 0
test esi, esi
je 0x1004f929
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x294]
sub edx, eax
mov edi, edi
mov cl, byte [eax]
cmp cl, byte [edx + eax]
jne 0x1004f987
mov ecx, dword [ebp - 0x298]
inc ecx
inc eax
mov dword [ebp - 0x298], ecx
cmp ecx, esi
jb 0x1004f910
push edi
call fcn.10085a2f
mov ecx, dword [ebp - 0x290]
push ecx
call fcn.10085a2f
mov edx, dword [ebp - 0x294]
push edx
call fcn.10085a2f
mov eax, dword [ebp - 0x288]
push eax
call fcn.10085a2f
mov ecx, dword [ebp - 0x29c]
push ecx
call fcn.10085a2f
add esp, 0x14
test ebx, ebx
je 0x1004f975
mov edx, dword [ebp - 0x28c]
push edx
call fcn.10085a2f
add esp, 4
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1008600b
mov esp, ebp
pop ebp
ret
push edi
call fcn.10085a2f
mov edx, dword [ebp - 0x290]
push edx
call fcn.10085a2f
mov eax, dword [ebp - 0x294]
push eax
call fcn.10085a2f
mov ecx, dword [ebp - 0x288]
push ecx
call fcn.10085a2f
mov edx, dword [ebp - 0x29c]
push edx
call fcn.10085a2f
add esp, 0x14
test ebx, ebx
je 0x1004f6dd
mov eax, dword [ebp - 0x28c]
push eax
call fcn.10085a2f
mov ecx, dword [ebp - 4]
add esp, 4
pop edi
xor ecx, ebp
mov eax, 0xfffffbba
pop esi
call fcn.1008600b
mov esp, ebp
pop ebp
ret