Function at 0x543290
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x5d87b6
push eax
mov eax, 0xd458
mov dword fs:[0], esp
call fcn.005c3dc0
mov al, byte [esp + 0x1b]
push ebx
push ebp
push esi
mov ebp, ecx
push edi
push 0
lea ecx, [esp + 0x30]
mov byte [esp + 0x30], al
call fcn.00402850
mov edi, 0x5ec944
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x30]
push ebx
call fcn.00402980
test al, al
je 0x54330e
mov edi, dword [esp + 0x30]
mov ecx, ebx
mov edx, ecx
mov esi, 0x5ec944
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], ebx
mov byte [eax + ebx], 0
mov edx, dword [esp + 0xd478]
lea ecx, [esp + 0x2c]
push ecx
push edx
mov ecx, ebp
mov dword [esp + 0xd478], 0
call fcn.005428d0
push 1
lea ecx, [esp + 0x30]
mov esi, eax
mov dword [esp + 0xd474], 0xffffffff
call fcn.00402850
test esi, esi
je 0x543350
mov eax, esi
jmp 0x5434dc
mov al, byte [ebp + 0x27]
test al, al
jne 0x543473
mov eax, dword [ebp + 0xc]
inc eax
push eax
push 0x10
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
lea ebx, [ebp + 8]
test eax, eax
mov dword [ebx], eax
jne 0x543383
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0xc]
mov eax, 3
jmp 0x5434dc
mov ecx, dword [ebp + 0xc]
mov byte [ecx + eax], 0
mov esi, dword [ebp + 0x28]
cmp dword [ebp + 0xc], esi
je 0x543467
xor edi, edi
mov dword [esp + 0x10], 0x5daf40
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
push esi
mov dword [esp + 0xd474], 1
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], edi
call fcn.0054a1d0
lea ecx, [esp + 0x14]
add esp, 4
lea edx, [esp + 0x10]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 0x28]
mov dword [esp + 0x24], edx
mov edx, dword [ebp]
push ecx
push eax
mov ecx, ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], esi
call dword [edx + 0x44]
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x14]
push edi
push edx
push ebx
push eax
lea ecx, [esp + 0x4c]
call fcn.0054a000
mov eax, dword [esp + 0x20]
mov dword [esp + 0xd470], 0xffffffff
cmp eax, edi
mov dword [esp + 0x10], 0x5daf40
je 0x543455
lea ecx, [esp + 0x10]
cmp eax, ecx
jne 0x54343b
mov edx, dword [esp + 0x14]
push edx
call fcn.0054a2d0
add esp, 4
jmp 0x54344d
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x14], ecx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov dword [eax + 0x10], edx
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], 0x5daf3c
jmp 0x543473
mov eax, dword [ebx]
mov edx, dword [ebp]
push esi
push eax
mov ecx, ebp
call dword [edx + 0x44]
mov ecx, ebp
call fcn.005428b0
test eax, eax
je 0x54348d
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0xc]
mov eax, 5
jmp 0x5434dc
mov eax, dword [ebp + 8]
cmp dword [eax], 0x314b5059
jne 0x5434d3
mov eax, dword [ebp + 0xc]
mov ecx, 4
cmp eax, ecx
mov byte [ebp + 0x24], 1
jbe 0x5434cb
mov eax, dword [ebp + 8]
lea esi, [eax + ecx]
mov al, byte [eax + ecx]
mov dl, al
and dl, 0xf
shl dl, 4
shr al, 4
add dl, al
xor dl, 0xcc
inc ecx
mov byte [esi], dl
mov eax, dword [ebp + 0xc]
cmp ecx, eax
jb 0x5434a8
mov eax, dword [ebp + 8]
add eax, 4
jmp 0x5434d7
mov byte [ebp + 0x24], 0
mov dword [ebp + 0x10], eax
xor eax, eax
mov ecx, dword [esp + 0xd468]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xd464
ret 4