Function at 0x4025d0
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb8
mov eax, dword [0x5a1008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov ebx, ecx
push edi
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xa0], 0
jmp 0x402600
mov edi, dword [sym.imp.ADVAPI32.dll_SystemFunction036]
push 4
lea eax, [ebp - 0x98]
push eax
mov dword [ebp - 0x9c], 0
call edi
test al, al
jne 0x402649
cmp dword [0x5a140c], 0
jne 0x402630
call dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x402635
mov eax, dword [0x5a1410]
mov esi, eax
imul eax, eax, 0x19660d
add eax, 0x3c6ef35f
mov dword [0x5a1410], eax
jmp 0x40264f
mov esi, dword [ebp - 0x98]
mov eax, 0xcccccccd
mul esi
shr edx, 5
lea ecx, [edx + edx*4]
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov edx, 0x1e
sub edx, ecx
add esi, edx
mov dword [ebp - 0x98], esi
je 0x4026dd
push esi
lea eax, [ebp - 0x4c]
push eax
call edi
test al, al
jne 0x4026d7
cmp dword [0x5a140c], 0
jne 0x402694
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x5a1410], eax
jmp 0x402699
mov eax, dword [0x5a1410]
mov edx, esi
shr edx, 2
xor ecx, ecx
test edx, edx
je 0x4026bd
mov dword [ebp + ecx*4 - 0x4c], eax
imul eax, eax, 0x19660d
inc ecx
add eax, 0x3c6ef35f
cmp ecx, edx
jb 0x4026a4
mov dword [0x5a1410], eax
mov eax, esi
and eax, 3
je 0x4026d7
push eax
lea ecx, [ebp + ecx*4 - 0x4c]
push 0x5a1410
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, dword [ebp - 0x98]
xor ecx, ecx
test esi, esi
je 0x402713
movzx eax, byte [ebp + ecx - 0x4c]
cdq
mov edi, 0x3e
idiv edi
cmp dl, 0xa
jae 0x4026fa
add dl, 0x30
jmp 0x402707
cmp dl, 0x24
jae 0x402704
add dl, 0x37
jmp 0x402707
add dl, 0x3d
mov byte [ebp + ecx - 0x94], dl
inc ecx
cmp ecx, esi
jb 0x4026e3
xor eax, eax
mov byte [ebp + esi - 0x94], 0
mov dword [ebp - 0xa8], eax
cmp dword [ebx + 8], eax
jbe 0x40280a
lea esp, [esp]
cmp dword [ebp - 0x9c], 0
jne 0x402600
lea edx, [ebp - 0xb0]
push edx
mov edx, dword [ebx + 0x10]
mov edx, dword [edx + eax*4]
lea ecx, [ebp - 0xb4]
call fcn.00401c90
mov dword [ebp - 0xa0], eax
test eax, eax
js 0x402833
mov eax, dword [ebp - 0xb4]
mov esi, dword [ebp - 0x98]
cmp eax, esi
jbe 0x4027e7
xor edi, edi
sub eax, esi
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0xb8], eax
je 0x4027e7
xor ecx, ecx
test esi, esi
je 0x4027bc
mov eax, dword [ebp - 0xb0]
add edi, eax
mov al, byte [edi + ecx]
mov dl, byte [ebp + ecx - 0x94]
cmp al, dl
je 0x4027b7
cmp al, 0x61
jb 0x4027a9
cmp al, 0x7a
jbe 0x4027b1
lea ebx, [eax - 0x41]
cmp bl, 0x19
ja 0x4027b3
xor al, 0x20
cmp al, dl
jne 0x4027bc
inc ecx
cmp ecx, esi
jb 0x402793
cmp ecx, esi
je 0x4027d7
mov edi, dword [ebp - 0xa4]
inc edi
mov dword [ebp - 0xa4], edi
cmp edi, dword [ebp - 0xb8]
jb 0x402785
jmp 0x4027e1
mov dword [ebp - 0x9c], 1
mov ebx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xa8]
inc eax
mov dword [ebp - 0xa8], eax
cmp eax, dword [ebx + 8]
jb 0x402730
cmp dword [ebp - 0x9c], 0
jne 0x402600
xor eax, eax
test esi, esi
je 0x402826
lea ecx, [ebx + 0x14]
movzx edx, byte [ebp + eax - 0x94]
mov word [ecx], dx
inc eax
add ecx, 2
cmp eax, esi
jb 0x402813
xor ecx, ecx
mov word [ebx + eax*2 + 0x14], cx
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0059e3c7
mov esp, ebp
pop ebp
ret