Function at 0x4089b0
Capabilities:
Hash data using rshash

Disassembly:
sub esp, 0x1c
push ebp
push esi
push edi
mov edi, ecx
xor esi, esi
mov dword [esp + 0x1c], edi
mov ecx, dword [edi + 4]
mov ebp, dword [edi]
cmp esi, ecx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x10], esi
jge 0x408c87
push ebx
jge 0x4089ee
mov al, byte [esi + ebp]
cmp al, 0xa
je 0x4089e9
cmp al, 0xd
je 0x4089e9
cmp al, 0x20
je 0x4089e9
cmp al, 9
jne 0x4089ee
inc esi
cmp esi, ecx
jl 0x4089d6
lea eax, [esi + ebp]
mov dword [esp + 0x1c], eax
mov al, byte [eax]
cmp al, 0x5b
jne 0x408a5f
inc esi
cmp esi, ecx
lea eax, [esi + ebp]
jge 0x408a0e
cmp byte [esi + ebp], 0x5d
je 0x408a0e
inc esi
cmp esi, ecx
jl 0x408a03
mov byte [esi + ebp], 0
push eax
mov ecx, edi
inc esi
call fcn.004088d0
mov dword [esp + 0x14], eax
mov ecx, dword [edi + 4]
cmp esi, ecx
jge 0x408a4a
mov al, byte [esi + ebp]
cmp al, 0xa
je 0x408a36
cmp al, 0xd
je 0x408a36
inc esi
cmp esi, ecx
jl 0x408a26
cmp esi, ecx
jge 0x408a4a
mov al, byte [esi + ebp]
cmp al, 0xa
je 0x408a45
cmp al, 0xd
jne 0x408a4a
inc esi
cmp esi, ecx
jl 0x408a3a
mov edi, dword [esp + 0x20]
mov ecx, dword [edi + 4]
cmp esi, ecx
jl 0x4089d6
pop ebx
pop edi
pop esi
mov al, 1
pop ebp
add esp, 0x1c
ret
cmp al, 0x3b
je 0x408a1f
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x408a7b
push 0x424660
mov ecx, edi
call fcn.004088d0
mov dword [esp + 0x14], eax
mov ecx, dword [edi + 4]
cmp esi, ecx
jge 0x408a9e
mov al, byte [esi + ebp]
cmp al, 0xa
je 0x408a9e
cmp al, 0xd
je 0x408a9e
cmp al, 0x20
je 0x408a9e
cmp al, 9
je 0x408a9e
cmp al, 0x3d
je 0x408a9e
inc esi
cmp esi, ecx
jl 0x408a82
cmp esi, ecx
lea edx, [esi + ebp]
jge 0x408a1f
mov al, byte [esi + ebp]
mov byte [esp + 0x13], al
jge 0x408a1f
cmp al, 0x3d
jne 0x408a1f
inc esi
cmp esi, ecx
jge 0x408ad3
mov al, byte [esi + ebp]
cmp al, 0x20
je 0x408ace
cmp al, 9
jne 0x408ad3
inc esi
cmp esi, ecx
jl 0x408ac3
mov ebx, dword [esp + 0x1c]
mov byte [edx], 0
xor eax, eax
mov edi, 0xf8c9
mov dl, byte [ebx]
test dl, dl
je 0x408b18
cmp dl, 0x41
jl 0x408af8
cmp dl, 0x5a
jg 0x408af8
mov ecx, 1
jmp 0x408afa
xor ecx, ecx
imul eax, edi
imul edi, edi, 0x5c6b7
shl cl, 5
movsx ecx, cl
movsx edx, dl
or ecx, edx
mov dl, byte [ebx + 1]
add eax, ecx
inc ebx
test dl, dl
jne 0x408ae7
xor edx, edx
mov ecx, 5
div ecx
mov eax, dword [esp + 0x14]
lea ebx, [eax + edx*4]
mov dword [esp + 0x24], ebx
mov eax, dword [ebx]
test eax, eax
je 0x408bc7
mov edi, dword [eax]
mov ecx, dword [esp + 0x1c]
test edi, edi
mov dword [esp + 0x18], ecx
je 0x408bac
test ecx, ecx
je 0x408bac
mov bl, byte [edi]
cmp bl, 0x41
jl 0x408b5b
cmp bl, 0x5a
jg 0x408b5b
mov ecx, 1
jmp 0x408b5d
xor ecx, ecx
mov edx, dword [esp + 0x18]
mov dl, byte [edx]
cmp dl, 0x41
jl 0x408b74
cmp dl, 0x5a
jg 0x408b74
mov eax, 1
jmp 0x408b76
xor eax, eax
shl al, 5
movsx ebp, al
movsx eax, dl
shl cl, 5
or ebp, eax
movsx eax, cl
movsx ecx, bl
or eax, ecx
sub eax, ebp
jne 0x408ba2
inc edi
test bl, bl
je 0x408ba2
mov ebx, dword [esp + 0x18]
inc ebx
test dl, dl
mov dword [esp + 0x18], ebx
jne 0x408b48
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
jmp 0x408bb0
sub edi, ecx
mov eax, edi
test eax, eax
je 0x408bc7
mov ebx, dword [ebx]
add ebx, 8
mov dword [esp + 0x24], ebx
mov eax, dword [ebx]
test eax, eax
jne 0x408b36
cmp dword [ebx], 0
jne 0x408bef
push 0xc
call fcn.00419c1d
mov edx, dword [esp + 0x20]
mov dword [ebx], eax
mov dword [eax], edx
mov ecx, dword [ebx]
lea eax, [esi + ebp]
add esp, 4
mov dword [ecx + 4], eax
mov edx, dword [ebx]
mov dword [edx + 8], 0
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 4]
cmp esi, ecx
jge 0x408c5c
mov al, byte [esi + ebp]
cmp al, 0xa
je 0x408c41
cmp al, 0xd
je 0x408c41
cmp al, 0x3b
je 0x408c41
inc esi
cmp al, 0x22
jne 0x408c3d
cmp esi, ecx
jge 0x408c5c
mov al, byte [esi + ebp]
cmp al, 0xa
je 0x408c3d
cmp al, 0xd
je 0x408c3d
cmp al, 0x5c
jne 0x408c34
inc esi
cmp esi, ecx
jge 0x408c5c
mov al, byte [esi + ebp]
cmp al, 0xa
je 0x408c39
cmp al, 0xd
je 0x408c39
inc esi
jmp 0x408c39
inc esi
cmp al, 0x22
je 0x408c3d
cmp esi, ecx
jl 0x408c12
cmp esi, ecx
jl 0x408bfa
cmp esi, ecx
jge 0x408c5c
mov al, byte [esi + ebp]
cmp al, 0xa
je 0x408c5c
cmp al, 0xd
je 0x408c5c
mov byte [esi + ebp], 0
mov eax, dword [edx + 4]
inc esi
cmp esi, eax
jl 0x408c45
cmp esi, dword [edx + 4]
jge 0x408a4a
mov al, byte [esi + ebp]
cmp al, 0xa
je 0x408c74
cmp al, 0xd
jne 0x408a4a
mov eax, dword [esp + 0x20]
mov byte [esi + ebp], 0
inc esi
cmp esi, dword [eax + 4]
jl 0x408c65
jmp 0x408a4a
pop edi
pop esi
mov al, 1
pop ebp
add esp, 0x1c
ret