Function at 0x54b0c0
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 0x54b174
mov dword [esp + 8], 0xd
xor ecx, ecx
mov dword [esp + 0xc], 0xc500ee
mov dword [esp + 0x10], 0xcb00c4
mov dword [esp + 0x14], 0xcb00c1
mov dword [esp + 0x18], 0xf3008f
mov dword [esp + 0x1c], 0xc000d9
mov dword [esp + 0x20], 0xd900dc
mov dword [esp + 0x24], 0xb600d0
nop dword [eax + eax]
lea eax, [ecx + 0xa9]
xor word [esp + ecx*2 + 0xc], ax
inc ecx
mov eax, dword [esp + 8]
cmp ecx, eax
jb 0x54b120
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 0x54b151
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 0x54b211
mov eax, 0xe
mov dword [esp + 0xc], 0xc300e4
mov dword [esp + 8], eax
xor ecx, ecx
mov dword [esp + 0x10], 0xde00c8
mov dword [esp + 0x14], 0xdd00c2
mov dword [esp + 0x18], 0xd600c0
mov dword [esp + 0x1c], 0x9200c5
mov dword [esp + 0x20], 0xd000f6
mov dword [esp + 0x24], 0xd300d2
mov dword [esp + 0x28], 0xb7
nop dword [eax + eax]
lea eax, [ecx + 0xa9]
xor word [esp + ecx*2 + 0xc], ax
inc ecx
mov eax, dword [esp + 8]
cmp ecx, eax
jb 0x54b1d0
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 0x54b201
jmp 0x54b15c
cmp edx, 2
jne 0x54b276
lea ecx, [esp + 8]
mov dword [esp + 8], 0xf
mov dword [esp + 0xc], 0xc500e4
mov dword [esp + 0x10], 0xc500d1
mov dword [esp + 0x14], 0xc200c1
mov dword [esp + 0x18], 0x9000ce
mov dword [esp + 0x1c], 0xdb00f7
mov dword [esp + 0x20], 0xd100c1
mov dword [esp + 0x24], 0xd900d3
mov dword [esp + 0x28], 0xb800cf
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 0x54b2e3
lea ecx, [esp + 8]
mov dword [esp + 8], 0x11
mov dword [esp + 0xc], 0xc400e0
mov dword [esp + 0x10], 0xc900df
mov dword [esp + 0x14], 0xc000df
mov dword [esp + 0x18], 0xc400ca
mov dword [esp + 0x1c], 0xf70091
mov dword [esp + 0x20], 0xc400cb
mov dword [esp + 0x24], 0xd900d9
mov dword [esp + 0x28], 0xdd00c5
mov dword [esp + 0x2c], 0xba00cb
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 0x54b320
lea ecx, [esp + 8]
mov dword [esp + 8], 5
mov dword [esp + 0xc], 0xda00e6
mov dword [esp + 0x10], 0xde00ce
mov dword [esp + 0x14], 0xae00cc
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 0x54b36d
lea ecx, [esp + 8]
mov dword [esp + 8], 9
mov dword [esp + 0xc], 0xda00e6
mov dword [esp + 0x10], 0xde00ce
mov dword [esp + 0x14], 0x8e00cc
mov dword [esp + 0x18], 0xd500e1
mov dword [esp + 0x1c], 0xb200c6
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 0x54b3d2
lea ecx, [esp + 8]
mov dword [esp + 8], 0xe
mov dword [esp + 0xc], 0xcb00f0
mov dword [esp + 0x10], 0xc800c5
mov dword [esp + 0x14], 0xd600c8
mov dword [esp + 0x18], 0xf2008f
mov dword [esp + 0x1c], 0xdd00c3
mov dword [esp + 0x20], 0xc700c4
mov dword [esp + 0x24], 0xc400d0
mov dword [esp + 0x28], 0xb7
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], 0xc500e7
mov dword [esp + 0x10], 0xc900c5
mov dword [esp + 0x14], 0xad
call fcn.00403e20
push eax
mov ecx, esi
call fcn.004040b0
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret