Function at 0x1004aeb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x480
mov eax, dword [0x101165b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x460], eax
test eax, eax
jne 0x1004aee1
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1008600b
mov esp, ebp
pop ebp
ret
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
push ebx
call sym.cis_cc_3.2.dll_PRIME_SelectMRIter
mov dword [ebp - 0x47c], eax
mov eax, dword [ebp + 0x10]
push eax
call sym.cis_cc_3.2.dll_PRIME_SelectMRIter
mov dword [ebp - 0x480], eax
mov eax, ebx
sub eax, dword [ebp + 0x10]
push eax
mov dword [ebp - 0x474], eax
call sym.cis_cc_3.2.dll_PRIME_SelectMRIter
mov dword [ebp - 0x478], eax
mov eax, ebx
add esp, 0xc
shr eax, 3
test bl, 7
je 0x1004af27
inc eax
mov ecx, dword [ebp + 0x10]
mov esi, ecx
shr esi, 3
test cl, 7
je 0x1004af35
inc esi
sub eax, esi
push eax
mov dword [ebp - 0x470], eax
call fcn.10085e5d
mov ebx, eax
push esi
mov dword [ebp - 0x468], ebx
call fcn.10085e5d
mov dword [ebp - 0x464], eax
lea eax, [esi + 6]
push eax
call fcn.10085e5d
mov edi, eax
lea eax, [esi + 6]
push eax
call fcn.10085e5d
lea ecx, [ebp - 0x44]
push ecx
mov dword [ebp - 0x46c], eax
call sym.cis_cc_3.2.dll_RANDHASH_Initialize
mov edx, dword [ebp + 0x10]
push edx
push edi
call sym.cis_cc_3.2.dll_HASHDRBG_GetRandNum
add esp, 0x1c
jmp 0x1004af90
mov ecx, dword [ebp - 0x46c]
lea eax, [ebp - 0x44]
push eax
push esi
push ecx
call sym.cis_cc_3.2.dll_RANDHASH_GetRandomNum
add esp, 0xc
test esi, esi
jle 0x1004afc3
mov ecx, dword [ebp - 0x46c]
mov eax, edi
sub ecx, edi
mov edx, esi
mov bl, byte [ecx + eax]
xor byte [eax], bl
inc eax
dec edx
jne 0x1004afb4
mov ebx, dword [ebp - 0x468]
mov eax, dword [ebp + 0x10]
cmp eax, 0xe0
jne 0x1004afe1
mov edx, dword [ebp + 0xc]
push eax
push edi
add edx, 0xffffff1c
push edx
push ebx
call sym.cis_cc_3.2.dll_KCDSARNGSHA224_PRNG
jmp 0x1004b00d
cmp eax, 0x100
jne 0x1004affb
push eax
mov eax, dword [ebp + 0xc]
push edi
add eax, 0xfffffefc
push eax
push ebx
call sym.cis_cc_3.2.dll_KCDSARNGSHA256_PRNG
jmp 0x1004b00d
mov ecx, dword [ebp - 0x474]
push eax
push edi
add ecx, 0xfffffffc
push ecx
push ebx
call sym.cis_cc_3.2.dll_KCDSARNGHAS160_PRNG
mov edx, dword [ebp - 0x470]
add esp, 0x10
push edx
lea eax, [ebp - 0x45c]
push ebx
push eax
call sym.cis_cc_3.2.dll_MINT_SetByByteArray
mov eax, dword [ebp - 0x45c]
mov ecx, dword [ebp - 0x478]
or dword [ebp + eax*4 - 0x45c], 0x80000000
or dword [ebp - 0x458], 1
lea eax, [ebp + eax*4 - 0x45c]
push ecx
lea edx, [ebp - 0x45c]
push edx
call sym.cis_cc_3.2.dll_PRIME_MRTest
add esp, 0x14
cmp eax, 1
jne 0x1004af90
mov ebx, eax
mov eax, ebx
shr eax, 0x18
mov byte [edi + esi], al
mov eax, dword [ebp + 0x10]
mov ecx, ebx
mov edx, ebx
shr ecx, 0x10
shr edx, 8
mov byte [edi + esi + 1], cl
mov byte [edi + esi + 2], dl
mov byte [edi + esi + 3], bl
cmp eax, 0xe0
jne 0x1004b0a8
mov ecx, dword [ebp - 0x464]
lea eax, [esi*8 + 0x20]
push eax
push edi
push pe_nt_image_headers32
push ecx
call sym.cis_cc_3.2.dll_KCDSARNGSHA224_PRNG
jmp 0x1004b0dd
cmp eax, 0x100
jne 0x1004b0c7
lea edx, [esi*8 + 0x20]
push edx
push edi
push eax
mov eax, dword [ebp - 0x464]
push eax
call sym.cis_cc_3.2.dll_KCDSARNGSHA256_PRNG
jmp 0x1004b0dd
mov edx, dword [ebp - 0x464]
lea ecx, [esi*8 + 0x20]
push ecx
push edi
push eax
push edx
call sym.cis_cc_3.2.dll_KCDSARNGHAS160_PRNG
mov eax, dword [ebp - 0x464]
add esp, 0x10
push esi
push eax
mov eax, dword [ebp - 0x460]
add eax, 0x20c
push eax
call sym.cis_cc_3.2.dll_MINT_SetByByteArray
mov eax, dword [ebp - 0x460]
mov ecx, dword [eax + 0x20c]
mov edx, dword [ebp - 0x480]
add eax, 0x20c
or dword [eax + ecx*4], 0x80000000
or dword [eax + 4], 1
lea ecx, [eax + ecx*4]
push edx
push eax
call sym.cis_cc_3.2.dll_PRIME_MRTest
add esp, 0x14
cmp eax, 1
jne 0x1004b18d
mov eax, dword [ebp - 0x460]
mov ecx, dword [ebp - 0x460]
add eax, 0x20c
push eax
lea eax, [ebp - 0x45c]
push eax
push ecx
call sym.cis_cc_3.2.dll_MINT_Mult
mov edx, dword [ebp - 0x460]
push 1
push edx
call sym.cis_cc_3.2.dll_MINT_LeftShift
mov eax, dword [ebp - 0x460]
or dword [eax + 4], 1
push eax
call sym.cis_cc_3.2.dll_MINT_GetBitLength
add esp, 0x18
cmp eax, dword [ebp + 0xc]
ja 0x1004b18d
mov eax, dword [ebp - 0x47c]
mov ecx, dword [ebp - 0x460]
push eax
push ecx
call sym.cis_cc_3.2.dll_PRIME_MRTest
add esp, 8
cmp eax, 1
je 0x1004b1a5
inc ebx
cmp ebx, 0x1000000
jbe 0x1004b064
mov ebx, dword [ebp - 0x468]
jmp 0x1004af90
call sym.cis_cc_3.2.dll_MINT_RandInit
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x250]
push eax
call sym.cis_cc_3.2.dll_MINT_Rand
mov ecx, dword [ebp - 0x460]
push ecx
lea edx, [ebp - 0x250]
push edx
call sym.cis_cc_3.2.dll_MINT_Compare
add esp, 0x10
cmp eax, 0xffffffff
jne 0x1004b1a5
lea eax, [ebp - 0x45c]
push 1
push eax
call sym.cis_cc_3.2.dll_MINT_LeftShift
mov eax, dword [ebp - 0x460]
push 4
push eax
lea ecx, [ebp - 0x45c]
push ecx
lea edx, [ebp - 0x250]
push edx
add eax, 0x418
push eax
call sym.cis_cc_3.2.dll_MINT_ExpWin
mov eax, dword [ebp - 0x460]
add esp, 0x1c
cmp dword [eax + 0x41c], 1
jne 0x1004b220
cmp dword [eax + 0x418], 1
je 0x1004b1a5
push esi
add eax, 0x624
push edi
push eax
call fcn.10086490
mov eax, dword [ebp - 0x460]
mov ecx, dword [ebp - 0x468]
push ecx
mov dword [eax + 0x644], esi
mov dword [eax + 0x648], ebx
call fcn.10085a2f
mov edx, dword [ebp - 0x464]
push edx
call fcn.10085a2f
push edi
call fcn.10085a2f
mov ecx, dword [ebp - 4]
add esp, 0x18
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.1008600b
mov esp, ebp
pop ebp
ret