Function at 0x43a5b0
Capabilities:
Encode data using xor
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x15c
mov eax, dword [0x595978]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x15c], esi
xor ecx, ecx
lea eax, [esi + 0x15]
movzx edx, byte [eax - 1]
movzx edi, byte [eax]
shl edx, 8
or edx, edi
movzx edi, byte [eax + 1]
shl edx, 8
or edx, edi
movzx edi, byte [eax + 2]
shl edx, 8
or edx, edi
movzx edi, byte [eax + 4]
mov dword [ebp + ecx*4 - 0x144], edx
movzx edx, byte [eax + 3]
shl edx, 8
or edx, edi
movzx edi, byte [eax + 5]
shl edx, 8
or edx, edi
movzx edi, byte [eax + 6]
shl edx, 8
or edx, edi
movzx edi, byte [eax + 8]
mov dword [ebp + ecx*4 - 0x140], edx
movzx edx, byte [eax + 7]
shl edx, 8
or edx, edi
movzx edi, byte [eax + 9]
shl edx, 8
or edx, edi
movzx edi, byte [eax + 0xa]
shl edx, 8
or edx, edi
movzx edi, byte [eax + 0xc]
mov dword [ebp + ecx*4 - 0x13c], edx
movzx edx, byte [eax + 0xb]
shl edx, 8
or edx, edi
movzx edi, byte [eax + 0xd]
shl edx, 8
or edx, edi
movzx edi, byte [eax + 0xe]
shl edx, 8
or edx, edi
mov dword [ebp + ecx*4 - 0x138], edx
add ecx, 4
add eax, 0x10
cmp ecx, 0x10
jb 0x43a5d3
lea eax, [ebp - 0x124]
mov dword [ebp - 0x154], 0x10
lea esp, [esp]
mov ecx, dword [eax - 0x20]
xor ecx, dword [eax + 0x14]
mov edx, dword [eax - 0x18]
xor ecx, dword [eax]
add eax, 0x10
xor ecx, edx
mov edi, ecx
add ecx, ecx
shr edi, 0x1f
xor edi, ecx
mov ecx, dword [eax - 0x2c]
xor ecx, dword [eax + 8]
mov dword [eax + 0x10], edi
xor ecx, dword [eax - 0xc]
mov edi, dword [eax - 0x24]
xor ecx, edi
mov ebx, ecx
add ecx, ecx
shr ebx, 0x1f
xor ebx, ecx
mov ecx, dword [eax + 0xc]
xor ecx, dword [eax - 0x20]
mov dword [eax + 0x14], ebx
xor ecx, dword [eax - 8]
xor ecx, edx
mov edx, ecx
add ecx, ecx
shr edx, 0x1f
xor edx, ecx
mov ecx, dword [eax - 0x1c]
xor ecx, dword [eax - 4]
mov dword [eax + 0x18], edx
xor ecx, edi
xor ecx, dword [eax + 0x10]
mov edx, ecx
shr edx, 0x1f
add ecx, ecx
xor edx, ecx
dec dword [ebp - 0x154]
mov dword [eax + 0x1c], edx
jne 0x43a690
mov ecx, dword [esi + 0x10]
mov edi, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [esi + 8]
mov ebx, dword [esi + 0xc]
mov dword [ebp - 0x14c], ecx
lea ecx, [ebp - 0x140]
mov dword [ebp - 0x150], edi
mov dword [ebp - 0x158], 2
mov dword [ebp - 0x154], ecx
lea esp, [esp]
mov ecx, dword [ebp - 0x158]
add ecx, 0xfffffffe
cmp ecx, 0x14
jae 0x43a756
mov esi, edx
not esi
mov ecx, eax
and esi, ebx
and ecx, edx
or esi, ecx
mov dword [ebp - 0x148], 0x5a827999
jmp 0x43a794
cmp ecx, 0x28
jae 0x43a767
mov dword [ebp - 0x148], 0x6ed9eba1
jmp 0x43a78e
cmp ecx, 0x3c
jae 0x43a784
mov esi, eax
or esi, edx
mov ecx, eax
and esi, ebx
and ecx, edx
or esi, ecx
mov dword [ebp - 0x148], 0x8f1bbcdc
jmp 0x43a794
mov dword [ebp - 0x148], 0xca62c1d6
mov esi, ebx
xor esi, eax
xor esi, edx
mov ecx, edi
shr ecx, 0x1b
shl edi, 5
xor ecx, edi
mov edi, dword [ebp - 0x154]
add ecx, dword [edi - 4]
mov edi, dword [ebp - 0x150]
add ecx, dword [ebp - 0x148]
add ecx, esi
add ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x14c], ebx
mov esi, eax
mov eax, dword [ebp - 0x158]
mov ebx, edx
shl ebx, 0x1e
shr edx, 2
dec eax
xor ebx, edx
mov dword [ebp - 0x150], ecx
cmp eax, 0x14
jae 0x43a7f7
mov edx, edi
not edx
mov eax, ebx
and edx, esi
and eax, edi
or edx, eax
mov dword [ebp - 0x148], 0x5a827999
jmp 0x43a835
cmp eax, 0x28
jae 0x43a808
mov dword [ebp - 0x148], 0x6ed9eba1
jmp 0x43a82f
cmp eax, 0x3c
jae 0x43a825
mov edx, ebx
or edx, edi
mov eax, ebx
and edx, esi
and eax, edi
or edx, eax
mov dword [ebp - 0x148], 0x8f1bbcdc
jmp 0x43a835
mov dword [ebp - 0x148], 0xca62c1d6
mov edx, esi
xor edx, ebx
xor edx, edi
mov eax, ecx
shr eax, 0x1b
shl ecx, 5
xor eax, ecx
mov ecx, dword [ebp - 0x154]
add eax, dword [ecx]
mov ecx, ebx
add eax, dword [ebp - 0x148]
mov ebx, edi
add eax, edx
add eax, dword [ebp - 0x14c]
mov edx, dword [ebp - 0x158]
shl ebx, 0x1e
shr edi, 2
mov dword [ebp - 0x14c], esi
mov esi, dword [ebp - 0x150]
xor ebx, edi
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x150], eax
cmp edx, 0x14
jae 0x43a897
mov edx, esi
not edx
and edx, ecx
mov ecx, ebx
and ecx, esi
or edx, ecx
mov edi, 0x5a827999
jmp 0x43a8c6
cmp edx, 0x28
jae 0x43a8a3
mov edi, 0x6ed9eba1
jmp 0x43a8c0
cmp edx, 0x3c
jae 0x43a8bb
mov edx, ebx
or edx, esi
and edx, ecx
mov ecx, ebx
and ecx, esi
or edx, ecx
mov edi, 0x8f1bbcdc
jmp 0x43a8c6
mov edi, 0xca62c1d6
mov edx, ecx
xor edx, ebx
xor edx, esi
mov ecx, eax
shr ecx, 0x1b
shl eax, 5
xor ecx, eax
mov eax, dword [ebp - 0x154]
add ecx, dword [eax + 4]
mov eax, ebx
add ecx, edi
mov edi, dword [ebp - 0x150]
add ecx, edx
mov edx, dword [ebp - 0x148]
add ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x158]
mov ebx, esi
shl ebx, 0x1e
shr esi, 2
inc edx
xor ebx, esi
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x150], ecx
cmp edx, 0x14
jae 0x43a92c
mov edx, edi
not edx
and edx, eax
mov eax, ebx
and eax, edi
or edx, eax
mov esi, 0x5a827999
jmp 0x43a95b
cmp edx, 0x28
jae 0x43a938
mov esi, 0x6ed9eba1
jmp 0x43a955
cmp edx, 0x3c
jae 0x43a950
mov edx, ebx
or edx, edi
and edx, eax
mov eax, ebx
and eax, edi
or edx, eax
mov esi, 0x8f1bbcdc
jmp 0x43a95b
mov esi, 0xca62c1d6
mov edx, eax
xor edx, ebx
xor edx, edi
mov eax, ecx
shr eax, 0x1b
shl ecx, 5
xor eax, ecx
mov ecx, dword [ebp - 0x154]
add eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x158]
add eax, esi
mov esi, dword [ebp - 0x150]
add eax, edx
add eax, dword [ebp - 0x14c]
mov edx, dword [ebp - 0x148]
mov dword [ebp - 0x14c], edx
mov edx, edi
shl edx, 0x1e
shr edi, 2
add ecx, 2
xor edx, edi
mov dword [ebp - 0x150], eax
cmp ecx, 0x14
jae 0x43a9c0
mov edi, esi
not edi
mov ecx, edx
and edi, ebx
and ecx, esi
or edi, ecx
mov dword [ebp - 0x148], 0x5a827999
jmp 0x43a9fe
cmp ecx, 0x28
jae 0x43a9d1
mov dword [ebp - 0x148], 0x6ed9eba1
jmp 0x43a9f8
cmp ecx, 0x3c
jae 0x43a9ee
mov edi, edx
or edi, esi
mov ecx, edx
and edi, ebx
and ecx, esi
or edi, ecx
mov dword [ebp - 0x148], 0x8f1bbcdc
jmp 0x43a9fe
mov dword [ebp - 0x148], 0xca62c1d6
mov edi, ebx
xor edi, edx
xor edi, esi
add dword [ebp - 0x158], 5
mov ecx, eax
shr ecx, 0x1b
shl eax, 5
xor ecx, eax
mov eax, dword [ebp - 0x154]
add ecx, dword [eax + 0xc]
add dword [ebp - 0x154], 0x14
add ecx, dword [ebp - 0x148]
mov eax, esi
shr esi, 2
add ecx, edi
add ecx, dword [ebp - 0x14c]
shl eax, 0x1e
xor eax, esi
mov esi, dword [ebp - 0x158]
mov dword [ebp - 0x14c], ebx
add esi, 0xfffffffe
mov ebx, edx
mov edx, dword [ebp - 0x150]
mov edi, ecx
mov dword [ebp - 0x150], edi
cmp esi, 0x50
jb 0x43a730
mov esi, dword [ebp - 0x15c]
mov esi, dword [esi]
add esi, ecx
mov ecx, dword [ebp - 0x15c]
mov dword [ecx], esi
mov esi, dword [ecx + 4]
add esi, edx
mov edx, dword [ecx + 8]
add edx, eax
mov eax, dword [ecx + 0xc]
add eax, ebx
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 0x10]
add eax, dword [ebp - 0x14c]
mov dword [ecx + 4], esi
mov dword [ecx + 8], edx
mov dword [ecx + 0x10], eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0049cc86
mov esp, ebp
pop ebp
ret