Function at 0x10084290
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4b0
mov eax, dword [0x101165b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x4ac], ecx
mov ecx, dword [ebp + 0x18]
push ebx
mov ebx, dword [ecx]
push edi
mov dword [ebp - 0x4a0], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x4a8], ecx
lea ecx, [ebx + ebx]
mov edi, eax
sub edi, ecx
sub edi, dword [ebp + 0x10]
mov dword [ebp - 0x4b0], edx
dec edi
jns 0x100842ea
pop edi
mov eax, 0xfffffbbd
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1008600b
mov esp, ebp
pop ebp
ret
sub eax, ebx
push esi
push eax
mov dword [ebp - 0x4a4], eax
call fcn.10085e5d
mov edx, dword [ebp - 0x4a4]
push edx
mov esi, eax
call fcn.10085e5d
mov dword [ebp - 0x498], eax
mov eax, dword [ebp - 0x4a8]
push eax
lea ecx, [ebp - 0x284]
push ecx
call sym.cis_cc_3.2.dll_HASH_Initialize
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x4b0]
push edx
push eax
lea ecx, [ebp - 0x284]
push ecx
call sym.cis_cc_3.2.dll_HASH_Update_PCIS
lea edx, [ebp - 0x284]
push edx
lea eax, [ebp - 0x494]
push eax
push esi
call sym.cis_cc_3.2.dll_HASH_Finalize
mov ecx, dword [ebp - 0x494]
push edi
add ecx, esi
push 0
push ecx
call fcn.10086410
mov eax, dword [ebp - 0x494]
mov edx, dword [ebp - 0x4ac]
add eax, edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x494], eax
mov byte [eax + esi], 1
mov eax, dword [ebp - 0x494]
inc eax
push edi
mov dword [ebp - 0x494], eax
push edx
add eax, esi
push eax
call fcn.10086490
add dword [ebp - 0x494], edi
add esp, 0x40
call sym.cis_cc_3.2.dll_MINT_RandInit
lea eax, [ebx*8]
push eax
lea ecx, [ebp - 0x490]
push ecx
call sym.cis_cc_3.2.dll_MINT_Rand
mov ecx, dword [ebp - 0x4a0]
lea edx, [ebp - 0x490]
push edx
lea eax, [ebp - 0x49c]
push eax
push ecx
call sym.cis_cc_3.2.dll_MINT_WriteInByteArray
mov edx, dword [ebp - 0x4a4]
mov eax, dword [ebp - 0x498]
mov edi, dword [ebp - 0x4a8]
mov ecx, dword [ebp - 0x4a0]
push ebx
push edx
push eax
call fcn.10082a20
add esp, 0x20
mov dword [ebp - 0x49c], eax
test eax, eax
je 0x10084423
push esi
call fcn.10085a2f
mov ecx, dword [ebp - 0x498]
push ecx
call fcn.10085a2f
mov eax, dword [ebp - 0x49c]
add esp, 8
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1008600b
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x4a4]
test ecx, ecx
jle 0x10084440
mov edi, dword [ebp - 0x498]
mov eax, esi
sub edi, esi
mov dl, byte [edi + eax]
xor byte [eax], dl
inc eax
dec ecx
jne 0x10084437
mov eax, dword [ebp - 0x494]
mov ecx, dword [ebp - 0x498]
mov edi, dword [ebp - 0x4a8]
push eax
push ebx
push ecx
mov ecx, esi
call fcn.10082a20
add esp, 0xc
mov dword [ebp - 0x49c], eax
test eax, eax
je 0x10084495
push esi
call fcn.10085a2f
mov edx, dword [ebp - 0x498]
push edx
call fcn.10085a2f
mov eax, dword [ebp - 0x49c]
add esp, 8
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1008600b
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [ebp - 0x49c], eax
test ebx, ebx
je 0x100844c4
mov ecx, dword [ebp - 0x498]
mov dl, byte [eax + ecx]
mov edi, dword [ebp - 0x4a0]
xor byte [edi + eax], dl
mov eax, dword [ebp - 0x49c]
inc eax
mov dword [ebp - 0x49c], eax
cmp eax, ebx
jb 0x100844a1
mov eax, dword [ebp - 0x4a4]
mov ecx, dword [ebp - 0x4a0]
push eax
add ecx, ebx
push esi
push ecx
call fcn.10086490
push esi
call fcn.10085a2f
mov edx, dword [ebp - 0x498]
push edx
call fcn.10085a2f
mov ecx, dword [ebp - 4]
add esp, 0x14
pop esi
pop edi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.1008600b
mov esp, ebp
pop ebp
ret