Function at 0x54536b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
mov eax, dword [ebp + 0x14]
push ebx
xor ebx, ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 4], ebx
mov eax, dword [ebp + 0x10]
movsx eax, byte [eax + ebx + 0x4a]
test al, 1
je 0x54553c
mov ecx, eax
sar ecx, 2
and ecx, 1
mov edi, eax
mov dword [ebp - 0x18], ecx
mov ecx, dword [esi + 0xb0]
sar edi, 1
sar eax, 3
and eax, 1
and edi, 1
add ecx, ecx
cmp ebx, 4
mov dword [ebp - 0x14], eax
jl 0x5453df
jne 0x5453cc
mov edx, dword [esi + 0x410]
jmp 0x5453d2
mov edx, dword [esi + 0x414]
sar ecx, 1
mov eax, ecx
imul eax, dword [ebp + 0xc]
add eax, dword [ebp + 8]
jmp 0x5453fe
mov eax, dword [ebp + 0xc]
mov edx, dword [esi + 0x40c]
sar ebx, 1
lea eax, [ebx + eax*2]
mov ebx, dword [ebp - 4]
imul eax, ecx
and ebx, 1
add eax, ebx
mov ebx, dword [ebp + 8]
lea eax, [eax + ebx*2]
mov ebx, dword [esi + 0xd4]
mov dword [ebp - 8], ebx
mov ebx, eax
sub eax, ecx
shl ebx, 5
shl eax, 5
add eax, edx
lea ebx, [ebx + edx - 0x20]
xor edx, edx
cmp edi, edx
push 2
mov dword [ebp - 0x28], eax
pop ecx
je 0x5455ca
cmp dword [ebp - 0x18], edx
je 0x54559d
cmp dword [ebp - 0x14], edx
je 0x54543e
movsx ecx, word [eax - 0x20]
mov dword [ebp - 0xc], ecx
jmp 0x545441
mov dword [ebp - 0xc], edx
movsx eax, word [eax]
movsx ecx, word [ebx]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x10]
mov dword [ebp - 0x14], ecx
push dword [ebp - 4]
mov ecx, esi
call fcn.00544b03
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x18]
and dword [ebp - 0x10], 0
cdq
mov ecx, eax
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jge 0x5455a6
mov eax, dword [esi + 0xd8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], 1
mov ecx, dword [esi + 0xd0]
push dword [ebp + 0x10]
lea ecx, [ebp + ecx*2 - 0x64]
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x64]
push ecx
push eax
push dword [ebp - 4]
mov ecx, esi
call fcn.00544937
and dword [ebp - 0x14], 0
and dword [ebp - 0x18], 0
mov dword [ebp - 0xc], 1
mov ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov eax, ebx
shl eax, cl
mov ecx, dword [ebp + 0x14]
push 4
mov edi, dword [ecx + eax*4]
mov eax, dword [ebp - 0x24]
movsx ecx, word [eax + ebx*2]
mov eax, edi
sub eax, ecx
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, edi
cdq
mov edi, eax
xor edi, edx
sub edi, edx
mov eax, ebx
cdq
pop ebx
idiv ebx
mov edx, ecx
sar edx, 1
imul edx, eax
add edx, ecx
add dword [ebp - 0x14], edx
mov ecx, edi
sar ecx, 1
imul ecx, eax
add ecx, edi
add dword [ebp - 0x18], ecx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 8
jl 0x5454cb
mov eax, dword [ebp - 0x14]
add dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x24], 1
mov ebx, dword [ebp - 4]
mov dword [ebp + ebx*4 - 0x44], ecx
add dword [ebp + 0x14], 0x200
inc ebx
cmp ebx, 6
mov dword [ebp - 4], ebx
jl 0x54538a
xor ebx, ebx
cmp dword [ebp - 0x24], ebx
je 0x5456c2
mov ecx, dword [ebp - 0x1c]
xor eax, eax
cmp dword [ebp - 0x20], ecx
mov ecx, dword [ebp + 0x10]
setg al
mov dword [ebp - 4], ebx
mov dword [ebp - 0x28], eax
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x10]
test byte [eax + ebx + 0x4a], 1
je 0x5456ac
mov ecx, dword [esi + 0xb0]
add ecx, ecx
cmp ebx, 4
jl 0x5455fb
jne 0x5455e8
mov edx, dword [esi + 0x410]
jmp 0x5455ee
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov dword [ebp - 0x10], edx
mov eax, dword [esi + 0xcc]
push dword [ebp + 0x10]
lea eax, [ebp + eax*2 - 0x64]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x64]
push eax
push ebx
push dword [ebp - 4]
mov ecx, esi
call fcn.00544a2f
jmp 0x5454bc
cmp dword [ebp - 0x18], edx
je 0x545535
mov ecx, dword [esi + 0xd8]
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], 1
jmp 0x54549d
mov edx, dword [esi + 0x414]
sar ecx, 1
mov eax, ecx
imul eax, dword [ebp + 0xc]
add eax, dword [ebp + 8]
jmp 0x54561b
mov edi, dword [ebp + 0xc]
mov edx, dword [esi + 0x40c]
mov eax, ebx
sar eax, 1
lea eax, [eax + edi*2]
imul eax, ecx
mov edi, ebx
and edi, 1
add eax, edi
mov edi, dword [ebp + 8]
lea eax, [eax + edi*2]
mov edi, dword [ebp + ebx*4 - 0x44]
cmp edi, 2
je 0x5456ac
test edi, edi
push dword [ebp + 0x10]
jne 0x545658
mov ecx, dword [esi + 0xd4]
mov edi, dword [esi + 0xcc]
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x64]
push ecx
shl eax, 5
lea eax, [eax + edx - 0x20]
push eax
push ebx
mov ecx, esi
lea edi, [ebp + edi*2 - 0x64]
call fcn.00544a2f
jmp 0x545682
mov edi, dword [esi + 0xd8]
sub eax, ecx
lea ebx, [ebp - 0x64]
push ebx
mov ebx, dword [ebp - 4]
shl eax, 5
add eax, edx
mov dword [ebp - 0x24], edi
mov edi, dword [esi + 0xd0]
push eax
push ebx
mov ecx, esi
lea edi, [ebp + edi*2 - 0x64]
call fcn.00544937
movsx ecx, word [edi]
mov eax, dword [ebp + 0x14]
sub dword [eax], ecx
cmp dword [ebp - 0x28], 0
je 0x5456ac
xor edx, edx
inc edx
mov ecx, dword [ebp - 0x24]
mov eax, edx
shl eax, cl
mov ecx, dword [ebp + 0x14]
lea eax, [ecx + eax*4]
movsx ecx, word [edi + edx*2]
sub dword [eax], ecx
inc edx
cmp edx, 8
jl 0x545693
add dword [ebp + 0x14], 0x200
inc ebx
cmp ebx, 6
mov dword [ebp - 4], ebx
jl 0x545578
jmp 0x5456c9
mov eax, dword [ebp + 0x10]
or dword [eax + 0x1c], 0xffffffff
pop edi
pop esi
pop ebx
leave
ret 0x10