Function at 0x1009e5ca
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [0x102ce4c0]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x102c15e0], 0
push edi
mov edi, ecx
je 0x1009ea0b
cmp byte [edi + 5], 0
je 0x1009ea07
mov eax, dword [0x102c15e4]
xorps xmm0, xmm0
dec eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
push ebx
movups xmmword [ebp - 0x34], xmm0
mov byte [ebp - 0x34], 0
push esi
cmp eax, 6
ja case.default.0x1009e444
jmp dword [eax*4 + 0x1009ea1c]
lea eax, [ebp - 0x1c]
mov ecx, 0x102c42b8
push eax
call fcn.10050e30
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009de30
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
mov ecx, 0x102c42d0
jmp 0x1009e5f9
mov ecx, 0x102c42e8
jmp 0x1009e5f9
lea eax, [ebp - 0x1c]
mov ecx, 0x102c4300
push eax
call fcn.1004fed0
jmp 0x1009e602
mov ecx, 0x102c4318
jmp 0x1009e5f9
lea eax, [ebp - 0x1c]
mov ecx, 0x102c4330
push eax
call fcn.10050c90
jmp 0x1009e602
lea eax, [ebp - 0x1c]
mov ecx, 0x102c4348
push eax
call fcn.10050c90
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009de30
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
lea eax, [ebp - 0x1c]
mov ecx, 0x102c4360
push eax
call fcn.10050c90
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009de30
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
cmp byte [0x102c4378], 0
je 0x1009e571
cmp byte [0x102c4379], 0
jne 0x1009e5b2
mov byte [0x102c4379], 1
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x102c4394]
xor ebx, dword [0x102c4390]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov eax, ebx
shrd eax, edx, 7
xor al, bl
xor byte [esi + 0x102c437a], al
inc esi
cmp esi, 0x14
jb 0x1009e530
jmp 0x1009e5b2
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x102c4394]
xor ebx, dword [0x102c4390]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov eax, ebx
shrd eax, edx, 7
xor al, bl
xor byte [esi + 0x102c437a], al
inc esi
cmp esi, 0x14
jb 0x1009e573
lea eax, [ebp - 0x35]
push eax
push 0x102c438d
push 0x102c437a
lea ecx, [ebp - 0x1c]
call fcn.1004f4a0
jmp 0x1009e602
lea eax, [ebp - 0x1c]
mov ecx, 0x102c4398
push eax
call fcn.1004fed0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009de30
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
mov ecx, 0x102c43b0
lea eax, [ebp - 0x1c]
push eax
call fcn.10050d60
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009de30
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
mov eax, dword [0x102c15e8]
dec eax
cmp eax, 3
ja case.default.0x1009e62d
jmp dword [eax*4 + 0x1009ea38]
lea eax, [ebp - 0x1c]
mov ecx, 0x102c43c8
push eax
call fcn.10050d60
jmp 0x1009e6c9
lea eax, [ebp - 0x1c]
mov ecx, 0x102c43e0
push eax
call fcn.10050c90
jmp 0x1009e6c9
lea eax, [ebp - 0x1c]
mov ecx, 0x102c43f8
push eax
call fcn.10050c90
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009de30
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
lea eax, [ebp - 0x1c]
mov ecx, 0x102c4410
push eax
call fcn.10050c90
jmp 0x1009e6c9
lea eax, [ebp - 0x1c]
mov ecx, 0x102c4428
push eax
call fcn.10050e30
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009de30
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
lea eax, [ebp - 0x1c]
mov ecx, 0x102c4440
push eax
call fcn.10050fd0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009de30
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
mov eax, dword [0x102c15ec]
test al, 1
je 0x1009e730
lea eax, [ebp - 0x1c]
mov ecx, 0x102c4460
push eax
call fcn.10050fd0
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1009e710
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100464c0
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
mov eax, dword [0x102c15ec]
test al, 2
je 0x1009e772
lea eax, [ebp - 0x1c]
mov ecx, 0x102c4480
push eax
call fcn.10050c90
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1009e752
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100464c0
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
mov eax, dword [0x102c15ec]
test al, 4
je 0x1009e868
cmp byte [0x102c4498], 0
je 0x1009e7e1
cmp byte [0x102c4499], 0
jne 0x1009e822
mov byte [0x102c4499], 1
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x102c44b4]
xor ebx, dword [0x102c44b0]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov eax, ebx
shrd eax, edx, 7
xor al, bl
xor byte [esi + 0x102c449a], al
inc esi
cmp esi, 0x10
jb 0x1009e7a0
jmp 0x1009e822
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x102c44b4]
xor ebx, dword [0x102c44b0]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov eax, ebx
shrd eax, edx, 7
xor al, bl
xor byte [esi + 0x102c449a], al
inc esi
cmp esi, 0x10
jb 0x1009e7e3
lea eax, [ebp - 0x35]
push eax
push 0x102c44a9
push 0x102c449a
lea ecx, [ebp - 0x1c]
call fcn.1004f4a0
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1009e848
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100464c0
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
mov eax, dword [0x102c15ec]
test al, 8
je 0x1009e8f0
lea eax, [ebp - 0x1c]
mov ecx, 0x102c44b8
push eax
call fcn.10050f00
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1009e890
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100464c0
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
lea eax, [ebp - 0x1c]
mov ecx, 0x102c44d0
push eax
call fcn.100503a0
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1009e8d0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100464c0
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
mov eax, dword [0x102c15ec]
test al, 0x10
je 0x1009e932
lea eax, [ebp - 0x1c]
mov ecx, 0x102c44f0
push eax
call fcn.10050470
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1009e912
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100464c0
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
mov eax, dword [0x102c15ec]
test al, 0x20
je 0x1009e974
lea eax, [ebp - 0x1c]
mov ecx, 0x102c4510
push eax
call fcn.10050d60
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1009e954
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100464c0
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
mov eax, dword [0x102c15ec]
test al, 0x40
je 0x1009e9b1
lea eax, [ebp - 0x1c]
mov ecx, 0x102c4528
push eax
call fcn.10050f00
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1009e996
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100464c0
lea ecx, [ebp - 0x1c]
call fcn.10044ae0
mov ecx, dword [0x102cf470]
lea edx, [ebp - 0x34]
cmp dword [ebp - 0x20], 0xf
push 0
cmova edx, dword [ebp - 0x34]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x1c8]
call eax
mov ecx, dword [ebp - 0x20]
pop esi
pop ebx
cmp ecx, 0xf
jbe 0x1009ea07
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1009e9fd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1009e9fd
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1011033a
add esp, 8
mov byte [edi + 5], 0
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.10110662
mov esp, ebp
pop ebp
ret