Function at 0x1014e5a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov dword [ebp - 4], ecx
mov eax, 0x1f
add ecx, 0x19f8
mov dword [ebp - 0xc], 3
push esi
mov dword [ebp - 8], ecx
push edi
xor edi, edi
lea esi, [ecx - 0x9c]
lea ebx, [edi + 0xc]
lea esp, [esp]
mov edx, dword [esi]
lea esi, [esi + 4]
mov ecx, edx
sar ecx, 0x1f
xor ecx, edx
or edi, ecx
dec ebx
jne 0x1014e5d0
bsr edx, edi
mov dword [ebp - 0x10], ebx
setne cl
test cl, cl
je 0x1014e5f7
mov ecx, 0x1f
sub ecx, edx
jmp 0x1014e5fc
mov ecx, 0x20
mov edx, dword [ebp - 8]
lea ebx, [ecx - 1]
xor ecx, ecx
test ebx, ebx
cmovs ebx, ecx
cmp eax, ebx
lea edi, [ecx + 0xc]
cmovl ebx, eax
xor esi, esi
mov ecx, dword [edx]
lea edx, [edx + 4]
mov eax, ecx
sar eax, 0x1f
xor eax, ecx
or esi, eax
dec edi
jne 0x1014e613
bsr ecx, esi
mov dword [ebp - 0x10], edi
setne al
test al, al
je 0x1014e63a
mov eax, 0x1f
sub eax, ecx
jmp 0x1014e63f
mov eax, 0x20
xor ecx, ecx
dec eax
cmovs eax, ecx
mov ecx, dword [ebp - 8]
cmp ebx, eax
cmovl eax, ebx
add ecx, 0x34
dec dword [ebp - 0xc]
mov dword [ebp - 8], ecx
jne 0x1014e5c1
mov ecx, dword [ebp - 4]
add ecx, 0xabc
mov dword [ebp - 0xc], 2
mov dword [ebp - 8], ecx
nop
xor edi, edi
lea esi, [ecx - 0xb8]
lea ebx, [edi + 0x17]
jmp 0x1014e680
mov edx, dword [esi]
lea esi, [esi + 4]
mov ecx, edx
sar ecx, 0x1f
xor ecx, edx
or edi, ecx
dec ebx
jne 0x1014e680
bsr edx, edi
mov dword [ebp - 0x10], ebx
setne cl
test cl, cl
je 0x1014e6a7
mov ecx, 0x1f
sub ecx, edx
jmp 0x1014e6ac
mov ecx, 0x20
mov edx, dword [ebp - 8]
lea ebx, [ecx - 1]
xor ecx, ecx
test ebx, ebx
cmovs ebx, ecx
cmp eax, ebx
lea edi, [ecx + 0x17]
cmovl ebx, eax
xor esi, esi
mov ecx, dword [edx]
lea edx, [edx + 4]
mov eax, ecx
sar eax, 0x1f
xor eax, ecx
or esi, eax
dec edi
jne 0x1014e6c3
bsr ecx, esi
mov dword [ebp - 0x10], edi
setne al
test al, al
je 0x1014e6ea
mov eax, 0x1f
sub eax, ecx
jmp 0x1014e6ef
mov eax, 0x20
xor ecx, ecx
dec eax
cmovs eax, ecx
mov ecx, dword [ebp - 8]
cmp ebx, eax
cmovl eax, ebx
add ecx, 0x5c
dec dword [ebp - 0xc]
mov dword [ebp - 8], ecx
jne 0x1014e670
mov ecx, dword [ebp - 4]
add ecx, 0xbd4
mov dword [ebp - 0xc], 2
mov dword [ebp - 8], ecx
nop
xor edi, edi
lea esi, [ecx - 0x60]
lea ebx, [edi + 0xc]
mov edx, dword [esi]
lea esi, [esi + 4]
mov ecx, edx
sar ecx, 0x1f
xor ecx, edx
or edi, ecx
dec ebx
jne 0x1014e728
bsr edx, edi
mov dword [ebp - 0x10], ebx
setne cl
test cl, cl
je 0x1014e74f
mov ecx, 0x1f
sub ecx, edx
jmp 0x1014e754
mov ecx, 0x20
mov edx, dword [ebp - 8]
lea ebx, [ecx - 1]
xor ecx, ecx
test ebx, ebx
cmovs ebx, ecx
cmp eax, ebx
lea edi, [ecx + 0xc]
cmovl ebx, eax
xor esi, esi
jmp 0x1014e770
mov ecx, dword [edx]
lea edx, [edx + 4]
mov eax, ecx
sar eax, 0x1f
xor eax, ecx
or esi, eax
dec edi
jne 0x1014e770
bsr ecx, esi
mov dword [ebp - 0x10], edi
setne al
test al, al
je 0x1014e797
mov eax, 0x1f
sub eax, ecx
jmp 0x1014e79c
mov eax, 0x20
xor ecx, ecx
dec eax
cmovs eax, ecx
mov ecx, dword [ebp - 8]
cmp ebx, eax
cmovl eax, ebx
add ecx, 0x30
dec dword [ebp - 0xc]
mov dword [ebp - 8], ecx
jne 0x1014e720
mov ecx, dword [ebp - 4]
add ecx, 0x1084
mov dword [ebp - 0xc], 0x17
mov dword [ebp - 8], ecx
lea esp, [esp]
xor edi, edi
lea esi, [ecx - 0x450]
lea ebx, [edi + 0xc]
jmp 0x1014e7e0
mov edx, dword [esi]
lea esi, [esi + 4]
mov ecx, edx
sar ecx, 0x1f
xor ecx, edx
or edi, ecx
dec ebx
jne 0x1014e7e0
bsr edx, edi
mov dword [ebp - 0x10], ebx
setne cl
test cl, cl
je 0x1014e807
mov ecx, 0x1f
sub ecx, edx
jmp 0x1014e80c
mov ecx, 0x20
mov edx, dword [ebp - 8]
lea ebx, [ecx - 1]
xor ecx, ecx
test ebx, ebx
cmovs ebx, ecx
cmp eax, ebx
lea edi, [ecx + 0xc]
cmovl ebx, eax
xor esi, esi
mov ecx, dword [edx]
lea edx, [edx + 4]
mov eax, ecx
sar eax, 0x1f
xor eax, ecx
or esi, eax
dec edi
jne 0x1014e823
bsr ecx, esi
mov dword [ebp - 0x10], edi
setne al
test al, al
je 0x1014e84a
mov eax, 0x1f
sub eax, ecx
jmp 0x1014e84f
mov eax, 0x20
xor ecx, ecx
dec eax
cmovs eax, ecx
mov ecx, dword [ebp - 8]
cmp ebx, eax
cmovl eax, ebx
add ecx, 0x30
dec dword [ebp - 0xc]
mov dword [ebp - 8], ecx
jne 0x1014e7d0
mov ecx, dword [ebp - 4]
add ecx, 0x1714
mov dword [ebp - 0xc], 0xc
mov dword [ebp - 8], ecx
nop
xor edi, edi
lea esi, [ecx - 0x240]
lea ebx, [edi + 0xc]
jmp 0x1014e890
mov edx, dword [esi]
lea esi, [esi + 4]
mov ecx, edx
sar ecx, 0x1f
xor ecx, edx
or edi, ecx
dec ebx
jne 0x1014e890
bsr edx, edi
mov dword [ebp - 0x10], ebx
setne cl
test cl, cl
je 0x1014e8b7
mov ecx, 0x1f
sub ecx, edx
jmp 0x1014e8bc
mov ecx, 0x20
mov edx, dword [ebp - 8]
lea ebx, [ecx - 1]
xor ecx, ecx
test ebx, ebx
cmovs ebx, ecx
cmp eax, ebx
lea edi, [ecx + 0xc]
cmovl ebx, eax
xor esi, esi
mov ecx, dword [edx]
lea edx, [edx + 4]
mov eax, ecx
sar eax, 0x1f
xor eax, ecx
or esi, eax
dec edi
jne 0x1014e8d3
bsr ecx, esi
mov dword [ebp - 0x10], edi
setne al
test al, al
je 0x1014e8fa
mov eax, 0x1f
sub eax, ecx
jmp 0x1014e8ff
mov eax, 0x20
xor ecx, ecx
dec eax
cmovs eax, ecx
mov ecx, dword [ebp - 8]
cmp ebx, eax
cmovl eax, ebx
add ecx, 0x30
dec dword [ebp - 0xc]
mov dword [ebp - 8], ecx
jne 0x1014e880
xor ecx, ecx
mov edx, 0x29
mov dword [ebp - 8], ecx
mov edi, dword [ebp - 4]
test ecx, ecx
mov esi, 0xc
cmove esi, edx
xor ebx, ebx
mov dword [ebp - 0x10], esi
mov edi, dword [edi + ecx*4 + 0x994]
mov dword [ebp - 0xc], esi
test esi, esi
je 0x1014e95a
mov edx, dword [edi]
lea edi, [edi + 4]
mov ecx, edx
sar ecx, 0x1f
xor ecx, edx
or ebx, ecx
dec esi
jne 0x1014e946
mov esi, dword [ebp - 0x10]
bsr edx, ebx
mov dword [ebp - 0x10], 0
setne cl
test cl, cl
je 0x1014e974
mov ecx, 0x1f
sub ecx, edx
jmp 0x1014e979
mov ecx, 0x20
lea ebx, [ecx - 1]
xor ecx, ecx
test ebx, ebx
cmovs ebx, ecx
mov ecx, dword [ebp - 8]
cmp eax, ebx
cmovl ebx, eax
mov eax, dword [ebp - 4]
xor edi, edi
mov edx, dword [eax + ecx*4 + 0x9cc]
test esi, esi
je 0x1014e9b4
jmp 0x1014e9a0
mov ecx, dword [edx]
lea edx, [edx + 4]
mov eax, ecx
sar eax, 0x1f
xor eax, ecx
or edi, eax
dec esi
jne 0x1014e9a0
mov ecx, dword [ebp - 8]
bsr edx, edi
mov dword [ebp - 0x10], 0
setne al
test al, al
je 0x1014e9ce
mov eax, 0x1f
sub eax, edx
jmp 0x1014e9d3
mov eax, 0x20
xor edx, edx
dec eax
cmovs eax, edx
mov edx, 0x29
cmp ebx, eax
cmovl eax, ebx
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, 0xe
jl 0x1014e926
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret