Function at 0x10014d50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100252ac
mov eax, dword fs:[0]
push eax
sub esp, 0x240
mov eax, dword [0x1002f124]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x248], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x24c], eax
mov eax, dword [0x1002f030]
mov dword [ebp - 0x244], eax
mov eax, dword [0x1002f020]
mov eax, dword [0x1002f014]
push 0x20a
mov dword [ebp - 0x244], eax
lea eax, [ebp - 0x22c]
push 0
push eax
call fcn.10019170
push 0x104
lea eax, [ebp - 0x22c]
push eax
push 0
call fcn.1000e950
add esp, 0x18
test eax, eax
je 0x10014e6f
lea eax, [ebp - 0x22c]
push eax
call fcn.1001b0a0
add esp, 4
add eax, 0xffffffff
js 0x10014e15
cmp word [ebp + eax*2 - 0x22c], 0x5c
je 0x10014e15
cmp eax, 0x105
jae 0x100150b2
xor ecx, ecx
mov word [ebp + eax*2 - 0x22c], cx
sub eax, 1
jns 0x10014df0
lea ecx, [ebp - 0x22a]
lea eax, [ecx + eax*2]
push str.license.dat
push eax
call fcn.1001b1c8
push 0
push 0x80
push 3
push 0
push 1
lea eax, [ebp - 0x22c]
push 0x80000000
push eax
call fcn.1000a6f0
mov ebx, eax
add esp, 0x24
test ebx, ebx
je 0x10014e6f
cmp ebx, 0xffffffff
je 0x10014e6f
push 0
push ebx
call fcn.1000dcd0
mov edi, eax
add esp, 8
test edi, edi
jne 0x10014e8d
push ebx
call fcn.10009d80
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10016b7b
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1002ff7c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1002fc10]
cmp eax, dword [ecx + 4]
jg 0x100150b7
push 0
lea eax, [ebp - 0x23c]
mov dword [ebp - 0x23c], 0
push eax
push edi
push dword [0x1002fc04]
push ebx
call fcn.10011b00
push ebx
call fcn.10009d80
mov eax, dword [0x1002fc04]
xorps xmm0, xmm0
mov edi, dword [0x1002fc08]
movq qword [ebp - 0x238], xmm0
sub edi, eax
mov dword [ebp - 0x230], 0
mov dword [ebp - 0x244], eax
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0
mov dword [ebp - 0x230], 0
push 0x10
push eax
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 1
push eax
call fcn.10018bf0
mov ebx, dword [ebp - 0x234]
sub edi, 0x10
mov ecx, dword [ebp - 0x238]
mov edx, ebx
sub edx, ecx
add esp, 0x24
cmp edi, edx
jae 0x10014f4b
lea eax, [ecx + edi]
jmp 0x10014f8d
jbe 0x10014f93
mov eax, dword [ebp - 0x230]
sub eax, ecx
cmp edi, eax
jbe 0x10014f74
lea eax, [ebp - 0x23d]
push eax
push edi
lea ecx, [ebp - 0x238]
call fcn.10009cb0
mov ecx, dword [ebp - 0x238]
jmp 0x10014f93
mov esi, edi
sub esi, edx
push esi
push 0
push ebx
call fcn.10019170
mov ecx, dword [ebp - 0x238]
lea eax, [esi + ebx]
add esp, 0xc
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x244]
push edi
add eax, 0x10
push eax
push ecx
call fcn.10018bf0
mov edi, dword [0x1002fc08]
add esp, 0xc
mov esi, dword [ebp - 0x234]
mov ecx, edi
mov edx, dword [ebp - 0x238]
sub esi, edx
mov eax, dword [0x1002fc04]
sub ecx, eax
cmp esi, ecx
jae 0x10014fcc
add eax, esi
jmp 0x1001500e
jbe 0x10015013
mov eax, dword [0x1002fc0c]
sub eax, dword [0x1002fc04]
cmp esi, eax
jbe 0x10014ff7
lea eax, [ebp - 0x23e]
mov ecx, 0x1002fc04
push eax
push esi
call fcn.10009cb0
mov edx, dword [ebp - 0x238]
jmp 0x10015013
sub esi, ecx
push esi
push 0
push edi
call fcn.10019170
mov edx, dword [ebp - 0x238]
lea eax, [esi + edi]
add esp, 0xc
mov dword [0x1002fc08], eax
mov esi, dword [ebp - 0x234]
sub esi, edx
sub esi, 1
js 0x1001504a
movzx eax, byte [edx + esi]
mov ecx, esi
and ecx, 0xf
xor byte [ebp + ecx - 0x20], al
movzx eax, byte [ebp + ecx - 0x20]
mov cl, byte [edx + esi]
xor cl, al
mov eax, dword [0x1002fc04]
mov byte [eax + esi], cl
sub esi, 1
mov edx, dword [ebp - 0x238]
jns 0x10015020
test edx, edx
je 0x1001507e
mov ecx, dword [ebp - 0x230]
mov eax, edx
sub ecx, edx
cmp ecx, 0x1000
jb 0x10015074
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10015163
push ecx
push edx
call fcn.10016b5f
add esp, 8
mov ecx, dword [ebp - 0x248]
mov eax, dword [0x1002fc04]
mov dword [ecx], eax
mov eax, dword [0x1002fc08]
mov ecx, dword [ebp - 0x24c]
sub eax, dword [0x1002fc04]
cmp dword [ebp - 0x23c], 0
mov dword [ecx], eax
je 0x10014e6f
mov al, 1
jmp 0x10014e71
call fcn.10016fe8
push 0x1002fc10
call fcn.100171f6
add esp, 4
cmp dword [0x1002fc10], 0xffffffff
jne 0x10014ead
mov dword [ebp - 4], 0
cmp edi, 0x7fffffff
jbe 0x100150e5
call fcn.10014b30
cmp edi, 0x1000
jb 0x10015113
lea eax, [edi + 0x23]
cmp eax, edi
ja 0x100150f9
call fcn.10005c20
push eax
call fcn.10016b2f
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x10015163
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1001511e
push edi
call fcn.10016b2f
add esp, 4
jmp 0x1001511e
push edi
lea esi, [eax + edi]
mov dword [0x1002fc04], eax
push 0
push eax
mov dword [0x1002fc08], eax
mov dword [0x1002fc0c], esi
call fcn.10019170
push 0x10025470
mov dword [0x1002fc08], esi
call fcn.10016eb1
push 0x1002fc10
mov dword [ebp - 4], 0xffffffff
call fcn.100171ac
add esp, 0x14
jmp 0x10014ead
call fcn.1001b04f
int3