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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xec
mov esi, dword [ebp + 8]
cmp byte [ebp + 0xc], 0
mov dword [ebp - 0xec], ecx
lea edx, [ebp - 0xcc]
mov ecx, 4
jne 0x416859
lea edi, [ebp - 0xac]
mov ecx, 4
xor eax, eax
rep stosd dword es:[edi], eax
lea esi, [ebp - 0xac]
mov cl, 4
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov esi, edx
mov ecx, 4
lea edi, [ebp - 0x88]
lea ebx, [ebp - 0xd4]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov dword [esp], 0x91b020
mov dword [ebp - 0x78], 0x67452301
mov dword [ebp - 0x74], 0xefcdab89
mov dword [ebp - 0x70], 0x98badcfe
mov dword [ebp - 0x6c], 0x10325476
mov dword [ebp - 0x68], 0xc3d2e1f0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
call fcn.0041ea7c
push edi
lea edi, [ebp - 0xdc]
mov dword [esp], 0x91b164
mov ecx, edi
call fcn.00428c7e
push esi
lea ecx, [ebp - 0xe4]
mov dword [esp], 0x91b164
call fcn.00428b8a
push ecx
lea ecx, [ebp - 0xe4]
mov dword [esp + 4], 0x91bb6c
mov dword [esp], 0
call fcn.0069ad60
push edx
push edx
mov edx, dword [eax]
lea esi, [ebp - 0xd8]
mov dword [ebp - 0xe0], edx
mov dword [eax], 0x762064
lea eax, [ebp - 0xe0]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00707f38
lea eax, [ebp - 0xd0]
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00707f38
lea esi, [ebp - 0x78]
lea eax, [ebp - 0x88]
mov ecx, esi
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [ebp - 0x78], 0x67452301
mov dword [ebp - 0x74], 0xefcdab89
mov dword [ebp - 0x70], 0x98badcfe
mov dword [ebp - 0x6c], 0x10325476
mov dword [ebp - 0x68], 0xc3d2e1f0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
call fcn.00660170
push eax
mov ecx, esi
push eax
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax - 0xc]
mov dword [esp], eax
add edx, eax
mov dword [esp + 4], edx
call fcn.00660170
push edi
mov ecx, esi
push edi
lea edi, [ebp - 0x9c]
mov dword [esp], edi
mov esi, edi
call fcn.00660064
push eax
xor eax, eax
mov edx, dword [esi + eax*4]
mov ecx, edx
shr ecx, 0x18
mov byte [ebp + eax*4 - 0xbc], cl
mov ecx, edx
shr ecx, 0x10
mov byte [ebp + eax*4 - 0xbb], cl
mov ecx, edx
shr ecx, 8
mov byte [ebp + eax*4 - 0xba], cl
mov byte [ebp + eax*4 - 0xb9], dl
inc eax
cmp eax, 4
jne 0x4169be
mov al, byte [ebp - 0xb4]
lea ecx, [ebp - 0xd0]
lea edi, [ebp - 0xac]
and eax, 0xffffffbf
or eax, 0xffffff80
mov byte [ebp - 0xb4], al
mov al, byte [ebp - 0xb6]
and eax, 0x5f
or eax, 0x50
mov byte [ebp - 0xb6], al
call fcn.0069bcc0
lea ecx, [ebp - 0xd8]
call fcn.0069bcc0
lea ecx, [ebp - 0xe0]
call fcn.0069bcc0
lea ecx, [ebp - 0xe4]
call fcn.0069bcc0
lea ecx, [ebp - 0xdc]
call fcn.0069bcc0
mov ecx, ebx
call fcn.0069bcc0
xor eax, eax
lea edx, [ebp - 0xbc]
mov ebx, eax
mov ecx, eax
shr ecx, 2
inc edx
shl ebx, 6
lea ebx, [ebx + ecx - 0x61c88647]
movzx ecx, byte [edx - 1]
add ecx, ebx
xor eax, ecx
cmp edx, edi
jne 0x416a62
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0xec]
mov dword [eax], 0x762064
mov ecx, eax
mov dword [esp + 4], 4
mov dword [esp], esi
call fcn.0069a8f0
push ebx
mov eax, dword [ebp - 0xec]
push ebx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 8