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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdfc
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0xc4]
xor ecx, ecx
mov edx, 0x80
call fcn.00402dac
mov dword [ebp - 0x2c], 0x67452301
mov dword [ebp - 0x30], 0xefcdab89
mov dword [ebp - 0x34], 0x98badcfe
mov dword [ebp - 0x38], 0x10325476
mov dword [ebp - 0x3c], 0xc3d2e1f0
mov eax, dword [ebp - 8]
shl eax, 3
xor edx, edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 8]
and eax, 0x3f
mov dword [ebp - 0x10], eax
mov eax, 0x38
sub eax, dword [ebp - 0x10]
test eax, eax
jg 0x4a685b
mov eax, 0x78
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
jmp 0x4a6866
mov eax, 0x38
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov byte [ebp + eax - 0xc4], 0x80
lea edx, [ebp - 0xc4]
mov eax, dword [ebp - 4]
add eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
call fcn.004029a4
lea eax, [ebp - 0x20]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x10]
lea eax, [ebp + eax - 0xc4]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 3]
mov edx, dword [ebp - 0x44]
mov byte [edx], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 2]
mov edx, dword [ebp - 0x44]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 1]
mov edx, dword [ebp - 0x44]
mov byte [edx + 2], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
mov edx, dword [ebp - 0x44]
mov byte [edx + 3], al
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x10]
lea eax, [ebp + eax - 0xc0]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 3]
mov edx, dword [ebp - 0x44]
mov byte [edx], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 2]
mov edx, dword [ebp - 0x44]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 1]
mov edx, dword [ebp - 0x44]
mov byte [edx + 2], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
mov edx, dword [ebp - 0x44]
mov byte [edx + 3], al
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
add eax, 0x40
cmp eax, dword [ebp - 8]
ja 0x4a6940
lea edx, [ebp - 0x204]
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x14]
mov ecx, 0x40
call fcn.004029a4
jmp 0x4a6976
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 8]
ja 0x4a6960
lea edx, [ebp - 0x204]
lea eax, [ebp - 0xc4]
mov ecx, 0x40
call fcn.004029a4
jmp 0x4a6976
lea edx, [ebp - 0x204]
lea eax, [ebp - 0x84]
mov ecx, 0x40
call fcn.004029a4
lea eax, [ebp - 0x20]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x204]
mov dword [ebp - 0x44], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x204]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 3]
mov edx, dword [ebp - 0x44]
mov byte [edx], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 2]
mov edx, dword [ebp - 0x44]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 1]
mov edx, dword [ebp - 0x44]
mov byte [edx + 2], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
mov edx, dword [ebp - 0x44]
mov byte [edx + 3], al
add dword [ebp - 0x44], 4
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x10
jne 0x4a698a
mov dword [ebp - 0x18], 0x10
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x210]
mov edx, dword [ebp - 0x18]
xor eax, dword [ebp + edx*4 - 0x224]
mov edx, dword [ebp - 0x18]
xor eax, dword [ebp + edx*4 - 0x23c]
mov edx, dword [ebp - 0x18]
xor eax, dword [ebp + edx*4 - 0x244]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
add eax, eax
mov edx, dword [ebp - 0x20]
shr edx, 0x1f
or eax, edx
mov edx, dword [ebp - 0x18]
mov dword [ebp + edx*4 - 0x204], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x50
jne 0x4a69d9
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x2c]
lea eax, [ebp - 0x204]
call fcn.004a6648
add dword [ebp - 0x14], 0x40
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
add eax, 8
cmp eax, dword [ebp - 0x14]
jne 0x4a691d
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 3]
mov edx, dword [ebp - 0x44]
mov byte [edx], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 2]
mov edx, dword [ebp - 0x44]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 1]
mov edx, dword [ebp - 0x44]
mov byte [edx + 2], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
mov edx, dword [ebp - 0x44]
mov byte [edx + 3], al
lea eax, [ebp - 0x30]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc]
add eax, 4
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 3]
mov edx, dword [ebp - 0x44]
mov byte [edx], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 2]
mov edx, dword [ebp - 0x44]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 1]
mov edx, dword [ebp - 0x44]
mov byte [edx + 2], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
mov edx, dword [ebp - 0x44]
mov byte [edx + 3], al
lea eax, [ebp - 0x34]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc]
add eax, 8
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 3]
mov edx, dword [ebp - 0x44]
mov byte [edx], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 2]
mov edx, dword [ebp - 0x44]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 1]
mov edx, dword [ebp - 0x44]
mov byte [edx + 2], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
mov edx, dword [ebp - 0x44]
mov byte [edx + 3], al
lea eax, [ebp - 0x38]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc]
add eax, 0xc
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 3]
mov edx, dword [ebp - 0x44]
mov byte [edx], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 2]
mov edx, dword [ebp - 0x44]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 1]
mov edx, dword [ebp - 0x44]
mov byte [edx + 2], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
mov edx, dword [ebp - 0x44]
mov byte [edx + 3], al
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc]
add eax, 0x10
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 3]
mov edx, dword [ebp - 0x44]
mov byte [edx], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 2]
mov edx, dword [ebp - 0x44]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 1]
mov edx, dword [ebp - 0x44]
mov byte [edx + 2], al
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
mov edx, dword [ebp - 0x44]
mov byte [edx + 3], al
mov esp, ebp
pop ebp
ret