Function at 0x543876
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
cmp dword [0x573058], 0
jne 0x543890
call fcn.0054351c
mov eax, dword [esi]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov edx, dword [ebp + 0xc]
sub edx, 4
je 0x5438c5
sub edx, 2
je 0x543999
sub edx, 2
je 0x543ab5
jmp 0x543c2f
mov eax, dword [ebx + 0xc]
xor edx, edx
mov ecx, eax
shr ecx, 8
mov esi, eax
shl esi, 0x18
or ecx, esi
shr ecx, 0
and ecx, 0xff
mov esi, 0x5dd3e8
mov esi, dword [esi + ecx*4]
mov ecx, eax
shr ecx, 8
mov edi, eax
shl edi, 0x18
or ecx, edi
shr ecx, 8
and ecx, 0xff
mov edi, 0x5dd7e8
xor esi, dword [edi + ecx*4]
mov ecx, eax
shr ecx, 8
mov edi, eax
shl edi, 0x18
or ecx, edi
shr ecx, 0x10
and ecx, 0xff
mov edi, 0x5ddbe8
xor esi, dword [edi + ecx*4]
mov ecx, eax
shr ecx, 8
shl eax, 0x18
or ecx, eax
shr ecx, 0x18
xor eax, eax
mov al, cl
mov ecx, 0x5ddfe8
xor esi, dword [ecx + eax*4]
xor esi, dword [edx*4 + 0x5db3c0]
mov eax, esi
mov ecx, edx
shl ecx, 2
xor eax, dword [ebx + ecx*4]
mov ecx, edx
shl ecx, 2
mov dword [ebx + ecx*4 + 0x10], eax
mov ecx, edx
shl ecx, 2
xor eax, dword [ebx + ecx*4 + 4]
mov ecx, edx
shl ecx, 2
mov dword [ebx + ecx*4 + 0x14], eax
mov ecx, edx
shl ecx, 2
xor eax, dword [ebx + ecx*4 + 8]
mov ecx, edx
shl ecx, 2
mov dword [ebx + ecx*4 + 0x18], eax
mov ecx, edx
shl ecx, 2
xor eax, dword [ebx + ecx*4 + 0xc]
mov ecx, edx
shl ecx, 2
mov dword [ebx + ecx*4 + 0x1c], eax
inc edx
cmp edx, 0xa
jb 0x5438ca
jmp 0x543c2f
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
mov edx, dword [esi + 0x14]
mov dword [ebx + 0x14], edx
mov eax, dword [ebx + 0x14]
xor edx, edx
mov ecx, eax
shr ecx, 8
mov esi, eax
shl esi, 0x18
or ecx, esi
shr ecx, 0
and ecx, 0xff
mov esi, 0x5dd3e8
mov esi, dword [esi + ecx*4]
mov ecx, eax
shr ecx, 8
mov edi, eax
shl edi, 0x18
or ecx, edi
shr ecx, 8
and ecx, 0xff
mov edi, 0x5dd7e8
xor esi, dword [edi + ecx*4]
mov ecx, eax
shr ecx, 8
mov edi, eax
shl edi, 0x18
or ecx, edi
shr ecx, 0x10
and ecx, 0xff
mov edi, 0x5ddbe8
xor esi, dword [edi + ecx*4]
mov ecx, eax
shr ecx, 8
shl eax, 0x18
or ecx, eax
shr ecx, 0x18
xor eax, eax
mov al, cl
mov ecx, 0x5ddfe8
xor esi, dword [ecx + eax*4]
xor esi, dword [edx*4 + 0x5db3c0]
mov eax, esi
mov ecx, edx
add ecx, ecx
lea ecx, [ecx + ecx*2]
xor eax, dword [ebx + ecx*4]
mov ecx, edx
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebx + ecx*4 + 0x18], eax
mov ecx, edx
add ecx, ecx
lea ecx, [ecx + ecx*2]
xor eax, dword [ebx + ecx*4 + 4]
mov ecx, edx
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebx + ecx*4 + 0x1c], eax
mov ecx, edx
add ecx, ecx
lea ecx, [ecx + ecx*2]
xor eax, dword [ebx + ecx*4 + 8]
mov ecx, edx
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebx + ecx*4 + 0x20], eax
mov ecx, edx
add ecx, ecx
lea ecx, [ecx + ecx*2]
xor eax, dword [ebx + ecx*4 + 0xc]
mov ecx, edx
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebx + ecx*4 + 0x24], eax
mov ecx, edx
add ecx, ecx
lea ecx, [ecx + ecx*2]
xor eax, dword [ebx + ecx*4 + 0x10]
mov ecx, edx
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebx + ecx*4 + 0x28], eax
mov ecx, edx
add ecx, ecx
lea ecx, [ecx + ecx*2]
xor eax, dword [ebx + ecx*4 + 0x14]
mov ecx, edx
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebx + ecx*4 + 0x2c], eax
inc edx
cmp edx, 8
jb 0x5439aa
jmp 0x543c2f
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
mov edx, dword [esi + 0x14]
mov dword [ebx + 0x14], edx
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov edx, dword [esi + 0x1c]
mov dword [ebx + 0x1c], edx
mov eax, dword [ebx + 0x1c]
xor edx, edx
mov ecx, eax
shr ecx, 8
mov esi, eax
shl esi, 0x18
or ecx, esi
shr ecx, 0
and ecx, 0xff
mov esi, 0x5dd3e8
mov esi, dword [esi + ecx*4]
mov ecx, eax
shr ecx, 8
mov edi, eax
shl edi, 0x18
or ecx, edi
shr ecx, 8
and ecx, 0xff
mov edi, 0x5dd7e8
xor esi, dword [edi + ecx*4]
mov ecx, eax
shr ecx, 8
mov edi, eax
shl edi, 0x18
or ecx, edi
shr ecx, 0x10
and ecx, 0xff
mov edi, 0x5ddbe8
xor esi, dword [edi + ecx*4]
mov ecx, eax
shr ecx, 8
shl eax, 0x18
or ecx, eax
shr ecx, 0x18
xor eax, eax
mov al, cl
mov ecx, 0x5ddfe8
xor esi, dword [ecx + eax*4]
xor esi, dword [edx*4 + 0x5db3c0]
mov eax, esi
mov ecx, edx
shl ecx, 3
xor eax, dword [ebx + ecx*4]
mov ecx, edx
shl ecx, 3
mov dword [ebx + ecx*4 + 0x20], eax
mov ecx, edx
shl ecx, 3
xor eax, dword [ebx + ecx*4 + 4]
mov ecx, edx
shl ecx, 3
mov dword [ebx + ecx*4 + 0x24], eax
mov ecx, edx
shl ecx, 3
xor eax, dword [ebx + ecx*4 + 8]
mov ecx, edx
shl ecx, 3
mov dword [ebx + ecx*4 + 0x28], eax
mov ecx, edx
shl ecx, 3
xor eax, dword [ebx + ecx*4 + 0xc]
mov ecx, edx
shl ecx, 3
mov dword [ebx + ecx*4 + 0x2c], eax
mov ecx, eax
shr ecx, 0
and ecx, 0xff
mov esi, 0x5dd3e8
mov esi, dword [esi + ecx*4]
mov ecx, eax
shr ecx, 8
and ecx, 0xff
mov edi, 0x5dd7e8
xor esi, dword [edi + ecx*4]
mov ecx, eax
shr ecx, 0x10
and ecx, 0xff
mov edi, 0x5ddbe8
xor esi, dword [edi + ecx*4]
shr eax, 0x18
and eax, 0xff
mov ecx, 0x5ddfe8
xor esi, dword [ecx + eax*4]
mov eax, edx
shl eax, 3
xor esi, dword [ebx + eax*4 + 0x10]
mov eax, esi
mov ecx, edx
shl ecx, 3
mov dword [ebx + ecx*4 + 0x30], eax
mov ecx, edx
shl ecx, 3
xor eax, dword [ebx + ecx*4 + 0x14]
mov ecx, edx
shl ecx, 3
mov dword [ebx + ecx*4 + 0x34], eax
mov ecx, edx
shl ecx, 3
xor eax, dword [ebx + ecx*4 + 0x18]
mov ecx, edx
shl ecx, 3
mov dword [ebx + ecx*4 + 0x38], eax
mov ecx, edx
shl ecx, 3
xor eax, dword [ebx + ecx*4 + 0x1c]
mov ecx, edx
shl ecx, 3
mov dword [ebx + ecx*4 + 0x3c], eax
inc edx
cmp edx, 7
jb 0x543ad2
pop edi
pop esi
pop ebx
pop ebp
ret