Function at 0x1004b370
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x484
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 0x1004b3a1
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 - 0x478], 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 - 0x47c], eax
call sym.cis_cc_3.2.dll_PRIME_SelectMRIter
mov dword [ebp - 0x470], eax
mov eax, ebx
add esp, 0xc
shr eax, 3
test bl, 7
je 0x1004b3e7
inc eax
mov ecx, dword [ebp + 0x10]
mov esi, ecx
shr esi, 3
test cl, 7
je 0x1004b3f5
inc esi
sub eax, esi
push eax
mov dword [ebp - 0x474], 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 0x1004b450
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 0x1004b483
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 0x1004b474
mov ebx, dword [ebp - 0x468]
mov eax, dword [ebp + 0x10]
cmp eax, 0xe0
jne 0x1004b4a1
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 0x1004b4cd
cmp eax, 0x100
jne 0x1004b4bb
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 0x1004b4cd
mov ecx, dword [ebp - 0x47c]
push eax
push edi
add ecx, 0xfffffffc
push ecx
push ebx
call sym.cis_cc_3.2.dll_KCDSARNGHAS160_PRNG
mov edx, dword [ebp - 0x474]
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 - 0x470]
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 0x1004b450
lea eax, [ebp - 0x45c]
push eax
mov eax, dword [ebp - 0x460]
lea ecx, [eax + 0x868]
push ecx
add eax, 0x644
push eax
call sym.cis_cc_3.2.dll_MINT_WriteInByteArray
add esp, 0xc
mov ebx, 1
lea esp, [esp]
mov eax, ebx
shr eax, 0x10
mov edx, ebx
mov byte [edi + esi + 1], al
mov eax, dword [ebp + 0x10]
mov ecx, ebx
shr edx, 0x18
shr ecx, 8
mov byte [edi + esi], dl
mov byte [edi + esi + 2], cl
mov byte [edi + esi + 3], bl
cmp eax, 0xe0
jne 0x1004b590
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_KCDSARNGSHA224_PRNG
jmp 0x1004b5b6
mov edx, dword [ebp - 0x464]
lea ecx, [esi*8 + 0x20]
push ecx
push edi
cmp eax, 0x100
jne 0x1004b5af
push eax
push edx
call sym.cis_cc_3.2.dll_KCDSARNGSHA256_PRNG
jmp 0x1004b5b6
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 0x1004b666
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 0x1004b666
mov eax, dword [ebp - 0x478]
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 0x1004b680
inc ebx
cmp ebx, 0x1000000
jbe 0x1004b550
mov ebx, dword [ebp - 0x468]
jmp 0x1004b450
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 0x1004b680
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 0x1004b6fb
cmp dword [eax + 0x418], 1
je 0x1004b680
mov edx, dword [ebp - 0x460]
lea eax, [ebp - 0x250]
push eax
lea ecx, [ebp - 0x484]
push ecx
add edx, 0x748
push edx
call sym.cis_cc_3.2.dll_MINT_WriteInByteArray
mov eax, dword [ebp - 0x460]
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 + 0x86c], esi
mov dword [eax + 0x870], 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, 0x24
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.1008600b
mov esp, ebp
pop ebp
ret