Function at 0x548bf0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x264
mov eax, dword [0x6a56e8]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov eax, dword [ebp + 8]
add eax, 0x548
mov dword [ebp - 0x218], eax
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xc0], 0
mov dword [ebp - 0x210], 2
jmp 0x548c3a
mov edx, dword [ebp - 0x210]
add edx, 1
mov dword [ebp - 0x210], edx
cmp dword [ebp - 0x210], 0x40
jae 0x548dd8
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x210]
movzx ecx, byte [eax + 0x2a98]
mov dword [ebp - 0x248], ecx
mov edx, dword [ebp - 0x248]
shr edx, 1
sub edx, 1
mov dword [ebp - 0x224], edx
mov eax, dword [ebp - 0x248]
and eax, 1
or eax, 2
mov ecx, dword [ebp - 0x224]
shl eax, cl
mov dword [ebp - 0x234], eax
mov ecx, dword [ebp - 0x234]
shl ecx, 1
mov edx, dword [ebp + 8]
lea eax, [edx + ecx*2 + 0x2198]
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x23c], 0
mov dword [ebp - 0x238], 1
mov ecx, dword [ebp - 0x210]
mov dword [ebp - 0x244], ecx
mov edx, 1
mov ecx, dword [ebp - 0x224]
shl edx, cl
mov dword [ebp - 0x264], edx
mov eax, dword [ebp - 0x234]
add eax, dword [ebp - 0x210]
mov dword [ebp - 0x234], eax
cmp dword [ebp - 0x224], 0
je 0x548d68
mov ecx, dword [ebp - 0x244]
and ecx, 1
mov dword [ebp - 0x24c], ecx
mov edx, dword [ebp - 0x244]
shr edx, 1
mov dword [ebp - 0x244], edx
mov eax, dword [ebp - 0x238]
mov ecx, dword [ebp - 0x250]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x24c]
neg eax
and eax, 0x7ff
xor edx, eax
shr edx, 4
mov ecx, dword [ebp - 0x218]
mov eax, dword [ebp - 0x23c]
add eax, dword [ecx + edx*4]
mov dword [ebp - 0x23c], eax
mov ecx, dword [ebp - 0x238]
mov edx, dword [ebp - 0x24c]
lea eax, [edx + ecx*2]
mov dword [ebp - 0x238], eax
mov ecx, dword [ebp - 0x224]
sub ecx, 1
mov dword [ebp - 0x224], ecx
jne 0x548cee
mov edx, dword [ebp - 0x238]
mov eax, dword [ebp - 0x250]
movzx ecx, word [eax + edx*2]
mov dword [ebp - 0x254], ecx
mov edx, dword [ebp - 0x254]
shr edx, 4
mov eax, dword [ebp - 0x218]
mov ecx, dword [ebp - 0x23c]
add ecx, dword [eax + edx*4]
mov edx, dword [ebp - 0x234]
mov dword [ebp + edx*4 - 0x204], ecx
mov eax, dword [ebp - 0x254]
xor eax, 0x7ff
shr eax, 4
mov ecx, dword [ebp - 0x218]
mov edx, dword [ebp - 0x23c]
add edx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x234]
add eax, dword [ebp - 0x264]
mov dword [ebp + eax*4 - 0x204], edx
jmp 0x548c2b
mov dword [ebp - 0x22c], 0
jmp 0x548df3
mov ecx, dword [ebp - 0x22c]
add ecx, 1
mov dword [ebp - 0x22c], ecx
cmp dword [ebp - 0x22c], 4
jae 0x549263
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc8]
add eax, 1
shr eax, 1
mov dword [ebp - 0x25c], eax
mov ecx, dword [ebp - 0x22c]
shl ecx, 8
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 0x1018]
mov dword [ebp - 0x214], eax
mov ecx, dword [ebp - 0x22c]
shl ecx, 7
mov edx, dword [ebp + 8]
lea eax, [edx + ecx + 0x1f98]
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x20c], 0
jmp 0x548e61
mov ecx, dword [ebp - 0x20c]
add ecx, 1
mov dword [ebp - 0x20c], ecx
mov edx, dword [ebp - 0x20c]
cmp edx, dword [ebp - 0x25c]
jae 0x549099
mov eax, dword [ebp - 0x20c]
add eax, 0x20
mov dword [ebp - 0x208], eax
mov ecx, dword [ebp - 0x208]
and ecx, 1
mov dword [ebp - 0x220], ecx
mov edx, dword [ebp - 0x208]
shr edx, 1
mov dword [ebp - 0x208], edx
mov eax, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x228]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x220]
neg eax
and eax, 0x7ff
xor edx, eax
shr edx, 4
mov ecx, dword [ebp - 0x218]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x21c], edx
mov eax, dword [ebp - 0x208]
and eax, 1
mov dword [ebp - 0x220], eax
mov ecx, dword [ebp - 0x208]
shr ecx, 1
mov dword [ebp - 0x208], ecx
mov edx, dword [ebp - 0x208]
mov eax, dword [ebp - 0x228]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0x220]
neg edx
and edx, 0x7ff
xor ecx, edx
shr ecx, 4
mov eax, dword [ebp - 0x218]
mov edx, dword [ebp - 0x21c]
add edx, dword [eax + ecx*4]
mov dword [ebp - 0x21c], edx
mov eax, dword [ebp - 0x208]
and eax, 1
mov dword [ebp - 0x220], eax
mov ecx, dword [ebp - 0x208]
shr ecx, 1
mov dword [ebp - 0x208], ecx
mov edx, dword [ebp - 0x208]
mov eax, dword [ebp - 0x228]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0x220]
neg edx
and edx, 0x7ff
xor ecx, edx
shr ecx, 4
mov eax, dword [ebp - 0x218]
mov edx, dword [ebp - 0x21c]
add edx, dword [eax + ecx*4]
mov dword [ebp - 0x21c], edx
mov eax, dword [ebp - 0x208]
and eax, 1
mov dword [ebp - 0x220], eax
mov ecx, dword [ebp - 0x208]
shr ecx, 1
mov dword [ebp - 0x208], ecx
mov edx, dword [ebp - 0x208]
mov eax, dword [ebp - 0x228]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0x220]
neg edx
and edx, 0x7ff
xor ecx, edx
shr ecx, 4
mov eax, dword [ebp - 0x218]
mov edx, dword [ebp - 0x21c]
add edx, dword [eax + ecx*4]
mov dword [ebp - 0x21c], edx
mov eax, dword [ebp - 0x208]
and eax, 1
mov dword [ebp - 0x220], eax
mov ecx, dword [ebp - 0x208]
shr ecx, 1
mov dword [ebp - 0x208], ecx
mov edx, dword [ebp - 0x208]
mov eax, dword [ebp - 0x228]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0x220]
neg edx
and edx, 0x7ff
xor ecx, edx
shr ecx, 4
mov eax, dword [ebp - 0x218]
mov edx, dword [ebp - 0x21c]
add edx, dword [eax + ecx*4]
mov dword [ebp - 0x21c], edx
mov eax, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x228]
movzx edx, word [ecx + eax*2 + 0x40]
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x258]
shr eax, 4
mov ecx, dword [ebp - 0x218]
mov edx, dword [ebp - 0x21c]
add edx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x20c]
shl eax, 1
mov ecx, dword [ebp - 0x214]
mov dword [ecx + eax*4], edx
mov edx, dword [ebp - 0x258]
xor edx, 0x7ff
shr edx, 4
mov eax, dword [ebp - 0x218]
mov ecx, dword [ebp - 0x21c]
add ecx, dword [eax + edx*4]
mov edx, dword [ebp - 0x20c]
shl edx, 1
mov eax, dword [ebp - 0x214]
mov dword [eax + edx*4 + 4], ecx
jmp 0x548e52
mov dword [ebp - 0x240], 0x20
mov dword [ebp - 0x20c], 7
jmp 0x5490be
mov ecx, dword [ebp - 0x20c]
add ecx, 1
mov dword [ebp - 0x20c], ecx
mov edx, dword [ebp - 0x20c]
cmp edx, dword [ebp - 0x25c]
jae 0x54912f
mov eax, dword [ebp - 0x20c]
shl eax, 1
mov ecx, dword [ebp - 0x214]
mov edx, dword [ecx + eax*4]
add edx, dword [ebp - 0x240]
mov eax, dword [ebp - 0x20c]
shl eax, 1
mov ecx, dword [ebp - 0x214]
mov dword [ecx + eax*4], edx
mov edx, dword [ebp - 0x20c]
shl edx, 1
mov eax, dword [ebp - 0x214]
mov ecx, dword [eax + edx*4 + 4]
add ecx, dword [ebp - 0x240]
mov edx, dword [ebp - 0x20c]
shl edx, 1
mov eax, dword [ebp - 0x214]
mov dword [eax + edx*4 + 4], ecx
mov ecx, dword [ebp - 0x240]
add ecx, 0x10
mov dword [ebp - 0x240], ecx
jmp 0x5490af
mov edx, dword [ebp - 0x22c]
shl edx, 9
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 0x1418]
mov dword [ebp - 0x230], ecx
mov edx, 4
imul eax, edx, 0
mov ecx, 4
imul edx, ecx, 0
mov ecx, dword [ebp - 0x230]
mov esi, dword [ebp - 0x214]
mov eax, dword [esi + eax]
mov dword [ecx + edx], eax
mov ecx, 4
shl ecx, 0
mov edx, 4
shl edx, 0
mov eax, dword [ebp - 0x230]
mov esi, dword [ebp - 0x214]
mov ecx, dword [esi + ecx]
mov dword [eax + edx], ecx
mov edx, 4
shl edx, 1
mov eax, 4
shl eax, 1
mov ecx, dword [ebp - 0x230]
mov esi, dword [ebp - 0x214]
mov edx, dword [esi + edx]
mov dword [ecx + eax], edx
mov eax, 4
imul ecx, eax, 3
mov edx, 4
imul eax, edx, 3
mov edx, dword [ebp - 0x230]
mov esi, dword [ebp - 0x214]
mov ecx, dword [esi + ecx]
mov dword [edx + eax], ecx
mov dword [ebp - 0x210], 4
jmp 0x5491e9
mov edx, dword [ebp - 0x210]
add edx, 2
mov dword [ebp - 0x210], edx
cmp dword [ebp - 0x210], 0x80
jae 0x54925e
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x210]
movzx ecx, byte [eax + 0x2a98]
mov edx, dword [ebp - 0x214]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0x260], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0x260]
add edx, dword [ebp + ecx*4 - 0x204]
mov eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x230]
mov dword [ecx + eax*4], edx
mov edx, dword [ebp - 0x210]
mov eax, dword [ebp - 0x260]
add eax, dword [ebp + edx*4 - 0x200]
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0x230]
mov dword [edx + ecx*4 + 4], eax
jmp 0x5491da
jmp 0x548de4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.006158c5
mov esp, ebp
pop ebp
ret 4