Function at 0x549fa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push esi
mov esi, ecx
mov dword [esp + 4], esi
cmp edx, 1
jne 0x54a054
mov dword [esp + 8], 0xd
xor ecx, ecx
mov dword [esp + 0xc], 0xd600ff
mov dword [esp + 0x10], 0xdc00d5
mov dword [esp + 0x14], 0xd800d0
mov dword [esp + 0x18], 0xfc009e
mov dword [esp + 0x1c], 0xb300a8
mov dword [esp + 0x20], 0xae00ad
mov dword [esp + 0x24], 0xc500a1
nop dword [eax + eax]
lea eax, [ecx + 0xb8]
xor word [esp + ecx*2 + 0xc], ax
inc ecx
mov eax, dword [esp + 8]
cmp ecx, eax
jb 0x54a000
xor ecx, ecx
mov word [esp + eax*2 + 0xc], cx
xor eax, eax
mov dword [esi + 0x10], ecx
lea ecx, [esp + 0xc]
mov dword [esi + 0x14], 7
lea edx, [ecx + 2]
mov word [esi], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x54a031
sub ecx, edx
lea eax, [esp + 0xc]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.004044f0
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
cmp edx, 7
jne 0x54a0f1
mov eax, 0xe
mov dword [esp + 0xc], 0xd000f5
mov dword [esp + 8], eax
xor ecx, ecx
mov dword [esp + 0x10], 0xc900d9
mov dword [esp + 0x14], 0xce00d3
mov dword [esp + 0x18], 0xd900d1
mov dword [esp + 0x1c], 0xe100b4
mov dword [esp + 0x20], 0xa70087
mov dword [esp + 0x24], 0xa000a3
mov dword [esp + 0x28], 0xc6
nop dword [eax + eax]
lea eax, [ecx + 0xb8]
xor word [esp + ecx*2 + 0xc], ax
inc ecx
mov eax, dword [esp + 8]
cmp ecx, eax
jb 0x54a0b0
xor ecx, ecx
mov word [esp + eax*2 + 0xc], cx
xor eax, eax
mov dword [esi + 0x10], ecx
lea ecx, [esp + 0xc]
mov dword [esi + 0x14], 7
lea edx, [ecx + 2]
mov word [esi], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x54a0e1
jmp 0x54a03c
cmp edx, 2
jne 0x54a156
lea ecx, [esp + 8]
mov dword [esp + 8], 0xf
mov dword [esp + 0xc], 0xd600f5
mov dword [esp + 0x10], 0xd200c0
mov dword [esp + 0x14], 0xd100d0
mov dword [esp + 0x18], 0x9f00df
mov dword [esp + 0x1c], 0xa80086
mov dword [esp + 0x20], 0xa600b0
mov dword [esp + 0x24], 0xaa00a2
mov dword [esp + 0x28], 0xc700be
call fcn.00403e20
push eax
mov ecx, esi
call fcn.004040b0
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
cmp edx, 5
jne 0x54a1c3
lea ecx, [esp + 8]
mov dword [esp + 8], 0x11
mov dword [esp + 0xc], 0xd700f1
mov dword [esp + 0x10], 0xde00ce
mov dword [esp + 0x14], 0xd300ce
mov dword [esp + 0x18], 0xcb00db
mov dword [esp + 0x1c], 0x8400e0
mov dword [esp + 0x20], 0xb300ba
mov dword [esp + 0x24], 0xaa00a8
mov dword [esp + 0x28], 0xa200b4
mov dword [esp + 0x2c], 0xc900ba
call fcn.00403e20
push eax
mov ecx, esi
call fcn.004040b0
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
cmp edx, 3
jne 0x54a200
lea ecx, [esp + 8]
mov dword [esp + 8], 5
mov dword [esp + 0xc], 0xc900f7
mov dword [esp + 0x10], 0xc900df
mov dword [esp + 0x14], 0xbd00dd
call fcn.00403e20
push eax
mov ecx, esi
call fcn.004040b0
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
cmp edx, 4
jne 0x54a24d
lea ecx, [esp + 8]
mov dword [esp + 8], 9
mov dword [esp + 0xc], 0xc900f7
mov dword [esp + 0x10], 0xc900df
mov dword [esp + 0x14], 0x9d00dd
mov dword [esp + 0x18], 0xda00f0
mov dword [esp + 0x1c], 0xc100b7
call fcn.00403e20
push eax
mov ecx, esi
call fcn.004040b0
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
cmp edx, 6
jne 0x54a2b2
lea ecx, [esp + 8]
mov dword [esp + 8], 0xe
mov dword [esp + 0xc], 0xd800e1
mov dword [esp + 0x10], 0xdf00d4
mov dword [esp + 0x14], 0xc500d9
mov dword [esp + 0x18], 0xfd009e
mov dword [esp + 0x1c], 0xae00b2
mov dword [esp + 0x20], 0xb000b5
mov dword [esp + 0x24], 0xb700a1
mov dword [esp + 0x28], 0xc6
call fcn.00403e20
push eax
mov ecx, esi
call fcn.004040b0
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 8]
mov dword [esp + 8], 4
mov dword [esp + 0xc], 0xd600f6
mov dword [esp + 0x10], 0xde00d4
mov dword [esp + 0x14], 0xbc
call fcn.00403e20
push eax
mov ecx, esi
call fcn.004040b0
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret