Function at 0x494b80
Capabilities:
Generate random numbers using a mersenne twister
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x990
mov eax, dword [0x4eb018]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, edx
mov edx, dword [ebp + 8]
lea eax, [ecx + edx]
mov dword [ebp - 0x990], eax
mov dword [ebp - 0x98c], edi
mov eax, 0x4eeb80
test edx, edx
jle 0x494bdb
sub edi, ecx
mov esi, edx
mov dl, byte [eax]
xor dl, byte [ecx]
inc ecx
mov byte [edi + ecx - 1], dl
mov edx, eax
sub edx, 0x4eeb80
cmp edx, 0xff
jne 0x494bd7
mov eax, 0x4eeb80
jmp 0x494bd8
inc eax
dec esi
jne 0x494bb7
xor eax, eax
mov esi, 0x4ee9f4
mov word [ebp - 0x724], ax
mov dword [ebp - 0x988], eax
nop
lea ecx, [ebp - 0x724]
push ecx
mov ebx, ecx
call fcn.004a6190
add esp, 4
test eax, eax
jne 0x494fc2
movzx edx, byte [esi]
mov eax, 1
mov word [ebp - 0x21a], dx
mov word [ebp - 0x21c], ax
nop
movzx ecx, ax
cmp word [ebp + ecx*2 - 0x21c], 0
jne 0x494c3f
mov edx, 0xffff
add ax, dx
mov word [ebp - 0x21c], ax
jne 0x494c20
lea eax, [ebp - 0x21c]
lea edi, [ebp - 0x724]
push eax
mov ecx, edi
call fcn.004a4030
lea ecx, [ebp - 0x21c]
push ecx
push 0x202
push 1
mov edi, eax
call fcn.004a6c70
add esp, 0x10
test edi, edi
jne 0x494fc2
mov eax, dword [ebp - 0x988]
inc eax
inc esi
mov dword [ebp - 0x988], eax
cmp eax, 3
jl 0x494bf0
test edi, edi
jne 0x494fc2
xor edx, edx
mov esi, 0x4eea80
mov word [ebp - 0x420], dx
mov dword [ebp - 0x988], edx
lea eax, [ebp - 0x420]
push eax
mov ebx, eax
call fcn.004a6190
add esp, 4
test eax, eax
jne 0x494fc2
movzx ecx, byte [esi]
mov eax, 1
mov word [ebp - 0x21a], cx
mov word [ebp - 0x21c], ax
jmp 0x494ce0
movzx edx, ax
cmp word [ebp + edx*2 - 0x21c], 0
jne 0x494cff
mov ecx, 0xffff
add ax, cx
mov word [ebp - 0x21c], ax
jne 0x494ce0
lea edx, [ebp - 0x21c]
lea edi, [ebp - 0x420]
push edx
mov ecx, edi
call fcn.004a4030
mov edi, eax
lea eax, [ebp - 0x21c]
push eax
push 0x202
push 1
call fcn.004a6c70
add esp, 0x10
test edi, edi
jne 0x494fc2
mov eax, dword [ebp - 0x988]
inc eax
inc esi
mov dword [ebp - 0x988], eax
cmp eax, 0x100
jl 0x494ca6
test edi, edi
jne 0x494fc2
mov edi, dword [ebp - 0x990]
test edi, edi
je 0x494fc2
xor ecx, ecx
mov word [ebp - 0x21c], cx
xor esi, esi
lea ecx, [ecx]
lea edx, [ebp - 0x21c]
push edx
mov ebx, edx
call fcn.004a6190
add esp, 4
test eax, eax
jne 0x494fc2
movzx ecx, byte [edi]
push ecx
mov edx, ebx
mov ecx, ebx
call fcn.004a6100
add esp, 4
test eax, eax
jne 0x494fc2
inc esi
inc edi
cmp esi, 0x100
jl 0x494d70
cmp word [ebp - 0x420], ax
jbe 0x494dda
test byte [ebp - 0x41e], 1
je 0x494dda
lea edx, [ebp - 0x420]
push edx
lea eax, [ebp - 0x928]
push eax
lea edx, [ebp - 0x724]
mov ecx, ebx
call fcn.004a58a0
jmp 0x494df9
lea ecx, [ebp - 0x420]
push ecx
lea edx, [ebp - 0x928]
push edx
lea edx, [ebp - 0x724]
lea ecx, [ebp - 0x21c]
call fcn.004a5190
lea eax, [ebp - 0x928]
add esp, 8
push eax
lea edi, [ebp - 0x988]
mov dword [ebp - 0x988], 0
call fcn.004a6550
mov ecx, dword [ebp - 0x988]
push ecx
push eax
lea edx, [ebp - 0x520]
push edx
call fcn.004ac162
add esp, 0x10
cmp dword [ebp - 0x425], 0xfffefdfc
jne 0x494fc2
lea eax, [ebp - 0x50c]
call fcn.004a3d50
xor edi, edi
mov byte [0x4f8632], 1
cmp dword [ebp + 8], edi
jle 0x494ec1
mov ebx, dword [0x4f8af4]
mov edi, edi
cmp ebx, 0x270
jne 0x494e73
call fcn.004a3b50
mov ebx, dword [0x4f8af4]
mov ecx, dword [ebx*4 + 0x4f8af8]
mov eax, ecx
shr eax, 0xb
xor ecx, eax
mov edx, ecx
and edx, 0xff3a58ad
shl edx, 7
xor ecx, edx
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
xor edx, edx
mov ecx, 0xff
div ecx
mov eax, dword [ebp - 0x98c]
inc ebx
inc edi
mov dword [0x4f8af4], ebx
xor byte [eax + edi - 1], dl
cmp edi, dword [ebp + 8]
jl 0x494e60
mov edx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x96c], eax
mov dword [ebp - 0x970], eax
mov eax, dword [ebp - 0x98c]
push edx
push eax
lea eax, [ebp - 0x984]
mov dword [ebp - 0x984], 0x67452301
mov dword [ebp - 0x980], 0xefcdab89
mov dword [ebp - 0x97c], 0x98badcfe
mov dword [ebp - 0x978], 0x10325476
mov dword [ebp - 0x974], 0xc3d2e1f0
call fcn.004a7d00
add esp, 8
lea esi, [ebp - 0x984]
call fcn.004a7e00
mov ecx, dword [ebp - 0x984]
mov edx, dword [ebp - 0x980]
mov eax, dword [ebp - 0x97c]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x978]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x974]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov eax, 0x14
lea ecx, [ebp - 0x18]
lea edx, [ebp - 0x520]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x494f8e
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x494f60
xor eax, eax
pop edi
test eax, eax
pop esi
sete al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ab7a3
mov esp, ebp
pop ebp
ret 4
movzx eax, byte [edx]
movzx esi, byte [ecx]
sub eax, esi
jne 0x494fba
movzx eax, byte [edx + 1]
movzx esi, byte [ecx + 1]
sub eax, esi
jne 0x494fba
movzx eax, byte [edx + 2]
movzx esi, byte [ecx + 2]
sub eax, esi
jne 0x494fba
movzx eax, byte [edx + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
sar eax, 0x1f
or eax, 1
jmp 0x494f76
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor al, al
pop ebx
call fcn.004ab7a3
mov esp, ebp
pop ebp
ret 4