Function at 0x4b5b90
Capabilities:
Hash data using djb2

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x6e0491
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x218
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
movss xmm0, dword [edi + 0x48]
movss xmm1, dword [edi + 0x44]
movss xmm2, dword [edi + 0x40]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [edi + 0x12c]
lea ecx, [esp + 0x40]
lea eax, [esp + 0x20]
movss dword [esp + 0x40], xmm2
movss dword [esp + 0x44], xmm1
call fcn.0042eaa0
xor esi, esi
push esi
push 0xffffffffffffffff
lea eax, [esp + 0x28]
push eax
push 0x40
push 0x8d68e0
call fcn.004609c0
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x22c], esi
mov bx, word [0x91625e]
cmp bx, 0xffff
mov dword [esp + 0x30], 0xa
mov dword [0x916264], 1
je 0x4b5c6b
lea ebx, [ebx]
lea esi, [esp + 0x20]
call fcn.004b66d0
movzx ecx, bx
shl ecx, 5
xor edx, edx
mov word [eax], bx
mov dx, word [ecx + 0x8d7264]
mov bx, dx
cmp bx, 0xffff
mov dword [esp + 0x18], edx
jne 0x4b5c40
xor esi, esi
cmp dword [esp + 0x24], esi
mov dword [0x916264], esi
mov dword [esp + 0x18], esi
jle 0x4b5ef5
jmp 0x4b5c83
xor esi, esi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov ax, word [eax + ecx*2]
cmp ax, 0xffff
jne 0x4b5c99
xor ebx, ebx
jmp 0x4b5ca5
movzx edx, ax
shl edx, 5
mov ebx, dword [edx + 0x8d725c]
test dword [ebx + 4], 0x10000
je 0x4b5cea
mov eax, dword [edi + 0x70]
test ah, 6
je 0x4b5cea
mov eax, dword [edi]
lea ecx, [esp + 0x1e0]
push ecx
mov ecx, edi
call dword [eax + 0x58]
lea edx, [edi + 0x50]
mov esi, eax
mov edi, edx
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 8]
add ecx, 0x10
call fcn.004045c0
mov eax, dword [ebp + 8]
and dword [eax + 0x70], 0xfffff9ff
mov edi, eax
mov edx, str.GENERIC_1
mov ecx, 0x1505
mov eax, 0x47
lea esp, [esp]
inc edx
cmp eax, 0x61
jl 0x4b5d0e
cmp eax, 0x7a
jg 0x4b5d0e
sub eax, 0x20
imul ecx, ecx, 0x21
xor ecx, eax
movsx eax, byte [edx]
test eax, eax
jne 0x4b5d00
and ecx, 0xfffffff
or ecx, 0x40000000
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x70]
call fcn.00527d10
mov byte [esp + 0x22c], 2
mov eax, dword [ebx + 0x70]
test ah, 6
je 0x4b5d76
mov edx, dword [ebx]
lea eax, [esp + 0x200]
push eax
mov ecx, ebx
call dword [edx + 0x58]
lea edx, [ebx + 0x50]
mov esi, eax
mov edi, edx
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebx + 0x10]
call fcn.004045c0
mov eax, dword [ebx + 0x70]
mov edi, dword [ebp + 8]
and eax, 0xfffff9ff
mov dword [ebx + 0x70], eax
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 8]
movss xmm3, dword [ebx + 0x58]
mov eax, dword [esp + 0x1c]
movss xmm0, dword [ebx + 0x68]
movss xmm4, dword [ebx + 0x54]
movss xmm1, dword [ebx + 0x64]
movss xmm5, dword [ebx + 0x50]
movss xmm2, dword [ebx + 0x60]
push ecx
push edx
addss xmm0, xmm3
movss xmm3, dword [0x738a1c]
push eax
lea ecx, [esp + 0x7c]
addss xmm2, xmm5
addss xmm1, xmm4
mulss xmm2, xmm3
mulss xmm1, xmm3
mulss xmm0, xmm3
push ecx
lea eax, [esp + 0x60]
movss dword [esp + 0x60], xmm2
movss dword [esp + 0x64], xmm1
movss dword [esp + 0x68], xmm0
call fcn.00527ee0
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0xd0], eax
xor esi, esi
or eax, ecx
mov dword [esp + 0xd4], ecx
je 0x4b5e02
mov eax, 1
jmp 0x4b5e04
xor eax, eax
mov ecx, dword [esp + 0x1dc]
shl eax, 4
xor eax, ecx
and eax, 0x10
xor ecx, eax
mov dword [esp + 0x1dc], ecx
mov edx, dword [ebx]
lea eax, [esp + 0x68]
push eax
mov ecx, ebx
call dword [edx + 0x98]
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0x44], edx
xor edx, edx
cmp ecx, 0xffffffff
jne 0x4b5e58
cmp edx, esi
jne 0x4b5e58
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [0x916514]
push edx
call fcn.00467180
mov eax, dword [0x916514]
jmp 0x4b5e84
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
mov eax, 0x8d68e0
call fcn.0043b2d0
cmp eax, 0xffffffff
je 0x4b5ea0
mov ecx, dword [0x8d68e8]
lea eax, [eax + eax*2]
mov eax, dword [ecx + eax*8 + 8]
shl eax, 5
mov eax, dword [eax + 0x8d725c]
cmp eax, esi
je 0x4b5ea0
mov edx, dword [eax]
lea ecx, [esp + 0x70]
push ecx
mov ecx, dword [ebx + 0xc]
push ecx
mov ecx, dword [ebx + 8]
push ecx
mov ecx, eax
call dword [edx + 0x34]
test eax, eax
jne 0x4b5eac
mov edx, dword [ebx]
lea eax, [esp + 0x70]
push eax
mov ecx, ebx
call dword [edx + 0x30]
mov ebx, dword [esp + 0x1dc]
and ebx, 0xfffffffc
lea eax, [esp + 0x70]
mov dword [esp + 0x1dc], ebx
call fcn.00527df0
mov eax, dword [esp + 0x18]
mov byte [esp + 0x22c], 0
mov ecx, dword [esp + 0x24]
inc eax
cmp eax, ecx
mov dword [esp + 0x1b4], esi
mov dword [esp + 0x1b0], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x18], eax
jl 0x4b5c81
mov dword [esp + 0x22c], 0xffffffff
cmp dword [esp + 0x2c], 2
je 0x4b5f14
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00685b4c
add esp, 4
mov ecx, dword [esp + 0x224]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4