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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x15c
mov eax, dword [0x55a3d0]
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 0x445243
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 0x445300
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 0x4453c6
mov esi, edx
not esi
mov ecx, eax
and esi, ebx
and ecx, edx
or esi, ecx
mov dword [ebp - 0x148], 0x5a827999
jmp 0x445404
cmp ecx, 0x28
jae 0x4453d7
mov dword [ebp - 0x148], 0x6ed9eba1
jmp 0x4453fe
cmp ecx, 0x3c
jae 0x4453f4
mov esi, eax
or esi, edx
mov ecx, eax
and esi, ebx
and ecx, edx
or esi, ecx
mov dword [ebp - 0x148], 0x8f1bbcdc
jmp 0x445404
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 0x445467
mov edx, edi
not edx
mov eax, ebx
and edx, esi
and eax, edi
or edx, eax
mov dword [ebp - 0x148], 0x5a827999
jmp 0x4454a5
cmp eax, 0x28
jae 0x445478
mov dword [ebp - 0x148], 0x6ed9eba1
jmp 0x44549f
cmp eax, 0x3c
jae 0x445495
mov edx, ebx
or edx, edi
mov eax, ebx
and edx, esi
and eax, edi
or edx, eax
mov dword [ebp - 0x148], 0x8f1bbcdc
jmp 0x4454a5
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 0x445507
mov edx, esi
not edx
and edx, ecx
mov ecx, ebx
and ecx, esi
or edx, ecx
mov edi, 0x5a827999
jmp 0x445536
cmp edx, 0x28
jae 0x445513
mov edi, 0x6ed9eba1
jmp 0x445530
cmp edx, 0x3c
jae 0x44552b
mov edx, ebx
or edx, esi
and edx, ecx
mov ecx, ebx
and ecx, esi
or edx, ecx
mov edi, 0x8f1bbcdc
jmp 0x445536
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 0x44559c
mov edx, edi
not edx
and edx, eax
mov eax, ebx
and eax, edi
or edx, eax
mov esi, 0x5a827999
jmp 0x4455cb
cmp edx, 0x28
jae 0x4455a8
mov esi, 0x6ed9eba1
jmp 0x4455c5
cmp edx, 0x3c
jae 0x4455c0
mov edx, ebx
or edx, edi
and edx, eax
mov eax, ebx
and eax, edi
or edx, eax
mov esi, 0x8f1bbcdc
jmp 0x4455cb
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 0x445630
mov edi, esi
not edi
mov ecx, edx
and edi, ebx
and ecx, esi
or edi, ecx
mov dword [ebp - 0x148], 0x5a827999
jmp 0x44566e
cmp ecx, 0x28
jae 0x445641
mov dword [ebp - 0x148], 0x6ed9eba1
jmp 0x445668
cmp ecx, 0x3c
jae 0x44565e
mov edi, edx
or edi, esi
mov ecx, edx
and edi, ebx
and ecx, esi
or edi, ecx
mov dword [ebp - 0x148], 0x8f1bbcdc
jmp 0x44566e
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 0x4453a0
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.004b58f8
mov esp, ebp
pop ebp
ret