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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x10]
sub dword [ebp - 0x10], eax
lea ecx, [ebp - 0x10]
lea edx, [ebp - 0x10]
lea eax, [ebp - 0x10]
call fcn.00465ab4
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, 0x52
sub eax, dword [ebp - 0x10]
cmp eax, 0xea
jge 0x46b97f
call fcn.004610ac
mov eax, dword [ebp - 0x14]
add eax, 0x178
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
call fcn.00404c64
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
add eax, 0x1bd
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
call fcn.00404c64
mov dword [ebp - 0x14], eax
imul eax, dword [0x4ad8fc], 0x8088405
inc eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
add eax, 4
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
call fcn.00404c70
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
add eax, 0x1c3
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
call fcn.00404c64
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
add eax, 0x208
mov dword [ebp - 0x14], eax
sub dword [ebp - 0x18], 0x24c
imul eax, dword [ebp - 0x18], 0x291
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x10]
lea edx, [ebp - 0x10]
lea eax, [ebp - 0x10]
call fcn.00463910
lea edx, [ebp - 0x10]
lea eax, [ebp - 0x10]
call fcn.00461bb0
sub dword [ebp - 0x18], 0x26e
imul eax, dword [ebp - 0x18], 0x293
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
sub dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
sub dword [ebp - 0x10], eax
lea edx, [ebp - 0x10]
lea eax, [ebp - 0x10]
call fcn.00461bb0
sub dword [ebp - 0x18], 0x24c
imul eax, dword [ebp - 0x18], 0x270
mov dword [ebp - 0x18], eax
imul eax, dword [ebp - 0x18], 0x294
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc]
mov dword [0x4ad8fc], eax
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
jge 0x46bb22
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x10]
jle 0x46bac7
sub dword [ebp - 0x18], 0x238
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x10]
jne 0x46badd
fild dword [ebp - 0x14]
call fcn.00404c70
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x14]
cmp eax, edx
jge 0x46baf8
fild dword [ebp - 0x14]
call fcn.00404c70
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x14]
cmp eax, edx
jge 0x46bb1c
mov eax, dword [ebp - 0x14]
add eax, 4
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
call fcn.00404c70
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x10], 1
jl 0x46bab2
sub dword [ebp - 0x18], 0x236
sub dword [ebp - 0x18], 0x25a
imul eax, dword [ebp - 0x18], 0x29f
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
sub dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
sub dword [ebp - 0x10], eax
call fcn.0046576c
mov eax, dword [ebp - 0x14]
add eax, 4
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
call fcn.00404c70
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
add eax, 0x1c8
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
call fcn.00404c64
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
add eax, 0x20d
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
xor edx, edx
call fcn.004086a8
mov eax, edx
xor edx, edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x14]
add eax, 0x1b5
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
call fcn.00404c64
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
add eax, 0x1d9
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
call fcn.00404c64
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
add eax, 0x21e
mov dword [ebp - 0x14], eax
sub dword [ebp - 0x18], 0x242
imul eax, dword [ebp - 0x18], 0x287
mov dword [ebp - 0x18], eax
imul eax, dword [ebp - 0x18], 0x2ab
mov dword [ebp - 0x18], eax
imul eax, dword [ebp - 0x18], 0x2af
mov dword [ebp - 0x18], eax
imul eax, dword [ebp - 0x10], 0x2d4
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
lea edx, [ebp - 0x10]
lea eax, [ebp - 0x18]
call fcn.00461bb0
sub dword [ebp - 0x18], 0x268
imul eax, dword [ebp - 0x18], 0x28d
mov dword [ebp - 0x18], eax
imul eax, dword [ebp - 0x18], 0x291
mov dword [ebp - 0x18], eax
imul eax, dword [ebp - 0x18], 0x2b5
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
sub dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
sub dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x10]
lea edx, [ebp - 0x10]
lea eax, [ebp - 0x10]
call fcn.00461dd8
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret