Function at 0x1013c5f6
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x140
mov esi, ecx
mov eax, dword [0x101b9014]
xor eax, ebp
mov dword [esp + 0x138], eax
xor eax, eax
dec eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
xor eax, eax
cmp byte [ebp + 8], 0
je 0x1013c638
xor eax, eax
cmp dword [esi + 4], 0
sete al
shl eax, 4
add eax, dword [ebp + 0x10]
jb 0x1013c99d
lea ebx, [esp + 0x18]
mov ecx, ebx
push 0
push eax
call fcn.10034e5c
mov eax, dword [esi + 4]
movzx ecx, byte [ebx + 0xb]
test cl, cl
jns 0x1013c662
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 8], ecx
mov edi, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
cmp eax, 1
jne 0x1013c723
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
cmp eax, 0x10
jne 0x1013c88c
test ecx, ecx
je 0x1013c6f6
mov eax, edi
mov edi, esi
mov esi, 0x10
push esi
push eax
call fcn.10076b20
add esp, 8
push esi
push eax
call sub.ADVAPI32.dll_SystemFunction036
test al, al
je 0x1013c9a6
lea eax, [esp + 0x24]
lea esi, [esp + 0x44]
push eax
push esi
call fcn.100b1320
add esp, 8
movzx eax, byte [esi + 0xb]
test al, al
jns 0x1013c6d7
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
mov ecx, dword [ebp + 0x20]
push eax
push esi
call fcn.1005639a
cmp byte [esp + 0x4f], 0
jns 0x1013c6f4
push dword [esp + 0x44]
call fcn.10145bd4
add esp, 4
mov esi, edi
lea edi, [esp + 0x44]
push 0xf4
push 0xff
push edi
call fcn.10149430
add esp, 0xc
mov eax, dword [esi]
movzx ecx, byte [eax + 0xf]
test cl, cl
js 0x1013c8df
add eax, 4
jmp 0x1013c8e5
mov dword [esp + 0xc], ebx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x1013c793
mov ebx, esi
mov esi, 0x10
push esi
push edi
call fcn.10076b20
add esp, 8
push esi
push eax
call sub.ADVAPI32.dll_SystemFunction036
test al, al
je 0x1013c9a0
lea eax, [esp + 0x30]
lea esi, [esp + 0x44]
push eax
push esi
call fcn.100b1320
add esp, 8
movzx eax, byte [esi + 0xb]
test al, al
jns 0x1013c775
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
mov ecx, edi
push eax
push esi
call fcn.1005639a
cmp byte [esp + 0x4f], 0
jns 0x1013c791
push dword [esp + 0x44]
call fcn.10145bd4
add esp, 4
mov esi, ebx
mov ecx, dword [esi]
call fcn.1013c56a
mov dword [esp + 0x10], eax
mov edi, dword [esi]
lea ebx, [edi + 4]
lea eax, [esp + 0x44]
push 0xb8
push str.....cryptoencryptor.cc
push str.Crypt
push eax
call fcn.10065960
add esp, 0x10
call fcn.100c05e0
push 0x88
push 0
lea eax, [esp + 0x4c]
push eax
call fcn.10149430
add esp, 0xc
movzx eax, byte [ebp + 8]
mov dword [esp + 0x14], esi
mov ecx, dword [esi + 8]
cmp byte [edi + 0xf], 0
jns 0x1013c7eb
mov ebx, dword [ebx]
xor edi, edi
dec edi
push eax
push ecx
push ebx
push 0
push dword [esp + 0x20]
lea esi, [esp + 0x58]
push esi
call fcn.100c46e0
add esp, 0x18
xor ebx, ebx
test eax, eax
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 0xc]
je 0x1013c8cf
cmp byte [ebp + 8], 0
je 0x1013c821
mov ebx, dword [eax + 0xc]
sub ebx, dword [eax + 8]
mov ecx, dword [ebp + 0x10]
add ebx, ecx
cmp ebx, dword [esp + 8]
ja 0x1013c9a3
lea eax, [esp + 0x24]
mov dword [eax], 0xffffffff
push ecx
push edx
push eax
mov edi, dword [esp + 0x18]
push edi
push esi
call fcn.100c5110
add esp, 0x14
xor ebx, ebx
test eax, eax
je 0x1013c8cc
lea eax, [esp + 0x2c]
mov dword [eax], 0xffffffff
mov esi, dword [esp + 0x24]
add edi, esi
push eax
push edi
lea eax, [esp + 0x4c]
push eax
call fcn.100c5140
add esp, 0xc
test eax, eax
setne cl
lea edx, [esp + 0x2c]
add esi, dword [edx]
cmp eax, 1
sbb ebx, ebx
or ebx, esi
lea esi, [esp + 0x44]
mov edi, ebx
mov ebx, ecx
jmp 0x1013c8cf
xor edi, edi
dec edi
cmp dword [0x101bee4c], 2
jg 0x1013c8fa
lea esi, [esp + 0x44]
mov ecx, esi
push 2
push 0xd8
push str.....cryptoencryptor.cc
call fcn.100661d0
lea eax, [esp + 0x4c]
push 0x22
push str.Counter_value_not_set_in_CTR_mode.
push eax
call fcn.10034b83
add esp, 0xc
mov ecx, esi
call fcn.10066600
jmp 0x1013c8fa
xor edi, edi
dec edi
push esi
call fcn.100c4600
add esp, 4
call fcn.100fa1c0
jmp 0x1013c8fc
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
shl ecx, 3
push edi
push ecx
push eax
call fcn.100c0da0
add esp, 0xc
test eax, eax
je 0x1013c95f
xor edi, edi
dec edi
xor ebx, ebx
test bl, bl
je 0x1013c932
mov esi, dword [ebp + 0x1c]
lea ecx, [esp + 0x18]
push 0
push edi
call fcn.10056770
cmp byte [esi + 0xb], 0
jns 0x1013c91f
push dword [esi]
call fcn.10145bd4
add esp, 4
mov eax, dword [esp + 0x20]
mov dword [esi + 8], eax
movsd xmm0, qword [esp + 0x18]
movsd qword [esi], xmm0
jmp 0x1013c945
cmp byte [esp + 0x23], 0
jns 0x1013c945
push dword [esp + 0x18]
call fcn.10145bd4
add esp, 4
mov ecx, dword [esp + 0x138]
xor ecx, ebp
call fcn.101465a3
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x1c
xorps xmm0, xmm0
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x2c], 0
mov edx, dword [ebp + 0x10]
cmp dword [esp + 8], edx
jb 0x1013c9a9
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x30]
push eax
push ecx
push dword [esi + 8]
push edi
push edx
push ebx
push dword [ebp + 0xc]
call fcn.100c3e30
mov edi, dword [ebp + 0x10]
add esp, 0x1c
mov bl, 1
jmp 0x1013c8fc
int3
int3
int3
int3
int3