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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x15c
mov eax, dword [0x4ce4e0]
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 0x43bc83
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 0x43bd40
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 0x43be06
mov esi, edx
not esi
mov ecx, eax
and esi, ebx
and ecx, edx
or esi, ecx
mov dword [ebp - 0x148], 0x5a827999
jmp 0x43be44
cmp ecx, 0x28
jae 0x43be17
mov dword [ebp - 0x148], 0x6ed9eba1
jmp 0x43be3e
cmp ecx, 0x3c
jae 0x43be34
mov esi, eax
or esi, edx
mov ecx, eax
and esi, ebx
and ecx, edx
or esi, ecx
mov dword [ebp - 0x148], 0x8f1bbcdc
jmp 0x43be44
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 0x43bea7
mov edx, edi
not edx
mov eax, ebx
and edx, esi
and eax, edi
or edx, eax
mov dword [ebp - 0x148], 0x5a827999
jmp 0x43bee5
cmp eax, 0x28
jae 0x43beb8
mov dword [ebp - 0x148], 0x6ed9eba1
jmp 0x43bedf
cmp eax, 0x3c
jae 0x43bed5
mov edx, ebx
or edx, edi
mov eax, ebx
and edx, esi
and eax, edi
or edx, eax
mov dword [ebp - 0x148], 0x8f1bbcdc
jmp 0x43bee5
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 0x43bf47
mov edx, esi
not edx
and edx, ecx
mov ecx, ebx
and ecx, esi
or edx, ecx
mov edi, 0x5a827999
jmp 0x43bf76
cmp edx, 0x28
jae 0x43bf53
mov edi, 0x6ed9eba1
jmp 0x43bf70
cmp edx, 0x3c
jae 0x43bf6b
mov edx, ebx
or edx, esi
and edx, ecx
mov ecx, ebx
and ecx, esi
or edx, ecx
mov edi, 0x8f1bbcdc
jmp 0x43bf76
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 0x43bfdc
mov edx, edi
not edx
and edx, eax
mov eax, ebx
and eax, edi
or edx, eax
mov esi, 0x5a827999
jmp 0x43c00b
cmp edx, 0x28
jae 0x43bfe8
mov esi, 0x6ed9eba1
jmp 0x43c005
cmp edx, 0x3c
jae 0x43c000
mov edx, ebx
or edx, edi
and edx, eax
mov eax, ebx
and eax, edi
or edx, eax
mov esi, 0x8f1bbcdc
jmp 0x43c00b
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 0x43c070
mov edi, esi
not edi
mov ecx, edx
and edi, ebx
and ecx, esi
or edi, ecx
mov dword [ebp - 0x148], 0x5a827999
jmp 0x43c0ae
cmp ecx, 0x28
jae 0x43c081
mov dword [ebp - 0x148], 0x6ed9eba1
jmp 0x43c0a8
cmp ecx, 0x3c
jae 0x43c09e
mov edi, edx
or edi, esi
mov ecx, edx
and edi, ebx
and ecx, esi
or edi, ecx
mov dword [ebp - 0x148], 0x8f1bbcdc
jmp 0x43c0ae
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 0x43bde0
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.004739b2
mov esp, ebp
pop ebp
ret