Function at 0x4784a0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 8
push ebx
push esi
push edi
mov edi, dword [esp + 0x24]
mov eax, edi
and eax, 0x80000007
jns 0x4784b8
dec eax
or eax, 0xfffffff8
inc eax
mov edx, dword [esp + 0x1c]
mov esi, edi
je 0x4784e1
sub esi, eax
xor eax, eax
add esi, 8
mov ecx, esi
mov dword [esp + 0x10], esi
sub ecx, edi
add edi, edx
mov ebx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, ebx
and ecx, 3
rep stosb byte es:[edi], al
jmp 0x4784e5
mov dword [esp + 0x10], esi
mov eax, esi
sar eax, 3
test eax, eax
jle 0x478b89
mov ebx, dword [esp + 0x20]
push ebp
mov dword [esp + 0x10], eax
mov ecx, dword [edx + 4]
mov esi, dword [ebx]
mov eax, ecx
mov edi, ecx
shr eax, 5
shl edi, 4
xor eax, edi
mov edi, dword [edx]
add eax, ecx
mov edx, dword [ebx + 0xc]
xor eax, esi
add edx, 0x9e3779b9
add eax, edi
mov edi, eax
mov ebp, eax
shr edi, 5
shl ebp, 4
xor edi, ebp
add edi, eax
xor edi, edx
mov edx, dword [ebx + 4]
add ecx, edi
mov edi, ecx
mov ebp, ecx
shr edi, 5
shl ebp, 4
xor edi, ebp
lea ebp, [edx - 0x61c88647]
add edi, ecx
xor edi, ebp
add eax, edi
mov edi, dword [ebx + 8]
mov ebp, eax
mov ebx, eax
shr ebp, 5
shl ebx, 4
xor ebp, ebx
lea ebx, [edi + 0x3c6ef372]
add ebp, eax
xor ebp, ebx
add ecx, ebp
mov ebp, ecx
mov ebx, ecx
shr ebp, 5
shl ebx, 4
xor ebp, ebx
lea ebx, [edi + 0x3c6ef372]
add ebp, ecx
xor ebp, ebx
add eax, ebp
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edx - 0x255992d5]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebp, ecx
mov ebx, ecx
shr ebp, 5
shl ebx, 4
xor ebp, ebx
mov ebx, dword [esp + 0x24]
add ebp, ecx
mov ebx, dword [ebx + 0xc]
add ebx, 0xdaa66d2b
xor ebp, ebx
add eax, ebp
mov ebp, eax
mov ebx, eax
shr ebp, 5
shl ebx, 4
xor ebp, ebx
lea ebx, [esi + 0x78dde6e4]
add ebp, eax
xor ebp, ebx
add ecx, ebp
mov ebp, ecx
shr ebp, 5
mov ebx, ecx
shl ebx, 4
xor ebp, ebx
lea ebx, [esi + 0x78dde6e4]
add ebp, ecx
xor ebp, ebx
add eax, ebp
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [esi + 0x1715609d]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edx + 0x1715609d]
add ebx, ecx
xor ebx, ebp
add eax, ebx
mov ebp, eax
mov ebx, eax
shr ebp, 5
shl ebx, 4
xor ebp, ebx
mov ebx, dword [esp + 0x24]
add ebp, eax
mov ebx, dword [ebx + 0xc]
add ebx, 0xb54cda56
xor ebp, ebx
add ecx, ebp
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edi - 0x4ab325aa]
add ebx, ecx
xor ebx, ebp
add eax, ebx
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edi + 0x5384540f]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebp, ecx
mov ebx, ecx
shr ebp, 5
shl ebx, 4
xor ebp, ebx
mov ebx, dword [esp + 0x24]
add ebp, ecx
mov ebx, dword [ebx + 0xc]
add ebx, 0x5384540f
xor ebp, ebx
add eax, ebp
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edx - 0xe443238]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [esi - 0xe443238]
add ebx, ecx
xor ebx, ebp
add eax, ebx
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [esi - 0x700cb87f]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edx - 0x700cb87f]
add ebx, ecx
xor ebx, ebp
add eax, ebx
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [esi + 0x2e2ac13a]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edi + 0x2e2ac13a]
add ebx, ecx
xor ebx, ebp
add eax, ebx
mov ebx, dword [esp + 0x24]
mov ebp, eax
mov ebx, dword [ebx + 0xc]
add ebx, 0xcc623af3
mov dword [esp + 0x28], ebx
mov ebx, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
mov ebp, dword [esp + 0x28]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
mov ebp, dword [esp + 0x28]
add ebx, ecx
xor ebx, ebp
add eax, ebx
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edi + 0x6a99b4ac]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [esi + 0x6a99b4ac]
add ebx, ecx
xor ebx, ebp
add eax, ebx
mov ebp, eax
mov ebx, eax
shr ebp, 5
shl ebx, 4
xor ebp, ebx
lea ebx, [edx + 0x8d12e65]
add ebp, eax
xor ebp, ebx
add ecx, ebp
mov ebp, ecx
mov ebx, ecx
shl ebx, 4
shr ebp, 5
xor ebp, ebx
lea ebx, [edx + 0x8d12e65]
add ebp, ecx
xor ebp, ebx
add eax, ebp
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edx - 0x58f757e2]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edi - 0x58f757e2]
add ebx, ecx
xor ebx, ebp
add eax, ebx
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [esi + 0x454021d7]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebp, ecx
mov ebx, ecx
shr ebp, 5
shl ebx, 4
xor ebp, ebx
mov ebx, dword [esp + 0x24]
add ebp, ecx
mov ebx, dword [ebx + 0xc]
add ebx, 0x454021d7
xor ebp, ebx
add eax, ebp
mov ebp, eax
mov ebx, eax
shr ebp, 5
shl ebx, 4
xor ebp, ebx
mov ebx, dword [esp + 0x24]
add ebp, eax
mov ebx, dword [ebx + 0xc]
add ebx, 0xe3779b90
xor ebp, ebx
add ecx, ebp
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [esi - 0x1c886470]
add ebx, ecx
xor ebx, ebp
add eax, ebx
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edi - 0x7e50eab7]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edx - 0x7e50eab7]
add ebx, ecx
xor ebx, ebp
add eax, ebx
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edx + 0x1fe68f02]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edi + 0x1fe68f02]
add ebx, ecx
xor ebx, ebp
add eax, ebx
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edx - 0x41e1f745]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebp, ecx
mov ebx, ecx
shr ebp, 5
shl ebx, 4
xor ebp, ebx
mov ebx, dword [esp + 0x24]
add ebp, ecx
mov ebx, dword [ebx + 0xc]
add ebx, 0xbe1e08bb
xor ebp, ebx
add eax, ebp
mov ebp, eax
mov ebx, eax
shr ebp, 5
shl ebx, 4
xor ebp, ebx
lea ebx, [esi + 0x5c558274]
add ebp, eax
xor ebp, ebx
add ecx, ebp
mov ebp, ecx
mov ebx, ecx
shr ebp, 5
shl ebx, 4
xor ebp, ebx
lea ebx, [esi + 0x5c558274]
add ebp, ecx
xor ebp, ebx
add eax, ebp
mov ebp, eax
mov ebx, eax
shr ebp, 5
shl ebx, 4
xor ebp, ebx
mov ebx, dword [esp + 0x24]
add ebp, eax
mov ebx, dword [ebx + 0xc]
add ebx, 0xfa8cfc2d
xor ebp, ebx
add ecx, ebp
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edx - 0x57303d3]
add ebx, ecx
xor ebx, ebp
add eax, ebx
mov ebp, eax
mov ebx, eax
shl ebx, 4
shr ebp, 5
xor ebp, ebx
lea ebx, [edi - 0x673b8a1a]
add ebp, eax
xor ebp, ebx
add ecx, ebp
mov ebp, ecx
mov ebx, ecx
shl ebx, 4
shr ebp, 5
xor ebp, ebx
lea ebx, [edi - 0x673b8a1a]
add ebp, ecx
xor ebp, ebx
add eax, ebp
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edx + 0x36fbef9f]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebp, ecx
mov ebx, ecx
shr ebp, 5
shl ebx, 4
xor ebp, ebx
mov ebx, dword [esp + 0x24]
add ebp, ecx
mov ebx, dword [ebx + 0xc]
add ebx, 0x36fbef9f
xor ebp, ebx
add eax, ebp
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edx - 0x2acc96a8]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [esi - 0x2acc96a8]
add ebx, ecx
xor ebx, ebp
add eax, ebx
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [esi + 0x736ae311]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edx + 0x736ae311]
add ebx, ecx
xor ebx, ebp
add eax, ebx
mov ebp, eax
shr ebp, 5
mov ebx, eax
add edx, 0xec48c9f5
shl ebx, 4
xor ebp, ebx
mov ebx, dword [esp + 0x24]
add ebp, eax
mov ebx, dword [ebx + 0xc]
add ebx, 0x11a25cca
xor ebp, ebx
add ecx, ebp
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edi + 0x11a25cca]
add ebx, ecx
xor ebx, ebp
add eax, ebx
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edi - 0x5026297d]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebp, ecx
mov ebx, ecx
shr ebp, 5
shl ebx, 4
xor ebp, ebx
mov ebx, dword [esp + 0x24]
add ebp, ecx
mov ebx, dword [ebx + 0xc]
add ebx, 0xafd9d683
xor ebp, ebx
add eax, ebp
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [edi + 0x4e11503c]
add ebx, eax
xor ebx, ebp
add ecx, ebx
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
lea ebp, [esi + 0x4e11503c]
add ebx, ecx
add esi, 0x8a8043ae
xor ebx, ebp
add eax, ebx
mov ebx, eax
mov ebp, eax
shr ebx, 5
shl ebp, 4
xor ebx, ebp
add ebx, eax
xor ebx, edx
add ecx, ebx
mov ebx, ecx
mov ebp, ecx
shr ebx, 5
shl ebp, 4
xor ebx, ebp
add ebx, ecx
xor ebx, edx
add eax, ebx
mov edx, eax
mov ebx, eax
shr edx, 5
shl ebx, 4
xor edx, ebx
add edx, eax
xor edx, esi
add ecx, edx
mov ebx, dword [esp + 0x24]
mov edx, ecx
mov esi, ecx
shr edx, 5
shl esi, 4
xor edx, esi
lea esi, [edi - 0x757fbc52]
add edx, ecx
add edi, 0xc6ef3720
xor edx, esi
add eax, edx
mov edx, dword [ebx + 0xc]
mov esi, eax
mov ebp, eax
shr esi, 5
shl ebp, 4
xor esi, ebp
add edx, 0x28b7bd67
add esi, eax
xor esi, edx
add ecx, esi
mov esi, ecx
mov ebp, ecx
shr esi, 5
shl ebp, 4
xor esi, ebp
add esi, ecx
xor esi, edx
add eax, esi
mov edx, eax
mov esi, eax
shr edx, 5
shl esi, 4
xor edx, esi
add edx, eax
xor edx, edi
add ecx, edx
mov edx, dword [esp + 0x1c]
mov dword [edx], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 4], ecx
add edx, 8
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x20]
add edx, 8
dec eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], eax
jne 0x4784fb
mov eax, dword [esp + 0x14]
pop ebp
pop edi
pop esi
pop ebx
add esp, 8
ret
mov eax, esi
pop edi
pop esi
pop ebx
add esp, 8
ret