Function at 0x54dbd0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xc
call fcn.00581890
mov ecx, dword [esp + 0x10]
mov edx, 0x618824
push ebx
push ebp
push esi
movzx esi, byte [ecx]
movzx eax, byte [ecx + 1]
movzx ebx, byte [ecx + 8]
shl esi, 8
or esi, eax
movzx ebp, byte [ecx + 0xc]
movzx eax, byte [ecx + 2]
shl esi, 8
or esi, eax
shl ebx, 8
movzx eax, byte [ecx + 3]
push edi
movzx edi, byte [ecx + 4]
shl edi, 8
shl esi, 8
or esi, eax
shl ebp, 8
movzx eax, byte [ecx + 5]
xor esi, 0xa3b1bac6
or edi, eax
mov dword [esp + 0x10], edx
movzx eax, byte [ecx + 6]
shl edi, 8
or edi, eax
movzx eax, byte [ecx + 7]
shl edi, 8
or edi, eax
movzx eax, byte [ecx + 9]
or ebx, eax
xor edi, 0x56aa3350
movzx eax, byte [ecx + 0xa]
shl ebx, 8
or ebx, eax
movzx eax, byte [ecx + 0xb]
shl ebx, 8
or ebx, eax
movzx eax, byte [ecx + 0xd]
or ebp, eax
xor ebx, 0x677d9197
movzx eax, byte [ecx + 0xe]
shl ebp, 8
or ebp, eax
movzx eax, byte [ecx + 0xf]
shl ebp, 8
or ebp, eax
mov eax, dword [esp + 0x24]
xor ebp, 0xb27022dc
lea ecx, [eax + 8]
mov dword [esp + 0x20], ecx
mov ecx, 0x618820
sub ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, edx
sub ecx, eax
mov dword [esp + 0x18], ecx
nop dword [eax]
mov ecx, dword [edx - 4]
xor ecx, ebp
xor ecx, ebx
xor ecx, edi
mov eax, ecx
shr eax, 0x18
movzx edx, byte [eax + 0x618310]
mov eax, ecx
shr eax, 0x10
movzx eax, al
shl edx, 8
movzx eax, byte [eax + 0x618310]
or edx, eax
mov eax, ecx
shr eax, 8
movzx eax, al
shl edx, 8
movzx eax, byte [eax + 0x618310]
or edx, eax
movzx eax, cl
shl edx, 8
movzx eax, byte [eax + 0x618310]
or edx, eax
mov ecx, edx
mov eax, edx
ror eax, 9
rol ecx, 0xd
xor ecx, eax
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor esi, edx
mov ecx, dword [ecx]
xor ecx, ebp
xor ecx, ebx
xor ecx, esi
mov eax, ecx
shr eax, 0x18
movzx edx, byte [eax + 0x618310]
mov eax, ecx
shr eax, 0x10
movzx eax, al
shl edx, 8
movzx eax, byte [eax + 0x618310]
or edx, eax
mov eax, ecx
shr eax, 8
movzx eax, al
shl edx, 8
movzx eax, byte [eax + 0x618310]
or edx, eax
movzx eax, cl
shl edx, 8
movzx eax, byte [eax + 0x618310]
or edx, eax
mov ecx, edx
mov eax, edx
ror eax, 9
rol ecx, 0xd
xor ecx, eax
mov eax, dword [esp + 0x14]
xor edi, ecx
mov ecx, dword [esp + 0x20]
xor edi, edx
mov ecx, dword [eax + ecx]
xor ecx, ebp
xor ecx, edi
xor ecx, esi
mov eax, ecx
shr eax, 0x18
movzx edx, byte [eax + 0x618310]
mov eax, ecx
shr eax, 0x10
movzx eax, al
shl edx, 8
movzx eax, byte [eax + 0x618310]
or edx, eax
mov eax, ecx
shl edx, 8
shr eax, 8
movzx eax, al
movzx eax, byte [eax + 0x618310]
or edx, eax
movzx eax, cl
shl edx, 8
movzx eax, byte [eax + 0x618310]
or edx, eax
mov ecx, edx
mov eax, edx
ror eax, 9
rol ecx, 0xd
xor ecx, eax
mov eax, dword [esp + 0x20]
xor ebx, ecx
mov ecx, dword [esp + 0x18]
xor ebx, edx
mov ecx, dword [ecx + eax]
xor ecx, ebx
xor ecx, edi
xor ecx, esi
mov eax, ecx
shr eax, 0x18
movzx edx, byte [eax + 0x618310]
mov eax, ecx
shr eax, 0x10
movzx eax, al
shl edx, 8
movzx eax, byte [eax + 0x618310]
or edx, eax
mov eax, ecx
shr eax, 8
movzx eax, al
shl edx, 8
movzx eax, byte [eax + 0x618310]
or edx, eax
movzx eax, cl
shl edx, 8
movzx eax, byte [eax + 0x618310]
or edx, eax
mov ecx, edx
mov eax, edx
ror eax, 9
rol ecx, 0xd
xor ecx, eax
mov eax, dword [esp + 0x20]
xor ebp, ecx
xor ebp, edx
mov edx, dword [esp + 0x10]
add edx, 0x10
mov dword [eax - 8], esi
mov dword [eax - 4], edi
mov dword [eax], ebx
mov dword [eax + 4], ebp
add eax, 0x10
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], eax
cmp edx, 0x6188a4
jl 0x54dca0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xc
ret