Function at 0x100304f0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x18
push ebx
mov ebx, dword [esp + 0x24]
mov edx, dword [ebx]
push ebp
push esi
mov esi, dword [esp + 0x28]
lea ecx, [esi + 0x20]
mov dword [esi], edx
mov dword [esp + 0x18], ecx
mov ecx, dword [ebx + 4]
mov dword [esi + 4], ecx
mov edx, dword [ebx]
dec edx
lea eax, [ebx + 0x20]
push edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
je 0x10030678
jmp 0x10030530
mov dword [esp + 0x24], 2
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov eax, edi
and eax, 0x80808080
mov ecx, eax
shr ecx, 7
sub eax, ecx
and eax, 0x1b1b1b1b
lea edx, [edi + edi]
and edx, 0xfefefefe
xor eax, edx
mov ecx, eax
and ecx, 0x80808080
mov edx, ecx
shr edx, 7
sub ecx, edx
and ecx, 0x1b1b1b1b
lea edx, [eax + eax]
and edx, 0xfefefefe
xor ecx, edx
mov edx, ecx
and edx, 0x80808080
mov esi, edx
shr esi, 7
sub edx, esi
and edx, 0x1b1b1b1b
lea esi, [ecx + ecx]
and esi, 0xfefefefe
xor edx, esi
mov esi, edx
xor esi, edi
mov ebp, esi
xor ebp, ecx
rol ebp, 0x10
mov edi, esi
xor edi, eax
rol edi, 0x18
xor ebp, edi
rol esi, 8
xor ebp, esi
xor ebp, edx
xor ebp, ecx
xor ebp, eax
mov eax, ebx
and eax, 0x80808080
mov ecx, eax
shr ecx, 7
sub eax, ecx
lea edx, [ebx + ebx]
and edx, 0xfefefefe
and eax, 0x1b1b1b1b
xor eax, edx
mov edi, dword [esp + 0x1c]
mov ecx, eax
and ecx, 0x80808080
mov edx, ecx
shr edx, 7
sub ecx, edx
and ecx, 0x1b1b1b1b
lea edx, [eax + eax]
and edx, 0xfefefefe
xor ecx, edx
mov edx, ecx
and edx, 0x80808080
mov esi, edx
shr esi, 7
sub edx, esi
and edx, 0x1b1b1b1b
lea esi, [ecx + ecx]
and esi, 0xfefefefe
xor edx, esi
mov esi, edx
xor esi, ebx
mov dword [edi], ebp
mov ebx, esi
xor ebx, ecx
mov ebp, esi
xor ebp, eax
rol ebx, 0x10
rol ebp, 0x18
xor ebx, ebp
rol esi, 8
xor ebx, esi
xor ebx, edx
xor ebx, ecx
xor ebx, eax
mov eax, dword [esp + 0x14]
mov dword [edi + 4], ebx
add eax, 8
add edi, 8
dec dword [esp + 0x24]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
jne 0x10030538
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov edx, dword [ebx]
inc ecx
dec edx
mov dword [esp + 0x10], ecx
cmp ecx, edx
jb 0x10030530
mov esi, dword [esp + 0x2c]
mov edi, dword [ebx]
lea ecx, [esi + 0x10]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi]
inc ecx
lea edx, [edi + 1]
shl edx, 4
shl ecx, 4
add edx, ebx
add ecx, esi
lea eax, [ebx + 0x10]
shr edi, 1
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], edi
je 0x1003070f
mov edi, dword [esp + 0x2c]
sub esi, ebx
sub edi, eax
jmp 0x100306b0
mov ebp, dword [eax + 4]
mov ebx, dword [eax]
mov dword [esp + 0x18], ebp
mov ebp, dword [eax + 8]
mov dword [esp + 0x1c], ebp
mov ebp, dword [eax + 0xc]
mov dword [esp + 0x20], ebp
mov ebp, dword [edx]
mov dword [edi + eax], ebp
mov ebp, dword [edx + 4]
mov dword [edi + eax + 4], ebp
mov ebp, dword [edx + 8]
mov dword [esi + eax + 8], ebp
mov ebp, dword [edx + 0xc]
mov dword [esi + eax + 0xc], ebp
mov dword [ecx], ebx
mov ebx, dword [esp + 0x18]
mov dword [ecx + 4], ebx
mov ebx, dword [esp + 0x1c]
mov dword [ecx + 8], ebx
mov ebx, dword [esp + 0x20]
mov dword [ecx + 0xc], ebx
add eax, 0x10
sub edx, 0x10
sub ecx, 0x10
dec dword [esp + 0x10]
jne 0x100306b0
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
mov ebx, dword [ebx]
mov edx, dword [esp + 0x2c]
cmp ebx, 0xe
je 0x10030744
lea ecx, [ebx + ebx]
mov esi, dword [eax + ecx*8]
mov dword [edx + 0xe0], esi
mov esi, dword [eax + ecx*8 + 4]
mov dword [edx + 0xe4], esi
mov esi, dword [eax + ecx*8 + 8]
mov dword [edx + 0xe8], esi
mov eax, dword [eax + ecx*8 + 0xc]
mov dword [edx + 0xec], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret