Function at 0x11015460
Capabilities:
Generate random numbers using the delphi lcg
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x111eeb28
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [0x11279148]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
mov esi, ecx
push 0xc
mov dword [esp + 0x1c], vtable.CZipAutoBuffer.0
call fcn.111709c0
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0xc
mov eax, dword [ebp + 8]
xor ebx, ebx
push eax
mov ecx, esi
mov dword [esp + 0x34], ebx
call fcn.110156d0
push ebx
call dword [sym.imp.MSVCR100.dll__time64]
push eax
call dword [sym.imp.MSVCR100.dll_srand]
add esp, 8
mov edi, edi
call dword [sym.imp.MSVCR100.dll_rand]
mov ecx, eax
sar ecx, 6
mov byte [esp + 0x17], cl
test cl, cl
jne 0x110154e9
mov byte [esp + 0x17], al
mov cl, al
mov edi, dword [esi + 4]
movsx ecx, cl
xor ecx, edi
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x11249450]
mov eax, dword [esi + 0xc]
shr edi, 8
xor ecx, edi
mov dword [esi + 4], ecx
movzx ecx, cl
add ecx, dword [esi + 8]
mov edx, eax
imul ecx, ecx, 0x8088405
inc ecx
mov dword [esi + 8], ecx
shr ecx, 0x18
xor ecx, eax
shr eax, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x11249450]
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0xc], eax
and edx, 0xfffd
or edx, 2
mov eax, edx
xor eax, 1
imul eax, edx
sar eax, 8
xor al, byte [esp + 0x17]
inc ebx
mov byte [ecx + ebx - 1], al
cmp ebx, 0xa
jl 0x110154d0
mov edx, dword [ebp + 0xc]
movzx edi, word [edx + 0x10]
mov ecx, dword [esi + 4]
shl edi, 0x10
mov ebx, edi
sar ebx, 0x10
mov byte [esp + 0x17], bl
mov eax, dword [esi + 0xc]
movsx ebx, bl
xor ebx, ecx
shr ecx, 8
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x11249450]
xor ebx, ecx
movzx ecx, bl
add ecx, dword [esi + 8]
mov edx, eax
imul ecx, ecx, 0x8088405
inc ecx
mov dword [esi + 8], ecx
shr ecx, 0x18
xor ecx, eax
and ecx, 0xff
mov dword [esi + 4], ebx
shr eax, 8
xor eax, dword [ecx*4 + 0x11249450]
and edx, 0xfffd
or edx, 2
mov ecx, edx
xor ecx, 1
imul ecx, edx
mov edx, dword [esp + 0x1c]
sar ecx, 8
xor cl, byte [esp + 0x17]
mov dword [esi + 0xc], eax
mov byte [edx + 0xa], cl
mov ebx, edi
mov edi, dword [esi + 4]
sar ebx, 0x18
mov eax, dword [esi + 0xc]
movsx ecx, bl
xor ecx, edi
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x11249450]
shr edi, 8
xor ecx, edi
mov dword [esi + 4], ecx
movzx ecx, cl
add ecx, dword [esi + 8]
mov edi, dword [esp + 0x1c]
imul ecx, ecx, 0x8088405
inc ecx
mov dword [esi + 8], ecx
mov edx, eax
shr ecx, 0x18
xor ecx, eax
shr eax, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x11249450]
and edx, 0xfffd
mov dword [esi + 0xc], eax
mov esi, dword [ebp + 0x10]
or edx, 2
mov eax, edx
xor eax, 1
imul eax, edx
sar eax, 8
xor al, bl
mov byte [edi + 0xb], al
mov ecx, dword [esi + 0x60]
shr ecx, 4
test cl, 1
jne 0x1101565d
push 0xc
push edi
call fcn.1100fd60
jmp 0x11015697
xor edi, edi
push 0
push 1
call fcn.1100fc40
mov ebx, eax
mov ecx, 0xc
xor eax, eax
sub ecx, edi
cmp edx, eax
ja 0x1101567d
jb 0x1101567f
cmp ebx, ecx
jb 0x1101567f
mov ebx, ecx
mov edx, dword [esp + 0x1c]
push ebx
add edx, edi
push edx
call fcn.1100fd60
add edi, ebx
cmp edi, 0xc
jb 0x1101565f
mov edi, dword [esp + 0x1c]
mov eax, dword [ebp + 0xc]
add dword [eax + 0x18], 0xc
push edi
adc dword [eax + 0x1c], 0
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc