Function at 0x4b25b0
Capabilities:
Generate random numbers using the delphi lcg

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
push edi
mov edi, edx
mov esi, ecx
call fcn.004ae470
mov ecx, dword [esi + 0xc]
mov ecx, dword [ecx + 0xb]
call fcn.00460ea0
mov ebx, eax
cmp byte [ebx + 0xa9], 0
je 0x4b25e2
cmp dword [edi + 0x10], 0
jg 0x4b2804
cmp dword [0x5640ec], 0
jne 0x4b263e
mov ecx, dword [edi + 4]
test ecx, ecx
jle 0x4b2606
cmp ecx, dword [ebx + 0x64]
jg 0x4b2606
mov eax, dword [ebx + 0x68]
mov al, byte [eax + ecx - 1]
test al, al
je 0x4b2804
mov ecx, dword [esi + 0xa4]
cmp ecx, 0xffffffff
jne 0x4b261f
mov ecx, dword [esi + 4]
call fcn.00432200
mov ecx, dword [eax + 0x50c]
inc ecx
test ecx, ecx
jle 0x4b263e
cmp ecx, dword [ebx + 0x84]
jg 0x4b263e
mov eax, dword [ebx + 0x88]
mov al, byte [eax + ecx - 1]
test al, al
je 0x4b2804
cmp dword [ebx + 0x34], 0
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x1c], eax
lea eax, [ebx + 0x38]
jg 0x4b2655
cmp dword [eax], 0
mov dword [ebp - 0xc], eax
jle 0x4b26c2
mov esi, eax
mov eax, dword [edi]
push edi
mov eax, dword [eax]
call eax
mov ecx, eax
mov dword [ebp - 0xc], esi
imul ecx, dword [ebx + 0x34]
mov eax, 0x51eb851f
add esp, 4
imul ecx
mov ecx, dword [esi]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add ecx, eax
imul eax, dword [0x563db0], 0x8088405
mov dword [ebp - 0x14], ecx
mov ecx, 0x64
inc eax
mov dword [0x563db0], eax
mul ecx
mov dword [ebp - 0x10], eax
cmp edx, ecx
jge 0x4b26c2
call fcn.004ae470
cmp dword [edi + 0x10], 0
mov dword [ebp - 0xc], esi
je 0x4b26c2
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0xc], esi
test edx, edx
je 0x4b26c2
mov ecx, edi
call fcn.0045eae0
mov dword [ebp - 0xc], esi
cmp dword [ebx + 0x3c], 0
jg 0x4b26ce
cmp dword [ebx + 0x40], 0
jle 0x4b274d
mov eax, dword [edi]
push edi
mov eax, dword [eax + 4]
call eax
mov esi, dword [ebx + 0x40]
mov ecx, eax
imul ecx, dword [ebx + 0x3c]
mov eax, 0x51eb851f
add esp, 4
imul ecx
mov ecx, 0x64
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add esi, eax
imul eax, dword [0x563db0], 0x8088405
inc eax
mov dword [0x563db0], eax
mul ecx
mov dword [ebp - 0x18], eax
cmp edx, ecx
jge 0x4b274d
mov eax, dword [edi]
push edi
mov eax, dword [eax + 4]
call eax
mov edx, dword [edi + 0x14]
add esp, 4
lea ecx, [edx + esi]
test ecx, ecx
js 0x4b272f
cmp ecx, eax
cmovle eax, ecx
jmp 0x4b2731
xor eax, eax
mov dword [edi + 0x14], eax
sub eax, edx
je 0x4b2748
push eax
mov edx, 3
mov ecx, edi
call fcn.004a9030
add esp, 4
call fcn.004ae470
mov eax, dword [0x55f1a8]
mov ecx, dword [eax + 4]
mov dword [ebp - 4], ecx
test ecx, ecx
jle 0x4b27c1
mov esi, 1
mov eax, ecx
mov ecx, esi
mov dword [ebp - 0x14], ecx
test esi, esi
jle 0x4b27bc
cmp esi, dword [ebx + 0x6c]
jg 0x4b27bc
mov eax, dword [ebx + 0x70]
mov al, byte [eax + ecx - 1]
test al, al
je 0x4b27b9
imul eax, dword [0x563db0], 0x8088405
mov edx, 0x64
inc eax
mov dword [0x563db0], eax
mul edx
mov dword [ebp - 0x28], eax
cmp edx, 0x64
jge 0x4b27b9
mov edx, esi
mov ecx, edi
call fcn.0045f050
test eax, eax
je 0x4b27b6
mov edx, esi
mov ecx, edi
call fcn.0045f430
call fcn.004ae470
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
inc esi
cmp ecx, eax
jl 0x4b2763
cmp dword [ebp - 0x1c], 0
jne 0x4b2804
cmp dword [edi + 0x10], 0
jle 0x4b2804
mov ecx, dword [edi]
push edi
mov ecx, dword [ecx]
call ecx
mov ecx, eax
add esp, 4
imul ecx, dword [ebx + 0x34]
mov eax, 0x51eb851f
imul ecx
mov eax, dword [ebp - 0xc]
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
mov eax, dword [eax]
add edx, ecx
dec eax
mov ecx, edi
add edx, eax
xor eax, eax
test edx, edx
cmovle edx, eax
call fcn.0045eae0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret