Function at 0x4b7320
Capabilities:
Hash data using tiger

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
mov esi, dword [esp + 0x3c]
xor dword [esi], ecx
mov edx, dword [eax + 4]
xor dword [esi + 4], edx
mov eax, dword [esi + 4]
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
mov ebx, dword [ecx*8 + 0x50a500]
mov ecx, dword [ecx*8 + 0x50a504]
movzx edx, al
xor ecx, dword [edx*8 + 0x509d04]
xor ebx, dword [edx*8 + 0x509d00]
mov edx, dword [esi]
shrd edx, eax, 0x10
mov dword [esp + 0x1c], eax
shr eax, 0x10
movzx eax, dl
xor ecx, dword [eax*8 + 0x509504]
xor ebx, dword [eax*8 + 0x509500]
movzx eax, byte [esi]
xor ecx, dword [eax*8 + 0x508d04]
xor ebx, dword [eax*8 + 0x508d00]
mov edi, dword [esp + 0x34]
sub dword [edi], ebx
sbb dword [edi + 4], ecx
mov eax, dword [esi + 4]
mov edx, eax
shr edx, 8
mov ecx, eax
shr ecx, 0x18
mov ebx, dword [ecx*8 + 0x508d00]
mov ecx, dword [ecx*8 + 0x508d04]
movzx edx, dl
xor ecx, dword [edx*8 + 0x509504]
xor ebx, dword [edx*8 + 0x509500]
mov edx, dword [esi]
mov ebp, eax
shrd edx, ebp, 0x18
mov dword [esp + 0x3c], ecx
movzx ecx, dl
xor ebx, dword [ecx*8 + 0x509d00]
mov edx, dword [esp + 0x3c]
xor edx, dword [ecx*8 + 0x509d04]
mov ecx, dword [esi]
shrd ecx, eax, 8
shr eax, 8
movzx eax, cl
xor ebx, dword [eax*8 + 0x50a500]
xor edx, dword [eax*8 + 0x50a504]
mov eax, ebx
mov ebx, dword [esp + 0x38]
shr ebp, 0x18
add dword [ebx], eax
movzx eax, byte [esp + 0x44]
adc dword [ebx + 4], edx
mov ecx, dword [ebx + 4]
push ecx
mov ecx, dword [ebx]
cdq
push ecx
push edx
push eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
call fcn.0045a830
mov dword [ebx], eax
mov eax, dword [esp + 0x40]
mov dword [ebx + 4], edx
mov edx, dword [eax + 8]
xor dword [edi], edx
mov eax, dword [eax + 0xc]
xor dword [edi + 4], eax
mov eax, dword [edi + 4]
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
mov ebp, dword [ecx*8 + 0x50a500]
mov ecx, dword [ecx*8 + 0x50a504]
movzx edx, al
xor ebp, dword [edx*8 + 0x509d00]
xor ecx, dword [edx*8 + 0x509d04]
mov edx, dword [edi]
shrd edx, eax, 0x10
mov dword [esp + 0x24], eax
shr eax, 0x10
movzx eax, dl
xor ebp, dword [eax*8 + 0x509500]
xor ecx, dword [eax*8 + 0x509504]
movzx eax, byte [edi]
xor ebp, dword [eax*8 + 0x508d00]
xor ecx, dword [eax*8 + 0x508d04]
sub dword [ebx], ebp
sbb dword [ebx + 4], ecx
mov eax, dword [edi + 4]
mov edx, eax
mov ebp, eax
shr edx, 8
movzx ecx, dl
shr ebp, 0x18
mov edx, dword [ebp*8 + 0x508d00]
xor edx, dword [ecx*8 + 0x509500]
mov ebp, dword [ebp*8 + 0x508d04]
xor ebp, dword [ecx*8 + 0x509504]
mov ecx, dword [edi]
mov dword [esp + 0x24], eax
shrd ecx, eax, 0x18
shr eax, 0x18
movzx eax, cl
xor edx, dword [eax*8 + 0x509d00]
xor ebp, dword [eax*8 + 0x509d04]
mov ecx, dword [edi]
mov eax, dword [esp + 0x24]
shrd ecx, eax, 8
shr eax, 8
movzx eax, cl
xor edx, dword [eax*8 + 0x50a500]
xor ebp, dword [eax*8 + 0x50a504]
add dword [esi], edx
mov eax, dword [esi]
mov ecx, dword [esp + 0x14]
adc dword [esi + 4], ebp
mov edx, dword [esi + 4]
push edx
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.0045a830
mov dword [esi], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 4], edx
mov ecx, dword [eax + 0x10]
xor dword [ebx], ecx
mov edx, dword [eax + 0x14]
xor dword [ebx + 4], edx
mov eax, dword [ebx + 4]
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
mov ebp, dword [ecx*8 + 0x50a500]
mov ecx, dword [ecx*8 + 0x50a504]
movzx edx, al
xor ebp, dword [edx*8 + 0x509d00]
xor ecx, dword [edx*8 + 0x509d04]
mov edx, dword [ebx]
shrd edx, eax, 0x10
mov dword [esp + 0x2c], eax
shr eax, 0x10
movzx eax, dl
xor ebp, dword [eax*8 + 0x509500]
xor ecx, dword [eax*8 + 0x509504]
movzx eax, byte [ebx]
xor ebp, dword [eax*8 + 0x508d00]
xor ecx, dword [eax*8 + 0x508d04]
sub dword [esi], ebp
sbb dword [esi + 4], ecx
mov eax, dword [ebx + 4]
mov edx, eax
mov ebp, eax
shr edx, 8
movzx ecx, dl
shr ebp, 0x18
mov edx, dword [ebp*8 + 0x508d00]
xor edx, dword [ecx*8 + 0x509500]
mov ebp, dword [ebp*8 + 0x508d04]
xor ebp, dword [ecx*8 + 0x509504]
mov ecx, dword [ebx]
mov dword [esp + 0x2c], eax
shrd ecx, eax, 0x18
shr eax, 0x18
movzx eax, cl
xor edx, dword [eax*8 + 0x509d00]
xor ebp, dword [eax*8 + 0x509d04]
mov ecx, dword [ebx]
mov eax, dword [esp + 0x2c]
shrd ecx, eax, 8
shr eax, 8
movzx eax, cl
xor edx, dword [eax*8 + 0x50a500]
xor ebp, dword [eax*8 + 0x50a504]
add dword [edi], edx
mov eax, dword [edi]
mov ecx, dword [esp + 0x14]
adc dword [edi + 4], ebp
mov edx, dword [edi + 4]
push edx
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.0045a830
mov dword [edi], eax
mov eax, dword [esp + 0x40]
mov dword [edi + 4], edx
mov ecx, dword [eax + 0x18]
xor dword [esi], ecx
mov edx, dword [eax + 0x1c]
xor dword [esi + 4], edx
mov eax, dword [esi + 4]
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
mov ebp, dword [ecx*8 + 0x50a500]
mov ecx, dword [ecx*8 + 0x50a504]
movzx edx, al
xor ebp, dword [edx*8 + 0x509d00]
xor ecx, dword [edx*8 + 0x509d04]
mov edx, dword [esi]
shrd edx, eax, 0x10
mov dword [esp + 0x1c], eax
shr eax, 0x10
movzx eax, dl
xor ebp, dword [eax*8 + 0x509500]
xor ecx, dword [eax*8 + 0x509504]
movzx eax, byte [esi]
xor ebp, dword [eax*8 + 0x508d00]
xor ecx, dword [eax*8 + 0x508d04]
sub dword [edi], ebp
sbb dword [edi + 4], ecx
mov eax, dword [esi + 4]
mov edx, eax
mov ebp, eax
shr edx, 8
shr ebp, 0x18
movzx ecx, dl
mov edx, dword [ebp*8 + 0x508d00]
xor edx, dword [ecx*8 + 0x509500]
mov ebp, dword [ebp*8 + 0x508d04]
xor ebp, dword [ecx*8 + 0x509504]
mov ecx, dword [esi]
mov dword [esp + 0x1c], eax
shrd ecx, eax, 0x18
shr eax, 0x18
movzx eax, cl
xor edx, dword [eax*8 + 0x509d00]
xor ebp, dword [eax*8 + 0x509d04]
mov ecx, dword [esi]
mov eax, dword [esp + 0x1c]
shrd ecx, eax, 8
shr eax, 8
movzx eax, cl
xor edx, dword [eax*8 + 0x50a500]
xor ebp, dword [eax*8 + 0x50a504]
add dword [ebx], edx
mov eax, dword [ebx]
mov ecx, dword [esp + 0x14]
adc dword [ebx + 4], ebp
mov edx, dword [ebx + 4]
push edx
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.0045a830
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x20]
xor dword [edi], ecx
mov edx, dword [eax + 0x24]
xor dword [edi + 4], edx
mov eax, dword [edi + 4]
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
mov ebp, dword [ecx*8 + 0x50a500]
mov ecx, dword [ecx*8 + 0x50a504]
movzx edx, al
xor ebp, dword [edx*8 + 0x509d00]
xor ecx, dword [edx*8 + 0x509d04]
mov edx, dword [edi]
shrd edx, eax, 0x10
mov dword [esp + 0x24], eax
shr eax, 0x10
movzx eax, dl
xor ebp, dword [eax*8 + 0x509500]
xor ecx, dword [eax*8 + 0x509504]
movzx eax, byte [edi]
xor ebp, dword [eax*8 + 0x508d00]
xor ecx, dword [eax*8 + 0x508d04]
sub dword [ebx], ebp
sbb dword [ebx + 4], ecx
mov eax, dword [edi + 4]
mov edx, eax
mov ebp, eax
shr edx, 8
shr ebp, 0x18
movzx ecx, dl
mov edx, dword [ebp*8 + 0x508d00]
xor edx, dword [ecx*8 + 0x509500]
mov ebp, dword [ebp*8 + 0x508d04]
xor ebp, dword [ecx*8 + 0x509504]
mov ecx, dword [edi]
mov dword [esp + 0x24], eax
shrd ecx, eax, 0x18
shr eax, 0x18
movzx eax, cl
xor edx, dword [eax*8 + 0x509d00]
xor ebp, dword [eax*8 + 0x509d04]
mov ecx, dword [edi]
mov eax, dword [esp + 0x24]
shrd ecx, eax, 8
shr eax, 8
movzx eax, cl
xor edx, dword [eax*8 + 0x50a500]
xor ebp, dword [eax*8 + 0x50a504]
add dword [esi], edx
mov eax, dword [esi]
mov ecx, dword [esp + 0x14]
adc dword [esi + 4], ebp
mov edx, dword [esi + 4]
push edx
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.0045a830
mov dword [esi], eax
mov dword [esi + 4], edx
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x28]
xor dword [ebx], ecx
mov edx, dword [eax + 0x2c]
xor dword [ebx + 4], edx
mov eax, dword [ebx + 4]
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
mov ebp, dword [ecx*8 + 0x50a500]
mov ecx, dword [ecx*8 + 0x50a504]
movzx edx, al
xor ebp, dword [edx*8 + 0x509d00]
xor ecx, dword [edx*8 + 0x509d04]
mov edx, dword [ebx]
shrd edx, eax, 0x10
mov dword [esp + 0x2c], eax
shr eax, 0x10
movzx eax, dl
xor ebp, dword [eax*8 + 0x509500]
xor ecx, dword [eax*8 + 0x509504]
movzx eax, byte [ebx]
xor ebp, dword [eax*8 + 0x508d00]
xor ecx, dword [eax*8 + 0x508d04]
sub dword [esi], ebp
sbb dword [esi + 4], ecx
mov eax, dword [ebx + 4]
mov edx, eax
mov ebp, eax
shr edx, 8
movzx ecx, dl
shr ebp, 0x18
mov edx, dword [ebp*8 + 0x508d00]
xor edx, dword [ecx*8 + 0x509500]
mov ebp, dword [ebp*8 + 0x508d04]
xor ebp, dword [ecx*8 + 0x509504]
mov ecx, dword [ebx]
mov dword [esp + 0x2c], eax
shrd ecx, eax, 0x18
shr eax, 0x18
movzx eax, cl
xor edx, dword [eax*8 + 0x509d00]
xor ebp, dword [eax*8 + 0x509d04]
mov ecx, dword [ebx]
mov eax, dword [esp + 0x2c]
shrd ecx, eax, 8
shr eax, 8
movzx eax, cl
xor edx, dword [eax*8 + 0x50a500]
xor ebp, dword [eax*8 + 0x50a504]
add dword [edi], edx
mov eax, dword [edi]
mov ecx, dword [esp + 0x14]
adc dword [edi + 4], ebp
mov edx, dword [edi + 4]
push edx
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.0045a830
mov dword [edi], eax
mov eax, dword [esp + 0x40]
mov dword [edi + 4], edx
mov ecx, dword [eax + 0x30]
xor dword [esi], ecx
mov edx, dword [eax + 0x34]
xor dword [esi + 4], edx
mov eax, dword [esi + 4]
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
mov ebp, dword [ecx*8 + 0x50a500]
mov ecx, dword [ecx*8 + 0x50a504]
movzx edx, al
xor ebp, dword [edx*8 + 0x509d00]
xor ecx, dword [edx*8 + 0x509d04]
mov dword [esp + 0x1c], eax
mov edx, dword [esi]
shrd edx, eax, 0x10
shr eax, 0x10
movzx eax, dl
xor ebp, dword [eax*8 + 0x509500]
xor ecx, dword [eax*8 + 0x509504]
movzx eax, byte [esi]
xor ebp, dword [eax*8 + 0x508d00]
xor ecx, dword [eax*8 + 0x508d04]
sub dword [edi], ebp
sbb dword [edi + 4], ecx
mov eax, dword [esi + 4]
mov edx, eax
mov ebp, eax
shr edx, 8
movzx ecx, dl
shr ebp, 0x18
mov edx, dword [ebp*8 + 0x508d00]
xor edx, dword [ecx*8 + 0x509500]
mov ebp, dword [ebp*8 + 0x508d04]
xor ebp, dword [ecx*8 + 0x509504]
mov ecx, dword [esi]
mov dword [esp + 0x1c], eax
shrd ecx, eax, 0x18
shr eax, 0x18
movzx eax, cl
xor edx, dword [eax*8 + 0x509d00]
xor ebp, dword [eax*8 + 0x509d04]
mov ecx, dword [esi]
mov eax, dword [esp + 0x1c]
shrd ecx, eax, 8
shr eax, 8
movzx eax, cl
xor edx, dword [eax*8 + 0x50a500]
xor ebp, dword [eax*8 + 0x50a504]
add dword [ebx], edx
mov eax, dword [ebx]
mov ecx, dword [esp + 0x14]
adc dword [ebx + 4], ebp
mov edx, dword [ebx + 4]
push edx
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.0045a830
mov dword [ebx], eax
mov eax, dword [esp + 0x40]
mov dword [ebx + 4], edx
mov ecx, dword [eax + 0x38]
xor dword [edi], ecx
mov edx, dword [eax + 0x3c]
xor dword [edi + 4], edx
mov eax, dword [edi + 4]
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
mov ebp, dword [ecx*8 + 0x50a500]
mov ecx, dword [ecx*8 + 0x50a504]
movzx edx, al
xor ecx, dword [edx*8 + 0x509d04]
xor ebp, dword [edx*8 + 0x509d00]
mov edx, dword [edi]
shrd edx, eax, 0x10
mov dword [esp + 0x24], eax
shr eax, 0x10
movzx eax, dl
xor ecx, dword [eax*8 + 0x509504]
xor ebp, dword [eax*8 + 0x509500]
movzx eax, byte [edi]
xor ebp, dword [eax*8 + 0x508d00]
xor ecx, dword [eax*8 + 0x508d04]
sub dword [ebx], ebp
sbb dword [ebx + 4], ecx
mov eax, dword [edi]
mov edi, dword [edi + 4]
mov ecx, edi
mov edx, edi
shr ecx, 0x18
shr edx, 8
movzx edx, dl
mov ebx, dword [ecx*8 + 0x508d00]
mov ebp, dword [ecx*8 + 0x508d04]
xor ebx, dword [edx*8 + 0x509500]
xor ebp, dword [edx*8 + 0x509504]
mov ecx, eax
mov edx, edi
shrd ecx, edx, 0x18
shrd eax, edi, 8
movzx ecx, cl
xor ebx, dword [ecx*8 + 0x509d00]
xor ebp, dword [ecx*8 + 0x509d04]
movzx eax, al
xor ebx, dword [eax*8 + 0x50a500]
xor ebp, dword [eax*8 + 0x50a504]
shr edx, 0x18
mov edx, dword [esp + 0x14]
shr edi, 8
add dword [esi], ebx
mov ecx, dword [esi]
adc dword [esi + 4], ebp
mov eax, dword [esi + 4]
push eax
mov eax, dword [esp + 0x14]
push ecx
push edx
push eax
call fcn.0045a830
pop edi
mov dword [esi], eax
mov dword [esi + 4], edx
pop esi
pop ebp
pop ebx
add esp, 0x20
ret