Function at 0x1054b4f
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x1426ed0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x30], eax
xor eax, eax
push ebx
push esi
push edi
mov byte [ebp - 0x24], 0
lea edi, [ebp - 0x23]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
cmp dword [0x1427d00], 1
mov byte [ebp - 0x14], 0
lea edi, [ebp - 0x13]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
je 0x1054b9b
mov esi, 0x8000ffff
jmp 0x1054d19
mov ecx, 0x1427cd0
call fcn.01045628
mov esi, eax
test esi, esi
jl 0x1054d19
cmp dword [ebp + 0x10], 0x10
je 0x1054bbf
mov esi, 0x8007000d
jmp 0x1054d19
and dword [ebp - 0x2c], 0
lea eax, [ebp - 0x28]
push eax
push 0x10
push dword [ebp + 8]
call fcn.01051bfe
mov esi, eax
test esi, esi
jl 0x1054d19
mov ebx, dword [ebp - 0x28]
test ebx, ebx
jbe 0x1054c43
and dword [ebp - 0x28], 0
test ebx, ebx
jbe 0x1054c43
xor edi, edi
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 8]
jae 0x1054d51
mov ecx, dword [ebp + 0xc]
mov cl, byte [eax + ecx]
xor cl, byte [ebp + edi - 0x24]
mov byte [ebp + edi - 0x14], cl
lea ecx, [ebp - 0x2c]
push ecx
push 1
push eax
call fcn.01043e7f
mov esi, eax
test esi, esi
jl 0x1054d19
inc edi
cmp edi, 0x10
jb 0x1054bec
push 0x10
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0116a6b0
mov esi, eax
test esi, esi
jl 0x1054d19
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jb 0x1054bea
xor esi, esi
test ebx, ebx
je 0x1054d5f
mov eax, ebx
shl eax, 4
mov ecx, eax
shr ecx, 4
cmp ecx, ebx
je 0x1054d58
mov eax, 0x80070216
mov esi, eax
mov ecx, dword [0x1426c54]
cmp ecx, 0x1426c54
je 0x1054c8d
test byte [ecx + 0x3c], 2
je 0x1054c8d
push eax
push 0x1002f44
push 0xc
push dword [ecx + 0x34]
push dword [ecx + 0x30]
call fcn.01043c41
test esi, esi
jl 0x1054d19
lea eax, [ebp - 0x28]
push eax
push ebx
push dword [ebp + 8]
call fcn.0104ff60
mov esi, eax
test esi, esi
jl 0x1054d19
mov ebx, dword [ebp - 0x28]
cmp ebx, 0x10
jae 0x1054d51
xor eax, eax
lea edi, [ebp - 0x14]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor edi, edi
test ebx, ebx
jbe 0x1054cf0
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 8]
jae 0x1054d51
mov ecx, dword [ebp + 0xc]
mov cl, byte [eax + ecx]
mov byte [ebp + edi - 0x14], cl
lea ecx, [ebp - 0x2c]
push ecx
push 1
push eax
call fcn.01043e7f
mov esi, eax
test esi, esi
jl 0x1054d19
inc edi
cmp edi, ebx
jb 0x1054cc3
mov byte [ebp + ebx - 0x14], 0x80
xor eax, eax
mov cl, byte [ebp + eax - 0x24]
xor byte [ebp + eax - 0x14], cl
inc eax
cmp eax, 0x10
jb 0x1054cf7
push 0x10
push dword [ebp - 0x30]
lea eax, [ebp - 0x14]
push eax
call fcn.0116a6b0
mov esi, eax
test esi, esi
jge 0x1054d3e
mov eax, dword [0x1426c54]
cmp eax, 0x1426c54
je 0x1054d3e
test byte [eax + 0x3c], 2
je 0x1054d3e
push esi
push 0x1002f24
push 0xa
push dword [eax + 0x34]
push dword [eax + 0x30]
call fcn.01043c41
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.01043035
leave
ret 0x10
mov esi, 0x80004005
jmp 0x1054d19
mov ebx, eax
jmp 0x1054c8d
xor ebx, ebx
xor esi, esi
jmp 0x1054c8d