Function at 0x4c62a0
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6a8f51
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push esi
push edi
mov eax, dword [0x76f950]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x14], esi
call fcn.004df4c0
mov edi, eax
push 0xffffffffffffffff
push 0x6f3c6c
mov ecx, edi
call fcn.0040bb30
mov dword [ebp - 0x10], edi
mov dword [ebp - 4], 0
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
call fcn.004c93e0
mov byte [ebp - 4], 2
test edi, edi
je 0x4c6310
mov eax, dword [edi]
test eax, eax
jne 0x4c630d
mov ecx, edi
call fcn.004df580
jmp 0x4c6310
dec eax
mov dword [edi], eax
lea eax, [ebp - 0x20]
push eax
mov dword [esi], vtable.TJS::tTJSNC_Math.0
call fcn.00637030
mov ecx, dword [ebp - 0x20]
shr ecx, 0x1e
xor ecx, dword [ebp - 0x20]
add esp, 4
imul ecx, ecx, 0x6c078965
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul eax, eax, 0x6c078965
inc eax
mov dword [0x772cb0], ecx
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul ecx, ecx, 0x6c078965
mov dword [0x772cb4], eax
add ecx, 2
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul eax, eax, 0x6c078965
add eax, 3
mov dword [0x772cb8], ecx
mov dword [0x772cbc], eax
call fcn.00496b30
mov eax, dword [0x796ff4]
test al, 1
jne 0x4c63a4
or eax, 1
mov dword [0x796ff4], eax
mov byte [ebp - 4], 3
mov ecx, 0x6f3c60
call fcn.004c8b60
mov dword [0x796ff8], eax
mov byte [ebp - 4], 2
jmp 0x4c63a9
mov eax, dword [0x796ff8]
mov ecx, method.TJS::tTJSNativeClass.virtual_128
mov dword [esi + 0x64], eax
mov dword [0x772cc0], eax
call fcn.004c8f30
push 0
push 1
push 0x6f3c60
push eax
push 0x6f3c98
mov ecx, esi
call fcn.004c9650
push 0x10
call fcn.006341f8
mov edi, eax
add esp, 4
mov dword [ebp - 0x10], edi
mov byte [ebp - 4], 4
test edi, edi
je 0x4c6433
mov dword [edi], vtable.TJS::tTJSDispatch.0
mov byte [edi + 4], 0
mov dword [edi + 8], 1
mov byte [ebp - 4], 5
cmp dword [0x77ae44], 0
mov dword [edi], vtable.TJS::tTJSNativeClassMethod.0
mov dword [edi + 0xc], method.TJS::tTJSNativeClass.virtual_128
jne 0x4c641c
cmp dword [0x77ae48], 0
je 0x4c6423
mov ecx, edi
call fcn.004a12d0
mov byte [ebp - 4], 6
mov dword [edi], vtable.TJS::tTJSNativeClassConstructor.0
mov byte [ebp - 4], 4
jmp 0x4c6435
xor edi, edi
mov byte [ebp - 4], 2
push 0
push 1
push 0x6f3c60
push edi
push str.Math
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c6ad0
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push 0x6f3c84
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c6b40
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push 0x6f3c78
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c6ba0
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push 0x6f3cd0
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c6c00
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push 0x6f3cc4
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c6c60
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push 0x6f3cb8
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c6ce0
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push str.ceil
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c6d50
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push 0x6f3cf8
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c6db0
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push str.floor
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c6e20
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push 0x6f3ce4
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c6e80
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push 0x6f3cdc
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c6f00
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push 0x6f3d24
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c70c0
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push 0x6f3d1c
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c72a0
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push 0x6f3d0c
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c72e0
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push str.round
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c7360
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push 0x6f3d48
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c73c0
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push 0x6f3d40
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c7420
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push 0x6f3d34
mov ecx, esi
call fcn.004c9650
mov ecx, 0x4c7480
call fcn.004c8f30
push 0x10000
push 1
push 0x6f3c60
push eax
push 0x6f3d2c
mov ecx, esi
call fcn.004c9650
push 0x14
call fcn.006341f8
mov edi, eax
add esp, 4
mov dword [ebp - 0x10], edi
mov byte [ebp - 4], 7
test edi, edi
je 0x4c6724
mov dword [edi], vtable.TJS::tTJSDispatch.0
mov byte [edi + 4], 0
mov dword [edi + 8], 1
mov byte [ebp - 4], 8
cmp dword [0x77ae44], 0
mov dword [edi], vtable.TJS::tTJSNativeClassProperty.0
mov dword [edi + 0xc], 0x4c74e0
mov dword [edi + 0x10], 0x4140c0
jne 0x4c6717
cmp dword [0x77ae48], 0
je 0x4c671e
mov ecx, edi
call fcn.004a12d0
mov byte [ebp - 4], 7
jmp 0x4c6726
xor edi, edi
mov byte [ebp - 4], 2
push 0x10000
push 2
push 0x6f3c60
push edi
push 0x6f3d78
mov ecx, esi
call fcn.004c9650
push 0x14
call fcn.006341f8
mov edi, eax
add esp, 4
mov dword [ebp - 0x10], edi
mov byte [ebp - 4], 9
test edi, edi
je 0x4c67a2
mov dword [edi], vtable.TJS::tTJSDispatch.0
mov byte [edi + 4], 0
mov dword [edi + 8], 1
mov byte [ebp - 4], 0xa
cmp dword [0x77ae44], 0
mov dword [edi], vtable.TJS::tTJSNativeClassProperty.0
mov dword [edi + 0xc], 0x4c7520
mov dword [edi + 0x10], 0x4140c0
jne 0x4c6795
cmp dword [0x77ae48], 0
je 0x4c679c
mov ecx, edi
call fcn.004a12d0
mov byte [ebp - 4], 9
jmp 0x4c67a4
xor edi, edi
mov byte [ebp - 4], 2
push 0x10000
push 2
push 0x6f3c60
push edi
push str.LOG2E
mov ecx, esi
call fcn.004c9650
push 0x14
call fcn.006341f8
mov edi, eax
add esp, 4
mov dword [ebp - 0x10], edi
mov byte [ebp - 4], 0xb
test edi, edi
je 0x4c6820
mov dword [edi], vtable.TJS::tTJSDispatch.0
mov byte [edi + 4], 0
mov dword [edi + 8], 1
mov byte [ebp - 4], 0xc
cmp dword [0x77ae44], 0
mov dword [edi], vtable.TJS::tTJSNativeClassProperty.0
mov dword [edi + 0xc], 0x4c7560
mov dword [edi + 0x10], 0x4140c0
jne 0x4c6813
cmp dword [0x77ae48], 0
je 0x4c681a
mov ecx, edi
call fcn.004a12d0
mov byte [ebp - 4], 0xb
jmp 0x4c6822
xor edi, edi
mov byte [ebp - 4], 2
push 0x10000
push 2
push 0x6f3c60
push edi
push str.LOG10E
mov ecx, esi
call fcn.004c9650
push 0x14
call fcn.006341f8
mov edi, eax
add esp, 4
mov dword [ebp - 0x10], edi
mov byte [ebp - 4], 0xd
test edi, edi
je 0x4c689e
mov dword [edi], vtable.TJS::tTJSDispatch.0
mov byte [edi + 4], 0
mov dword [edi + 8], 1
mov byte [ebp - 4], 0xe
cmp dword [0x77ae44], 0
mov dword [edi], vtable.TJS::tTJSNativeClassProperty.0
mov dword [edi + 0xc], 0x4c75a0
mov dword [edi + 0x10], 0x4140c0
jne 0x4c6891
cmp dword [0x77ae48], 0
je 0x4c6898
mov ecx, edi
call fcn.004a12d0
mov byte [ebp - 4], 0xd
jmp 0x4c68a0
xor edi, edi
mov byte [ebp - 4], 2
push 0x10000
push 2
push 0x6f3c60
push edi
push str.LN10
mov ecx, esi
call fcn.004c9650
push 0x14
call fcn.006341f8
mov edi, eax
add esp, 4
mov dword [ebp - 0x10], edi
mov byte [ebp - 4], 0xf
test edi, edi
je 0x4c691c
mov dword [edi], vtable.TJS::tTJSDispatch.0
mov byte [edi + 4], 0
mov dword [edi + 8], 1
mov byte [ebp - 4], 0x10
cmp dword [0x77ae44], 0
mov dword [edi], vtable.TJS::tTJSNativeClassProperty.0
mov dword [edi + 0xc], 0x4c75e0
mov dword [edi + 0x10], 0x4140c0
jne 0x4c690f
cmp dword [0x77ae48], 0
je 0x4c6916
mov ecx, edi
call fcn.004a12d0
mov byte [ebp - 4], 0xf
jmp 0x4c691e
xor edi, edi
mov byte [ebp - 4], 2
push 0x10000
push 2
push 0x6f3c60
push edi
push 0x6f3da0
mov ecx, esi
call fcn.004c9650
push 0x14
call fcn.006341f8
mov edi, eax
add esp, 4
mov dword [ebp - 0x10], edi
mov byte [ebp - 4], 0x11
test edi, edi
je 0x4c699a
mov dword [edi], vtable.TJS::tTJSDispatch.0
mov byte [edi + 4], 0
mov dword [edi + 8], 1
mov byte [ebp - 4], 0x12
cmp dword [0x77ae44], 0
mov dword [edi], vtable.TJS::tTJSNativeClassProperty.0
mov dword [edi + 0xc], 0x4c7620
mov dword [edi + 0x10], 0x4140c0
jne 0x4c698d
cmp dword [0x77ae48], 0
je 0x4c6994
mov ecx, edi
call fcn.004a12d0
mov byte [ebp - 4], 0x11
jmp 0x4c699c
xor edi, edi
mov byte [ebp - 4], 2
push 0x10000
push 2
push 0x6f3c60
push edi
push 0x6f3d98
mov ecx, esi
call fcn.004c9650
push 0x14
call fcn.006341f8
mov edi, eax
add esp, 4
mov dword [ebp - 0x10], edi
mov byte [ebp - 4], 0x13
test edi, edi
je 0x4c6a18
mov dword [edi], vtable.TJS::tTJSDispatch.0
mov byte [edi + 4], 0
mov dword [edi + 8], 1
mov byte [ebp - 4], 0x14
cmp dword [0x77ae44], 0
mov dword [edi], vtable.TJS::tTJSNativeClassProperty.0
mov dword [edi + 0xc], 0x4c7660
mov dword [edi + 0x10], 0x4140c0
jne 0x4c6a0b
cmp dword [0x77ae48], 0
je 0x4c6a12
mov ecx, edi
call fcn.004a12d0
mov byte [ebp - 4], 0x13
jmp 0x4c6a1a
xor edi, edi
mov byte [ebp - 4], 2
push 0x10000
push 2
push 0x6f3c60
push edi
push str.SQRT1_2
mov ecx, esi
call fcn.004c9650
push 0x14
call fcn.006341f8
mov edi, eax
add esp, 4
mov dword [ebp - 0x10], edi
mov byte [ebp - 4], 0x15
test edi, edi
je 0x4c6a96
mov dword [edi], vtable.TJS::tTJSDispatch.0
mov byte [edi + 4], 0
mov dword [edi + 8], 1
mov byte [ebp - 4], 0x16
cmp dword [0x77ae44], 0
mov dword [edi], vtable.TJS::tTJSNativeClassProperty.0
mov dword [edi + 0xc], 0x4c76a0
mov dword [edi + 0x10], 0x4140c0
jne 0x4c6a89
cmp dword [0x77ae48], 0
je 0x4c6a90
mov ecx, edi
call fcn.004a12d0
mov byte [ebp - 4], 0x15
jmp 0x4c6a98
xor edi, edi
mov byte [ebp - 4], 2
push 0x10000
push 2
push 0x6f3c60
push edi
push 0x6f3d7c
mov ecx, esi
call fcn.004c9650
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret