Function at 0x1009c899
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [0x10266a40]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x1025a034], 0
push edi
mov edi, ecx
je 0x1009cdeb
cmp byte [edi + 5], 0
je 0x1009cde7
mov eax, dword [0x1025a038]
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.0x1009c824
jmp dword [eax*4 + 0x1009cdfc]
lea eax, [ebp - 0x1c]
mov ecx, 0x1025cc90
push eax
call fcn.100508b0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009c210
lea ecx, [ebp - 0x1c]
call fcn.100446f0
mov ecx, 0x1025cca8
jmp 0x1009c9d9
mov ecx, 0x1025ccc0
jmp 0x1009c9d9
lea eax, [ebp - 0x1c]
mov ecx, 0x1025ccd8
push eax
call fcn.1004f950
jmp 0x1009c9e2
mov ecx, 0x1025ccf0
jmp 0x1009c9d9
lea eax, [ebp - 0x1c]
mov ecx, 0x1025cd08
push eax
call fcn.10050710
jmp 0x1009c9e2
lea eax, [ebp - 0x1c]
mov ecx, 0x1025cd20
push eax
call fcn.10050710
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009c210
lea ecx, [ebp - 0x1c]
call fcn.100446f0
lea eax, [ebp - 0x1c]
mov ecx, 0x1025cd38
push eax
call fcn.10050710
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009c210
lea ecx, [ebp - 0x1c]
call fcn.100446f0
cmp byte [0x1025cd50], 0
je 0x1009c951
cmp byte [0x1025cd51], 0
jne 0x1009c992
mov byte [0x1025cd51], 1
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x1025cd6c]
xor ebx, dword [0x1025cd68]
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 + 0x1025cd52], al
inc esi
cmp esi, 0x14
jb 0x1009c910
jmp 0x1009c992
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x1025cd6c]
xor ebx, dword [0x1025cd68]
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 + 0x1025cd52], al
inc esi
cmp esi, 0x14
jb 0x1009c953
lea eax, [ebp - 0x35]
push eax
push 0x1025cd65
push 0x1025cd52
lea ecx, [ebp - 0x1c]
call fcn.1004ef20
jmp 0x1009c9e2
lea eax, [ebp - 0x1c]
mov ecx, 0x1025cd70
push eax
call fcn.1004f950
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009c210
lea ecx, [ebp - 0x1c]
call fcn.100446f0
mov ecx, 0x1025cd88
lea eax, [ebp - 0x1c]
push eax
call fcn.100507e0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009c210
lea ecx, [ebp - 0x1c]
call fcn.100446f0
mov eax, dword [0x1025a03c]
dec eax
cmp eax, 3
ja case.default.0x1009ca0d
jmp dword [eax*4 + 0x1009ce18]
lea eax, [ebp - 0x1c]
mov ecx, 0x1025cda0
push eax
call fcn.100507e0
jmp 0x1009caa9
lea eax, [ebp - 0x1c]
mov ecx, 0x1025cdb8
push eax
call fcn.10050710
jmp 0x1009caa9
lea eax, [ebp - 0x1c]
mov ecx, 0x1025cdd0
push eax
call fcn.10050710
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009c210
lea ecx, [ebp - 0x1c]
call fcn.100446f0
lea eax, [ebp - 0x1c]
mov ecx, 0x1025cde8
push eax
call fcn.10050710
jmp 0x1009caa9
lea eax, [ebp - 0x1c]
mov ecx, 0x1025ce00
push eax
call fcn.100508b0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009c210
lea ecx, [ebp - 0x1c]
call fcn.100446f0
lea eax, [ebp - 0x1c]
mov ecx, 0x1025ce18
push eax
call fcn.10050a50
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009c210
lea ecx, [ebp - 0x1c]
call fcn.100446f0
mov eax, dword [0x1025a040]
test al, 1
je 0x1009cb10
lea eax, [ebp - 0x1c]
mov ecx, 0x1025ce38
push eax
call fcn.10050a50
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 0x1009caf0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046080
lea ecx, [ebp - 0x1c]
call fcn.100446f0
mov eax, dword [0x1025a040]
test al, 2
je 0x1009cb52
lea eax, [ebp - 0x1c]
mov ecx, 0x1025ce58
push eax
call fcn.10050710
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 0x1009cb32
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046080
lea ecx, [ebp - 0x1c]
call fcn.100446f0
mov eax, dword [0x1025a040]
test al, 4
je 0x1009cc48
cmp byte [0x1025ce70], 0
je 0x1009cbc1
cmp byte [0x1025ce71], 0
jne 0x1009cc02
mov byte [0x1025ce71], 1
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x1025ce8c]
xor ebx, dword [0x1025ce88]
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 + 0x1025ce72], al
inc esi
cmp esi, 0x10
jb 0x1009cb80
jmp 0x1009cc02
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x1025ce8c]
xor ebx, dword [0x1025ce88]
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 + 0x1025ce72], al
inc esi
cmp esi, 0x10
jb 0x1009cbc3
lea eax, [ebp - 0x35]
push eax
push 0x1025ce81
push 0x1025ce72
lea ecx, [ebp - 0x1c]
call fcn.1004ef20
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 0x1009cc28
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046080
lea ecx, [ebp - 0x1c]
call fcn.100446f0
mov eax, dword [0x1025a040]
test al, 8
je 0x1009ccd0
lea eax, [ebp - 0x1c]
mov ecx, 0x1025ce90
push eax
call fcn.10050980
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 0x1009cc70
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046080
lea ecx, [ebp - 0x1c]
call fcn.100446f0
lea eax, [ebp - 0x1c]
mov ecx, 0x1025cea8
push eax
call fcn.1004fe20
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 0x1009ccb0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046080
lea ecx, [ebp - 0x1c]
call fcn.100446f0
mov eax, dword [0x1025a040]
test al, 0x10
je 0x1009cd12
lea eax, [ebp - 0x1c]
mov ecx, 0x1025cec8
push eax
call fcn.1004fef0
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 0x1009ccf2
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046080
lea ecx, [ebp - 0x1c]
call fcn.100446f0
mov eax, dword [0x1025a040]
test al, 0x20
je 0x1009cd54
lea eax, [ebp - 0x1c]
mov ecx, 0x1025cee8
push eax
call fcn.100507e0
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 0x1009cd34
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046080
lea ecx, [ebp - 0x1c]
call fcn.100446f0
mov eax, dword [0x1025a040]
test al, 0x40
je 0x1009cd91
lea eax, [ebp - 0x1c]
mov ecx, 0x1025cf00
push eax
call fcn.10050980
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 0x1009cd76
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046080
lea ecx, [ebp - 0x1c]
call fcn.100446f0
mov ecx, dword [0x102679f0]
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 0x1009cde7
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1009cddd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1009cddd
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1010be7a
add esp, 8
mov byte [edi + 5], 0
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.1010c1a2
mov esp, ebp
pop ebp
ret