Function at 0x6639d0
Capabilities:
Hash data using djb2

Disassembly:
mov ecx, dword [0x95eda0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x663be2
sub esp, 0x40
mov edx, dword [esp + 0x44]
mov ebx, dword [edx + 0x100]
mov ecx, dword [esp + 0x4c]
cmp ecx, ebx
jge 0x6639fd
mov eax, ecx
jmp 0x663a01
mov eax, ecx
mov ecx, ebx
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 0x48]
xor ebp, ebp
jmp 0x663a45
movzx esi, byte [ebx + ebp]
mov dword [esp + 0x3c], esi
movzx edi, byte [edx + esi]
mov ecx, ebp
mov esi, 1
shl esi, cl
lea ebx, [ecx + 1]
cmp cl, 0x20
sbb ecx, ecx
and esi, ecx
or edi, esi
mov esi, dword [esp + 0x3c]
xchg edi, eax
mov byte [edx + esi], al
xchg edi, eax
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x48]
mov ecx, esi
mov ebp, ebx
mov ebx, edi
cmp ecx, ebp
jle 0x663a52
cmp eax, ebp
ja 0x663a0d
jmp 0x663bd8
xor ecx, ecx
mov ebp, 0x1505
xor esi, esi
jmp 0x663a92
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], esi
movzx edi, byte [ebx + ecx]
mov dword [esp + 0x38], edi
shl esi, 5
shl ebp, 5
mov edi, dword [esp + 0x24]
shr edi, 0x1b
or esi, edi
inc ecx
mov edi, dword [esp + 0x24]
add ebp, edi
mov edi, dword [esp + 0x28]
adc esi, edi
mov edi, dword [esp + 0x38]
add ebp, edi
adc esi, 0
cmp eax, ecx
jg 0x663a5d
mov eax, dword [edx + 0x108]
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], eax
sar eax, 0x1f
mov dword [esp + 0xc], eax
call fcn.00462d00
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx + 0x108]
test esi, esi
jne 0x663bd1
cmp edx, eax
jbe 0x663bca
mov edx, dword [ecx + 0x104]
lea ebx, [eax + eax*2]
mov ebp, dword [edx + ebx*4]
mov esi, dword [edx + ebx*4 + 4]
mov edx, dword [edx + ebx*4 + 8]
test ebp, ebp
jne 0x663af7
xor edx, edx
xor esi, esi
lea ebp, [0x95eb80]
mov dword [esp + 0x3c], ebx
inc esi
cmp edx, esi
jae 0x663b3e
mov dword [esp + 0x2c], eax
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6998c0]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x34], edx
lea edi, [esi + esi*2]
mov edx, dword [esp + 0x4c]
mov dword [ebp + edi*4 - 8], edx
mov edx, dword [esp + 0x50]
mov dword [ebp + edi*4 - 4], edx
mov edx, dword [0x95f020]
test edx, edx
je 0x663b81
mov dword [esp + 0x30], esi
mov edx, edi
call fcn.004717d0
mov ebx, dword [esp + 0x48]
mov dword [edi], ebx
mov esi, dword [ebp + edx*4 - 0xc]
mov dword [edi + 4], esi
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
mov edi, edx
mov edx, dword [esp + 0x48]
mov dword [ebp + edi*4 - 0xc], edx
mov edx, dword [ecx + 0x108]
cmp edx, eax
jbe 0x663bc3
mov eax, dword [ecx + 0x104]
mov dword [eax + ebx*4 + 4], esi
mov ecx, dword [esp + 0x34]
mov dword [eax + ebx*4 + 8], ecx
mov ecx, dword [0x95f020]
test ecx, ecx
je 0x663bbc
call fcn.004717d0
mov dword [edi], ebp
mov ecx, dword [eax + ebx*4]
mov dword [edi + 4], ecx
mov dword [eax + ebx*4], ebp
add esp, 0x40
ret
mov ecx, edx
call fcn.00471850
mov ecx, edx
call fcn.00471850
mov ecx, edx
call fcn.00471920
mov ecx, eax
mov eax, ebp
call fcn.00471840
nop
call fcn.004703c0
jmp fcn.006639d0