Function at 0x10054e60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov eax, dword [0x1010f16c]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 0x120], eax
push 0
mov dword [ebp - 0x110], esi
call fcn.100b8822
mov ecx, eax
mov dword [ebp - 0x118], edx
movzx eax, word [esi + 2]
add esp, 4
cdq
mov dword [ebp - 0xc], eax
movzx eax, word [esi]
mov esi, ecx
sub esi, dword [ebp - 0xc]
mov dword [ebp - 0x114], edx
cdq
mov dword [ebp - 0x11c], ecx
mov edi, edx
mov ecx, dword [ebp - 0x118]
mov ebx, eax
sbb ecx, dword [ebp - 0x114]
push edi
push ebx
push ecx
push esi
call fcn.100918f0
mov ecx, dword [ebp - 0xc]
mov esi, eax
add ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x114]
adc eax, dword [ebp - 0x118]
push edi
push ebx
push eax
push ecx
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0x108], edx
call fcn.100918f0
mov ebx, dword [ebp - 0x108]
mov ecx, edx
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x11c], ecx
cmp ebx, ecx
ja 0x1005513a
jb 0x10054f21
cmp esi, eax
ja 0x1005513a
mov ecx, dword [ebp - 0x110]
lea edx, [ecx + 0x10]
mov dword [ebp - 0x114], edx
movzx eax, byte [ecx + 6]
lea ecx, [ebp - 0x104]
push eax
call fcn.10001b40
mov ecx, dword [ebp - 0xa4]
lea edi, [ebp - 0x10]
add esp, 4
mov eax, ebx
add dword [ebp - 0xec], 0x40
bswap esi
adc dword [ebp - 0xe8], 0
bswap eax
mov dword [ebp - 0xc], esi
mov esi, 8
mov dword [ebp - 0x10], eax
nop dword [eax + eax]
mov al, byte [edi]
lea edi, [edi + 1]
mov byte [ebp + ecx - 0xe4], al
dec esi
mov ecx, dword [ebp - 0xa4]
inc ecx
mov dword [ebp - 0xa4], ecx
cmp ecx, 0x40
jne 0x10054fa0
lea ecx, [ebp - 0x104]
call fcn.10001880
mov ecx, dword [ebp - 0xa4]
test esi, esi
jne 0x10054f70
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x104]
call fcn.10001ac0
add dword [ebp - 0x84], 0xa0
lea edi, [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
mov esi, 0x14
adc dword [ebp - 0x80], 0
nop dword [eax + eax]
mov al, byte [edi]
lea edi, [edi + 1]
mov byte [ebp + ecx - 0x7c], al
dec esi
mov ecx, dword [ebp - 0x3c]
inc ecx
mov dword [ebp - 0x3c], ecx
cmp ecx, 0x40
jne 0x10054ff4
lea ecx, [ebp - 0x9c]
call fcn.10001880
mov ecx, dword [ebp - 0x3c]
test esi, esi
jne 0x10054fd0
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x9c]
call fcn.10001ac0
movzx eax, byte [ebp - 0x11]
mov esi, dword [ebp - 0x110]
and eax, 0xf
mov ecx, dword [ebp + eax - 0x24]
movzx esi, byte [esi + 5]
bswap ecx
mov eax, esi
and ecx, 0x7fffffff
sub eax, 6
je 0x10055058
sub eax, 1
je 0x10055046
sub eax, 1
jne 0x1005506a
mov eax, 0x55e63b89
mul ecx
shr edx, 0x19
imul eax, edx, 0xfa0a1f00
jmp 0x10055068
mov eax, 0x6b5fca6b
mul ecx
shr edx, 0x16
imul eax, edx, 0xff676980
jmp 0x10055068
mov eax, 0x431bde83
mul ecx
shr edx, 0x12
imul eax, edx, 0xfff0bdc0
add ecx, eax
push ecx
push esi
push str._.u
lea eax, [ebp - 0x34]
push 0x10
push eax
call fcn.100379c0
mov ecx, dword [ebp + 0xc]
add esp, 0x14
cmp eax, ecx
jne 0x100550db
mov eax, dword [ebp + 8]
lea esi, [ebp - 0x34]
xor ebx, ebx
mov edi, ecx
cmp ecx, 4
jb 0x100550b4
mov edx, ecx
shr edx, 2
nop word [eax + eax]
mov ecx, dword [eax]
sub edi, 4
xor ecx, dword [esi]
add eax, 4
or ebx, ecx
add esi, 4
sub edx, 1
jne 0x100550a0
test edi, edi
je 0x100550d1
sub esi, eax
nop word [eax + eax]
movzx edx, byte [esi + eax]
movzx ecx, byte [eax]
inc eax
xor edx, ecx
or ebx, edx
sub edi, 1
jne 0x100550c0
test ebx, ebx
je 0x10055116
mov ebx, dword [ebp - 0x108]
mov esi, dword [ebp - 0x10c]
add esi, 1
mov dword [ebp - 0x10c], esi
adc ebx, 0
mov dword [ebp - 0x108], ebx
cmp ebx, dword [ebp - 0x11c]
ja 0x1005513a
jb 0x10055105
cmp esi, dword [ebp - 0x118]
ja 0x1005513a
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x114]
jmp 0x10054f30
mov ebx, dword [ebp - 0x110]
mov esi, dword [ebp - 0x108]
cmp byte [ebx + 4], 0
je 0x1005514f
cmp esi, dword [ebx + 0xc]
jb 0x1005513a
mov edx, dword [ebp - 0x10c]
ja 0x10055155
cmp edx, dword [ebx + 8]
jae 0x10055155
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100908e7
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebp - 0x10c]
mov ecx, edx
mov eax, esi
add ecx, 1
mov dword [ebx + 8], ecx
mov ecx, dword [ebp - 8]
adc eax, 0
mov dword [ebx + 0xc], eax
xor ecx, ebp
mov eax, dword [ebp - 0x120]
pop edi
mov dword [eax + 4], esi
pop esi
mov dword [eax], edx
mov al, 1
pop ebx
call fcn.100908e7
mov esp, ebp
pop ebp
ret 0xc