Function at 0x4bdd10
Capabilities:
Hash data using djb2

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x55347b
mov eax, dword fs:[0]
push eax
sub esp, 0x2a8
mov eax, dword [0x57f7c4]
xor eax, esp
mov dword [esp + 0x2a0], eax
push ebx
push esi
push edi
mov eax, dword [0x57f7c4]
xor eax, esp
push eax
lea eax, [esp + 0x2b8]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [0x1091870]
sub eax, dword [0x109186c]
mov ebx, edx
sar eax, 2
cmp esi, eax
mov dword [esp + 0x28], ebx
jl 0x4bdd71
xor al, al
jmp 0x4be57c
jb 0x4bdd78
call fcn.0051b1ad
mov eax, dword [0x109186c]
mov edi, dword [eax + esi*4]
mov dword [esp + 0x24], edi
test edi, edi
je 0x4bdd6a
mov dword [ebx + 0x148], ebx
xor ebx, ebx
cmp dword [edi + 0x224], ebx
jle 0x4bde2e
mov dword [esp + 0x18], ebx
mov ecx, dword [edi + 0x238]
sub ecx, dword [edi + 0x234]
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebx, ecx
jb 0x4bddc8
call fcn.0051b1ad
mov ecx, dword [edi + 0x238]
sub ecx, dword [edi + 0x234]
mov esi, dword [edi + 0x234]
add esi, dword [esp + 0x18]
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4bddfa
call fcn.0051b1ad
mov ecx, dword [edi + 0x234]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + edx + 0x10]
mov ecx, dword [esp + 0x28]
push esi
push eax
add ecx, 0xd8
call fcn.004c3a60
add dword [esp + 0x18], 0x94
inc ebx
cmp ebx, dword [edi + 0x224]
jl 0x4bdda0
xor esi, esi
cmp dword [edi + 0x240], esi
mov dword [esp + 0x1c], esi
jle 0x4be008
mov ecx, dword [esp + 0x28]
add ecx, 0x16c
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x18], esi
jmp 0x4bde58
mov esi, dword [esp + 0x1c]
xor ebx, ebx
push 4
mov dword [esp + 0xe8], ebx
call fcn.0051b26b
add esp, 4
cmp eax, ebx
je 0x4bde7a
lea edx, [esp + 0x174]
mov dword [eax], edx
jmp 0x4bde7c
xor eax, eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x180], ebx
mov dword [esp + 0x184], ebx
mov dword [esp + 0x188], ebx
mov dword [esp + 0x2c0], 1
mov ecx, dword [edi + 0x254]
sub ecx, dword [edi + 0x250]
mov eax, 0x63e7063f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x4bdec9
call fcn.0051b1ad
mov ecx, dword [edi + 0x250]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + ecx]
mov ecx, dword [edi + 0x254]
sub ecx, dword [edi + 0x250]
mov dword [esp + 0xe4], eax
mov eax, 0x63e7063f
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp esi, ecx
jb 0x4bdf03
call fcn.0051b1ad
mov edi, dword [edi + 0x250]
add edi, dword [esp + 0x18]
mov edx, dword [edi]
mov dword [esp + 0xe8], edx
mov eax, dword [edi + 4]
mov dword [esp + 0xec], eax
xor eax, eax
mov cl, byte [eax + edi + 8]
mov byte [esp + eax + 0xf0], cl
inc eax
cmp eax, 0x80
jb 0x4bdf22
mov edx, dword [edi + 0x88]
add edi, 0x8c
push edi
lea eax, [esp + 0x178]
mov dword [esp + 0x174], edx
call fcn.004bfcc0
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0xec]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0x44], edx
mov ecx, 0x20
lea esi, [esp + 0xf0]
lea edi, [esp + 0x48]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xcc]
push ecx
lea ecx, [esp + 0x178]
mov dword [esp + 0xcc], eax
call fcn.004b00d0
mov ebx, dword [esp + 0x2c]
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x2c8], 2
call fcn.004b0590
lea eax, [esp + 0x40]
call fcn.004a0700
lea eax, [esp + 0xe8]
mov dword [esp + 0x2c0], 0xffffffff
call fcn.004a0700
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
add dword [esp + 0x18], 0xa4
inc eax
cmp eax, dword [ecx + 0x240]
mov dword [esp + 0x1c], eax
mov edi, ecx
jl 0x4bde54
cmp dword [edi + 0x208], 0
mov dword [esp + 0x1c], 0
jle 0x4be50c
mov edx, dword [esp + 0x28]
add edx, 0xd8
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], 0
jmp 0x4be040
mov ecx, dword [edi + 0x21c]
sub ecx, dword [edi + 0x218]
mov ebx, dword [esp + 0x1c]
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4be06c
call fcn.0051b1ad
mov edx, dword [edi + 0x218]
add edx, dword [esp + 0x18]
sub esp, 0x1c
mov esi, esp
mov eax, edx
lea ecx, [eax + 1]
mov dword [esp + 0x3c], esp
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], 0
mov byte [esi + 4], 0
mov dword [esp + 0x3c], ecx
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4be0a0
sub eax, dword [esp + 0x3c]
mov ecx, esi
push eax
push edx
call fcn.004047e0
mov edx, dword [esp + 0x48]
push edx
lea esi, [esp + 0x1ac]
call fcn.004c0420
mov dword [esp + 0x2c0], 3
mov ecx, dword [edi + 0x21c]
sub ecx, dword [edi + 0x218]
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4be0f8
call fcn.0051b1ad
mov edx, dword [esp + 0x18]
mov ecx, dword [edi + 0x218]
lea esi, [edx + ecx + 0x100]
mov eax, esi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4be110
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x1fc]
call fcn.004047e0
mov ecx, dword [edi + 0x21c]
sub ecx, dword [edi + 0x218]
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4be14f
call fcn.0051b1ad
mov edx, dword [esp + 0x18]
mov ecx, dword [edi + 0x218]
lea esi, [ecx + edx + 0x200]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4be165
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x218]
call fcn.004047e0
mov ecx, dword [edi + 0x21c]
sub ecx, dword [edi + 0x218]
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4be1a4
call fcn.0051b1ad
mov edx, dword [esp + 0x18]
mov ecx, dword [edi + 0x218]
lea esi, [edx + ecx + 0x300]
mov eax, esi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4be1c0
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x234]
call fcn.004047e0
mov ecx, dword [edi + 0x21c]
sub ecx, dword [edi + 0x218]
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4be1ff
call fcn.0051b1ad
mov ecx, dword [edi + 0x218]
mov esi, dword [esp + 0x18]
mov edx, dword [esi + ecx + 0x400]
mov ecx, dword [edi + 0x21c]
sub ecx, dword [edi + 0x218]
mov dword [esp + 0x294], edx
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4be23f
call fcn.0051b1ad
mov ecx, dword [edi + 0x218]
mov edx, dword [esi + ecx + 0x41c]
mov ecx, dword [edi + 0x21c]
sub ecx, dword [edi + 0x218]
mov dword [esp + 0x298], edx
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4be27b
call fcn.0051b1ad
cmp dword [esp + 0x294], 0
mov ecx, dword [edi + 0x218]
mov esi, dword [ecx + esi + 0x438]
mov dword [esp + 0x29c], esi
mov al, 1
je 0x4be2a2
mov byte [esp + 0x2a4], al
cmp dword [esp + 0x298], 0
je 0x4be2b3
mov byte [esp + 0x2a5], al
test esi, esi
je 0x4be2be
mov byte [esp + 0x2a6], al
mov ecx, dword [edi + 0x21c]
sub ecx, dword [edi + 0x218]
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4be2e6
call fcn.0051b1ad
mov ecx, dword [edi + 0x218]
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x24c]
lea ebx, [ecx + edx + 0x404]
push eax
call fcn.004b3720
mov ecx, dword [edi + 0x21c]
sub ecx, dword [edi + 0x218]
mov esi, dword [esp + 0x1c]
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 0xa
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp esi, ecx
jb 0x4be330
call fcn.0051b1ad
mov edx, dword [edi + 0x218]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x264]
lea ebx, [eax + edx + 0x420]
push ecx
call fcn.004b3720
mov ecx, dword [edi + 0x21c]
sub ecx, dword [edi + 0x218]
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x4be376
call fcn.0051b1ad
mov ecx, dword [edi + 0x218]
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x27c]
lea ebx, [edx + ecx + 0x43c]
push eax
call fcn.004b3720
xor esi, esi
mov dword [esp + 0x20], esi
lea ebx, [ebx]
mov ecx, dword [edi + 0x21c]
sub ecx, dword [edi + 0x218]
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 0xa
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x4be3ca
call fcn.0051b1ad
mov edx, dword [edi + 0x218]
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebx + edx + 0x468]
sub ecx, dword [ebx + edx + 0x464]
lea eax, [ebx + edx + 0x458]
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jae 0x4be4ae
mov ecx, dword [edi + 0x21c]
sub ecx, dword [edi + 0x218]
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 0xa
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x4be42e
call fcn.0051b1ad
mov edi, dword [edi + 0x218]
mov ecx, dword [edi + ebx + 0x468]
sub ecx, dword [edi + ebx + 0x464]
add edi, ebx
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x4be460
call fcn.0051b1ad
mov edi, dword [edi + 0x464]
add edi, dword [esp + 0x20]
lea ecx, [esp + 0x3c]
push ecx
call fcn.004b3b70
lea edx, [esp + 0x3c]
push edx
lea ebx, [esp + 0x1c4]
mov byte [esp + 0x2c4], 4
call fcn.004bfc20
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x2c4], 3
call fcn.004a0640
mov edi, dword [esp + 0x24]
inc esi
add dword [esp + 0x20], 0x7c
jmp 0x4be3a0
sub esp, 0x120
mov ecx, esp
mov dword [esp + 0x140], esp
push ecx
lea edi, [esp + 0x2b0]
call fcn.004a9280
mov ecx, dword [esp + 0x14c]
call fcn.004c3b00
mov edx, edi
push edx
mov dword [esp + 0x2c4], 0xffffffff
call fcn.004a90e0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
add dword [esp + 0x18], 0x470
inc eax
cmp eax, dword [ecx + 0x208]
mov dword [esp + 0x1c], eax
mov edi, ecx
jl 0x4be040
lea eax, [edi + 0x108]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4be515
sub eax, edx
mov edx, eax
mov eax, 0x1505
mov ecx, 0
je 0x4be548
lea esp, [esp]
movsx esi, byte [ecx + edi + 0x108]
mov ebx, eax
shl ebx, 5
add ebx, eax
add esi, ebx
inc ecx
mov eax, esi
cmp ecx, edx
jb 0x4be530
mov esi, dword [esp + 0x28]
push edi
push esi
mov dword [esi + 0x138], eax
call fcn.004a29b0
mov edx, dword [esi + 0x138]
lea ecx, [esi + 0x134]
add esi, 0x14c
push esi
mov dword [ecx], edx
call fcn.004a8420
mov esi, eax
call fcn.004a85c0
mov al, 1
mov ecx, dword [esp + 0x2b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2a0]
xor ecx, esp
call fcn.0051a8be
mov esp, ebp
pop ebp
ret