Function at 0x1004d950
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c0
mov eax, dword [0x101165b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push edi
mov dword [ebp - 0x4c0], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x494], ecx
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ecx]
mov edi, eax
sub edi, esi
sub edi, ebx
lea edx, [esi + ebx + 2]
sub edi, 2
mov dword [ebp - 0x4b8], eax
mov dword [ebp - 0x4b0], ecx
mov dword [ebp - 0x498], 0
cmp eax, edx
jae 0x1004d9b8
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 eax, [esi + ebx + 8]
push eax
call fcn.10085e5d
push ebx
mov dword [ebp - 0x4a8], eax
call fcn.10085e5d
push ebx
mov dword [ebp - 0x49c], eax
call fcn.10085e5d
mov ecx, dword [ebp - 0x4b8]
sub ecx, ebx
push ecx
mov dword [ebp - 0x4a0], eax
call fcn.10085e5d
add esp, 0x10
mov dword [ebp - 0x4a4], eax
test esi, esi
je 0x1004da23
push esi
call fcn.10085e5d
mov dword [ebp - 0x498], eax
call sym.cis_cc_3.2.dll_MINT_RandInit
lea edx, [esi*8]
push edx
lea eax, [ebp - 0x490]
push eax
call sym.cis_cc_3.2.dll_MINT_Rand
add esp, 0xc
mov ecx, dword [ebp - 0x4b0]
mov ebx, dword [ebp - 0x4a8]
xor eax, eax
push ecx
lea edx, [ebp - 0x284]
mov dword [ebx], eax
push edx
mov dword [ebx + 4], eax
call sym.cis_cc_3.2.dll_HASH_Initialize
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x494]
push eax
push ecx
lea edx, [ebp - 0x284]
push edx
call sym.cis_cc_3.2.dll_HASH_Update_PCIS
mov edx, dword [ebp - 0x4a0]
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x4ac]
push ecx
push edx
call sym.cis_cc_3.2.dll_HASH_Finalize
mov eax, dword [ebp - 0x4ac]
mov ecx, dword [ebp - 0x4a0]
push eax
push ecx
lea edx, [ebx + 8]
push edx
call fcn.10086490
add esp, 0x2c
test esi, esi
je 0x1004dac7
mov edx, dword [ebp - 0x498]
lea eax, [ebp - 0x490]
push eax
lea ecx, [ebp - 0x4b4]
push ecx
push edx
call sym.cis_cc_3.2.dll_MINT_WriteInByteArray
mov eax, dword [ebp - 0x498]
mov ecx, dword [ebp - 0x4ac]
push esi
push eax
lea edx, [ecx + ebx + 8]
push edx
call fcn.10086490
add esp, 0x18
mov eax, dword [ebp - 0x4ac]
mov edx, dword [ebp - 0x4b0]
lea ecx, [esi + eax + 8]
push edx
lea eax, [ebp - 0x284]
push eax
mov dword [ebp - 0x494], ecx
call sym.cis_cc_3.2.dll_HASH_Initialize
mov ecx, dword [ebp - 0x494]
push ecx
lea edx, [ebp - 0x284]
push ebx
push edx
call sym.cis_cc_3.2.dll_HASH_Update_PCIS
mov edx, dword [ebp - 0x49c]
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x4bc]
push ecx
push edx
call sym.cis_cc_3.2.dll_HASH_Finalize
mov ebx, dword [ebp - 0x4c0]
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 0x1004db55
mov eax, dword [ebp - 0x498]
push esi
push eax
lea ecx, [ebx + edi]
push ecx
call fcn.10086490
add esp, 0xc
add edi, esi
mov dword [ebp - 0x494], edi
mov edx, dword [ebp - 0x4bc]
mov eax, dword [ebp - 0x4a4]
mov ecx, dword [ebp - 0x49c]
push edx
push edi
mov edi, dword [ebp - 0x4b0]
push eax
call fcn.1004d750
add esp, 0xc
mov dword [ebp - 0x4b4], eax
test eax, eax
je 0x1004dbde
mov ecx, dword [ebp - 0x4a8]
push ecx
call fcn.10085a2f
mov edx, dword [ebp - 0x49c]
push edx
call fcn.10085a2f
mov eax, dword [ebp - 0x4a0]
push eax
call fcn.10085a2f
mov ecx, dword [ebp - 0x4a4]
push ecx
call fcn.10085a2f
add esp, 0x10
test esi, esi
je 0x1004dbc8
mov edx, dword [ebp - 0x498]
push edx
call fcn.10085a2f
add esp, 4
mov eax, dword [ebp - 0x4b4]
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 0x1004dc03
mov edi, dword [ebp - 0x4a4]
mov eax, ebx
sub edi, ebx
mov ecx, edx
mov dl, byte [edi + eax]
xor byte [eax], dl
inc eax
dec ecx
jne 0x1004dbf4
mov edx, dword [ebp - 0x494]
mov ecx, dword [ebp - 0x4b8]
mov edi, dword [ebp - 0x4bc]
add ecx, ecx
add ecx, ecx
add ecx, ecx
sub ecx, dword [ebp + 0x14]
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 - 0x4a8]
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
mov edx, dword [ebp - 0x4a4]
push edx
call fcn.10085a2f
add esp, 0x1c
test esi, esi
je 0x1004dc7b
mov eax, dword [ebp - 0x498]
push eax
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