Function at 0x10018e50
Capabilities:
Hash data using djb2

Disassembly:
push ecx
push ebx
push esi
push edi
mov eax, 1
mov dword [0x1036c8b0], 0x100010
push 0x400
mov word [0x1036c8b4], ax
mov byte [0x1036c8c2], al
xor eax, eax
push 0xff
push 0x1036c8e0
mov dword [0x1036c8bc], 4
mov dword [0x1036c8b8], 3
mov dword [0x1036c8d0], 0x400
mov dword [0x1036c8c8], 0x1036c8e0
mov dword [0x1036c8c4], 0
mov word [0x1036c8c0], ax
call fcn.1004a480
add esp, 0xc
xor ebx, ebx
mov dword [esp + 0xc], ebx
xor edx, edx
mov esi, ebx
cmp ebx, 8
mov ebx, 0xffff00ff
sbb edi, edi
neg edi
shl esi, 6
nop dword [eax + eax]
cmp edx, 8
lea esi, [esi + 4]
mov ecx, 0xff000000
sbb eax, eax
neg eax
cmp eax, edi
mov eax, dword [0x1036c8c8]
cmovne ecx, ebx
inc edx
mov dword [esi + eax - 4], ecx
cmp edx, 0x10
jl 0x10018ee0
mov ebx, dword [esp + 0xc]
inc ebx
mov dword [esp + 0xc], ebx
cmp ebx, 0x10
jl 0x10018ec5
mov edi, 0x100a747c
mov esi, 0x1505
mov bl, 0x2a
nop dword [eax]
lea eax, [ebx + 0x20]
lea edx, [ebx - 0x41]
movzx ecx, al
movzx eax, bl
lea edi, [edi + 1]
mov bl, byte [edi]
cmp dl, 0x19
cmova ecx, eax
mov eax, esi
shl eax, 5
and ecx, 0xdf
add esi, eax
add esi, ecx
test bl, bl
jne 0x10018f20
and esi, 0x7ff
mov esi, dword [esi*4 + 0x1036a8b0]
test esi, esi
je 0x10018f7c
nop dword [eax + eax]
push 0x100a747c
push esi
call fcn.100746f7
add esp, 8
test eax, eax
je 0x10018fc0
mov esi, dword [esi + 0x13c]
test esi, esi
jne 0x10018f60
xor edx, edx
mov ecx, 0x100a747c
call fcn.10017b80
mov esi, eax
mov edx, 0x1036c8b0
mov ecx, esi
call fcn.10017970
mov edx, 0x1036c8b0
mov ecx, esi
call fcn.100171a0
test eax, eax
jne 0x10018fb9
push 0x140
push eax
push esi
call fcn.1004a480
add esp, 0xc
xor eax, eax
jmp 0x10018fd7
mov ecx, esi
call fcn.10014d00
sub esi, 0x100ea8b0
mov eax, 0x66666667
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [0x11a092e0], eax
mov edi, 0x1036c8e0
mov eax, 1
mov dword [0x1036c8b0], 0x80008
push 0x400
mov word [0x1036c8b4], ax
mov byte [0x1036c8c2], al
xor eax, eax
push 0xff
push edi
mov dword [0x1036c8bc], 6
mov dword [0x1036c8b8], 3
mov dword [0x1036c8d0], 0x100
mov dword [0x1036c8c8], edi
mov dword [0x1036c8c4], 0
mov word [0x1036c8c0], ax
call fcn.1004a480
add esp, 0xc
mov edx, 0x100a5621
xor esi, esi
nop dword [eax + eax]
mov al, byte [edx - 1]
lea esi, [esi + 4]
movzx ecx, byte [edx]
neg al
sbb al, al
neg cl
mov byte [esi + edi - 1], al
mov eax, dword [0x1036c8c8]
sbb cl, cl
mov byte [esi + eax + 0x1f], cl
mov eax, dword [0x1036c8c8]
movzx ecx, byte [edx + 1]
neg cl
sbb cl, cl
mov byte [esi + eax + 0x3f], cl
mov eax, dword [0x1036c8c8]
movzx ecx, byte [edx + 2]
neg cl
sbb cl, cl
mov byte [esi + eax + 0x5f], cl
movzx ecx, byte [edx + 3]
mov eax, dword [0x1036c8c8]
neg cl
sbb cl, cl
mov byte [esi + eax + 0x7f], cl
movzx ecx, byte [edx + 4]
mov eax, dword [0x1036c8c8]
neg cl
sbb cl, cl
mov byte [esi + eax + 0x9f], cl
movzx ecx, byte [edx + 5]
mov eax, dword [0x1036c8c8]
neg cl
sbb cl, cl
mov byte [esi + eax + 0xbf], cl
movzx ecx, byte [edx + 6]
mov eax, dword [0x1036c8c8]
neg cl
sbb cl, cl
add edx, 8
mov byte [esi + eax + 0xdf], cl
cmp edx, 0x100a5661
jge 0x100190f3
mov edi, dword [0x1036c8c8]
jmp 0x10019050
mov edi, str.particle
mov esi, 0x1505
mov bl, 0x2a
nop
lea eax, [ebx + 0x20]
lea edx, [ebx - 0x41]
movzx ecx, al
movzx eax, bl
lea edi, [edi + 1]
mov bl, byte [edi]
cmp dl, 0x19
cmova ecx, eax
mov eax, esi
shl eax, 5
and ecx, 0xdf
add esi, eax
add esi, ecx
test bl, bl
jne 0x10019100
and esi, 0x7ff
mov esi, dword [esi*4 + 0x1036a8b0]
test esi, esi
je 0x1001915c
nop dword [eax + eax]
push str.particle
push esi
call fcn.100746f7
add esp, 8
test eax, eax
je 0x100191a3
mov esi, dword [esi + 0x13c]
test esi, esi
jne 0x10019140
mov edx, 0x800
mov ecx, str.particle
call fcn.10017b80
mov esi, eax
mov edx, 0x1036c8b0
mov ecx, esi
call fcn.10017970
mov edx, 0x1036c8b0
mov ecx, esi
call fcn.100171a0
test eax, eax
jne 0x1001919c
push 0x140
push eax
push esi
call fcn.1004a480
add esp, 0xc
xor eax, eax
jmp 0x100191ba
mov ecx, esi
call fcn.10014d00
sub esi, 0x100ea8b0
mov eax, 0x66666667
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [0x11a092e4], eax
mov esi, 0x1036c8e0
mov eax, 1
mov dword [0x1036c8b0], 0x40004
push 0x400
mov word [0x1036c8b4], ax
mov byte [0x1036c8c2], al
xor eax, eax
push 0xff
push esi
mov dword [0x1036c8bc], 4
mov dword [0x1036c8b8], 3
mov dword [0x1036c8d0], 0x40
mov dword [0x1036c8c8], esi
mov dword [0x1036c8c4], 0
mov word [0x1036c8c0], ax
call fcn.1004a480
add esp, 0xc
xor eax, eax
nop dword [eax]
mov dword [eax + esi], 0xffffffff
add eax, 4
cmp eax, 0x40
jge 0x10019247
mov esi, dword [0x1036c8c8]
jmp 0x10019230
mov edi, str.white
mov esi, 0x1505
mov bl, 0x2a
lea eax, [ebx + 0x20]
lea edx, [ebx - 0x41]
movzx ecx, al
movzx eax, bl
lea edi, [edi + 1]
mov bl, byte [edi]
cmp dl, 0x19
cmova ecx, eax
mov eax, esi
shl eax, 5
and ecx, 0xdf
add esi, eax
add esi, ecx
test bl, bl
jne 0x10019253
and esi, 0x7ff
mov esi, dword [esi*4 + 0x1036a8b0]
test esi, esi
je 0x100192ac
nop
push str.white
push esi
call fcn.100746f7
add esp, 8
test eax, eax
je 0x100192f0
mov esi, dword [esi + 0x13c]
test esi, esi
jne 0x10019290
xor edx, edx
mov ecx, str.white
call fcn.10017b80
mov esi, eax
mov edx, 0x1036c8b0
mov ecx, esi
call fcn.10017970
mov edx, 0x1036c8b0
mov ecx, esi
call fcn.100171a0
test eax, eax
jne 0x100192e9
push 0x140
push eax
push esi
call fcn.1004a480
add esp, 0xc
xor eax, eax
jmp 0x10019307
mov ecx, esi
call fcn.10014d00
sub esi, 0x100ea8b0
mov eax, 0x66666667
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [0x11a092e8], eax
mov esi, 0x1036c8e0
mov eax, 1
mov dword [0x1036c8b0], 0x40004
push 0x400
mov word [0x1036c8b4], ax
mov byte [0x1036c8c2], al
xor eax, eax
push 0xff
push esi
mov dword [0x1036c8bc], 4
mov dword [0x1036c8b8], 3
mov dword [0x1036c8d0], 0x40
mov dword [0x1036c8c8], esi
mov dword [0x1036c8c4], 0
mov word [0x1036c8c0], ax
call fcn.1004a480
add esp, 0xc
xor eax, eax
nop word [eax + eax]
mov dword [eax + esi], 0xff7f7f7f
add eax, 4
cmp eax, 0x40
jge 0x10019397
mov esi, dword [0x1036c8c8]
jmp 0x10019380
mov edi, str.gray
mov esi, 0x1505
mov bl, 0x2a
lea eax, [ebx + 0x20]
lea edx, [ebx - 0x41]
movzx ecx, al
movzx eax, bl
lea edi, [edi + 1]
mov bl, byte [edi]
cmp dl, 0x19
cmova ecx, eax
mov eax, esi
shl eax, 5
and ecx, 0xdf
add esi, eax
add esi, ecx
test bl, bl
jne 0x100193a3
and esi, 0x7ff
mov esi, dword [esi*4 + 0x1036a8b0]
test esi, esi
je 0x100193fc
nop
push str.gray
push esi
call fcn.100746f7
add esp, 8
test eax, eax
je 0x10019440
mov esi, dword [esi + 0x13c]
test esi, esi
jne 0x100193e0
xor edx, edx
mov ecx, str.gray
call fcn.10017b80
mov esi, eax
mov edx, 0x1036c8b0
mov ecx, esi
call fcn.10017970
mov edx, 0x1036c8b0
mov ecx, esi
call fcn.100171a0
test eax, eax
jne 0x10019439
push 0x140
push eax
push esi
call fcn.1004a480
add esp, 0xc
xor eax, eax
jmp 0x10019457
mov ecx, esi
call fcn.10014d00
sub esi, 0x100ea8b0
mov eax, 0x66666667
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [0x11a092ec], eax
mov esi, 0x1036c8e0
mov eax, 1
mov dword [0x1036c8b0], 0x40004
push 0x400
mov word [0x1036c8b4], ax
mov byte [0x1036c8c2], al
xor eax, eax
push 0xff
push esi
mov dword [0x1036c8bc], 4
mov dword [0x1036c8b8], 3
mov dword [0x1036c8d0], 0x40
mov dword [0x1036c8c8], esi
mov dword [0x1036c8c4], 0
mov word [0x1036c8c0], ax
call fcn.1004a480
add esp, 0xc
xor eax, eax
nop word [eax + eax]
mov dword [eax + esi], 0xff000000
add eax, 4
cmp eax, 0x40
jge 0x100194e7
mov esi, dword [0x1036c8c8]
jmp 0x100194d0
mov edi, str.black
mov esi, 0x1505
mov bl, 0x2a
lea eax, [ebx + 0x20]
lea edx, [ebx - 0x41]
movzx ecx, al
movzx eax, bl
lea edi, [edi + 1]
mov bl, byte [edi]
cmp dl, 0x19
cmova ecx, eax
mov eax, esi
shl eax, 5
and ecx, 0xdf
add esi, eax
add esi, ecx
test bl, bl
jne 0x100194f3
and esi, 0x7ff
mov esi, dword [esi*4 + 0x1036a8b0]
test esi, esi
je 0x1001954c
nop
push str.black
push esi
call fcn.100746f7
add esp, 8
test eax, eax
je 0x10019590
mov esi, dword [esi + 0x13c]
test esi, esi
jne 0x10019530
xor edx, edx
mov ecx, str.black
call fcn.10017b80
mov esi, eax
mov edx, 0x1036c8b0
mov ecx, esi
call fcn.10017970
mov edx, 0x1036c8b0
mov ecx, esi
call fcn.100171a0
test eax, eax
jne 0x10019589
push 0x140
push eax
push esi
call fcn.1004a480
add esp, 0xc
xor eax, eax
jmp 0x100195a7
mov ecx, esi
call fcn.10014d00
sub esi, 0x100ea8b0
mov eax, 0x66666667
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [0x11a092f0], eax
mov eax, 1
push 0x400
mov word [0x1036c8b4], ax
mov byte [0x1036c8c2], al
xor eax, eax
push 0xff
push 0x1036c8e0
mov dword [0x1036c8b0], 0x640280
mov dword [0x1036c8bc], 4
mov dword [0x1036c8b8], 3
mov dword [0x1036c8d0], 0x3e800
mov dword [0x1036c8c8], 0
mov dword [0x1036c8c4], 0
mov word [0x1036c8c0], ax
call fcn.1004a480
add esp, 0xc
mov edi, str.cintexture
mov esi, 0x1505
mov bl, 0x2a
lea eax, [ebx + 0x20]
lea edx, [ebx - 0x41]
movzx ecx, al
movzx eax, bl
lea edi, [edi + 1]
mov bl, byte [edi]
cmp dl, 0x19
cmova ecx, eax
mov eax, esi
shl eax, 5
and ecx, 0xdf
add esi, eax
add esi, ecx
test bl, bl
jne 0x10019623
and esi, 0x7ff
mov esi, dword [esi*4 + 0x1036a8b0]
test esi, esi
je 0x1001967c
nop
push str.cintexture
push esi
call fcn.100746f7
add esp, 8
test eax, eax
je 0x100196ce
mov esi, dword [esi + 0x13c]
test esi, esi
jne 0x10019660
mov edx, 0x1800
mov ecx, str.cintexture
call fcn.10017b80
mov esi, eax
mov edx, 0x1036c8b0
mov ecx, esi
call fcn.10017970
mov edx, 0x1036c8b0
mov ecx, esi
call fcn.100171a0
test eax, eax
jne 0x100196c7
push 0x140
push eax
push esi
call fcn.1004a480
add esp, 0xc
mov dword [0x11a09718], 0
pop edi
pop esi
pop ebx
pop ecx
ret
mov ecx, esi
call fcn.10014d00
sub esi, 0x100ea8b0
mov eax, 0x66666667
imul esi
pop edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
pop esi
mov dword [0x11a09718], eax
pop ebx
pop ecx
ret