Function at 0x1004f240
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4bc
mov eax, dword [0x101165b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push edi
mov dword [ebp - 0x4b8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x4bc], ecx
mov ecx, dword [ebp + 0x14]
mov ebx, dword [ecx]
mov edi, eax
sub edi, esi
sub edi, ebx
mov dword [ebp - 0x4b4], ecx
lea ecx, [esi + ebx + 2]
sub edi, 2
mov dword [ebp - 0x4b0], eax
mov dword [ebp - 0x494], edx
mov dword [ebp - 0x498], 0
cmp eax, ecx
jae 0x1004f2ae
pop edi
mov eax, 0xfffffbbb
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1008600b
mov esp, ebp
pop ebp
ret
lea edx, [esi + ebx + 8]
push edx
call fcn.10085e5d
push ebx
mov dword [ebp - 0x4a4], eax
call fcn.10085e5d
mov dword [ebp - 0x49c], eax
mov eax, dword [ebp - 0x4b0]
sub eax, ebx
push eax
call fcn.10085e5d
add esp, 0xc
mov dword [ebp - 0x4a0], eax
test esi, esi
je 0x1004f30d
push esi
call fcn.10085e5d
mov dword [ebp - 0x498], eax
call sym.cis_cc_3.2.dll_MINT_RandInit
lea ecx, [esi*8]
push ecx
lea edx, [ebp - 0x490]
push edx
call sym.cis_cc_3.2.dll_MINT_Rand
add esp, 0xc
mov ebx, dword [ebp - 0x4a4]
mov ecx, dword [ebp - 0x4bc]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x494]
push eax
push ecx
lea edx, [ebx + 8]
push edx
call fcn.10086490
add esp, 0xc
test esi, esi
je 0x1004f36d
mov edx, dword [ebp - 0x498]
lea eax, [ebp - 0x490]
push eax
lea ecx, [ebp - 0x4a8]
push ecx
push edx
call sym.cis_cc_3.2.dll_MINT_WriteInByteArray
mov eax, dword [ebp - 0x498]
mov ecx, dword [ebp - 0x494]
push esi
push eax
lea edx, [ecx + ebx + 8]
push edx
call fcn.10086490
add esp, 0x18
mov eax, dword [ebp - 0x4b4]
push eax
lea ecx, [ebp - 0x284]
push ecx
call sym.cis_cc_3.2.dll_HASH_Initialize
mov edx, dword [ebp - 0x494]
lea eax, [esi + edx + 8]
push eax
lea ecx, [ebp - 0x284]
push ebx
push ecx
call sym.cis_cc_3.2.dll_HASH_Update_PCIS
mov ecx, dword [ebp - 0x49c]
lea edx, [ebp - 0x284]
push edx
lea eax, [ebp - 0x4ac]
push eax
push ecx
call sym.cis_cc_3.2.dll_HASH_Finalize
mov ebx, dword [ebp - 0x4b8]
push edi
push 0
push ebx
call fcn.10086410
mov byte [ebx + edi], 1
inc edi
add esp, 0x2c
mov dword [ebp - 0x494], edi
test esi, esi
je 0x1004f3ef
mov edx, dword [ebp - 0x498]
push esi
push edx
lea eax, [ebx + edi]
push eax
call fcn.10086490
add esp, 0xc
add edi, esi
mov dword [ebp - 0x494], edi
mov ecx, dword [ebp - 0x4ac]
mov edx, dword [ebp - 0x4a0]
push ecx
mov ecx, dword [ebp - 0x49c]
push edi
mov edi, dword [ebp - 0x4b4]
push edx
call fcn.1004d750
add esp, 0xc
mov dword [ebp - 0x4a8], eax
test eax, eax
je 0x1004f46c
mov eax, dword [ebp - 0x4a4]
push eax
call fcn.10085a2f
mov ecx, dword [ebp - 0x49c]
push ecx
call fcn.10085a2f
mov edx, dword [ebp - 0x4a0]
push edx
call fcn.10085a2f
add esp, 0xc
test esi, esi
je 0x1004f456
mov eax, dword [ebp - 0x498]
push eax
call fcn.10085a2f
add esp, 4
mov eax, dword [ebp - 0x4a8]
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1008600b
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x494]
test edx, edx
je 0x1004f491
mov edi, dword [ebp - 0x4a0]
mov eax, ebx
sub edi, ebx
mov ecx, edx
mov dl, byte [edi + eax]
xor byte [eax], dl
inc eax
dec ecx
jne 0x1004f482
mov edx, dword [ebp - 0x494]
mov ecx, dword [ebp - 0x4b0]
mov edi, dword [ebp - 0x4ac]
add ecx, ecx
add ecx, ecx
add ecx, ecx
sub ecx, dword [ebp + 0x10]
mov eax, 0xff
sar eax, cl
mov ecx, dword [ebp - 0x49c]
push edi
push ecx
and byte [ebx], al
add ebx, edx
push ebx
call fcn.10086490
mov edx, dword [ebp - 0x4a4]
push edx
mov byte [ebx + edi], 0xbc
call fcn.10085a2f
mov eax, dword [ebp - 0x49c]
push eax
call fcn.10085a2f
mov ecx, dword [ebp - 0x4a0]
push ecx
call fcn.10085a2f
add esp, 0x18
test esi, esi
je 0x1004f4fd
mov edx, dword [ebp - 0x498]
push edx
call fcn.10085a2f
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.1008600b
mov esp, ebp
pop ebp
ret