Function at 0x100f9a60
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
mov eax, 0x204c
call fcn.10451050
mov eax, dword [0x11ad127c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebx + 8]
lea eax, [ebp - 0x440]
push 0x400
push 0
push eax
mov byte [ebp - 0x2042], 0
call fcn.10425c00
add esp, 0xc
push 0x11d21bdc
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test esi, esi
je 0x100f9e9b
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100f9ac3
sub ecx, edx
je 0x100f9e9b
cmp byte [0x11d213cc], 1
jne 0x100f9b00
cmp dword [0x11d213d0], 0
je 0x100f9b00
push esi
push 0x11d213d5
call fcn.1043ab70
add esp, 8
test eax, eax
jne 0x100f9b00
mov ecx, 0x11d20670
call fcn.100f83a0
push 0xffffffffffffffff
push esi
push 0x200
lea eax, [ebp - 0x840]
push eax
lea eax, [ebp - 0x204c]
push eax
call fcn.1043b2ed
add esp, 0x14
lea eax, [ebp - 0x3c]
push 0x38
push 0
push eax
call fcn.10425c00
movaps xmm1, xmmword [0x1122e3e0]
add esp, 0xc
xor ecx, ecx
nop word [eax + eax]
movups xmm0, xmmword [ecx*2 + 0x11220a40]
pxor xmm0, xmm1
movups xmmword [ebp + ecx*2 - 0x3c], xmm0
add ecx, 8
cmp ecx, 0x18
jb 0x100f9b40
cmp ecx, 0x1c
jae 0x100f9b78
nop
mov eax, 0x5aa5
xor ax, word [ecx*2 + 0x11220a40]
mov word [ebp + ecx*2 - 0x3c], ax
inc ecx
cmp ecx, 0x1c
jb 0x100f9b60
lea eax, [ebp - 0x3c]
push eax
call fcn.1043b631
add esp, 4
test eax, eax
je 0x100f9b9d
push 0x200
push eax
lea eax, [ebp - 0x440]
push eax
call fcn.1043c460
add esp, 0xc
push 0x38
lea eax, [ebp - 0x3c]
push 0
push eax
call fcn.10425c00
movaps xmm1, xmmword [0x1122e3e0]
add esp, 0xc
xor ecx, ecx
nop word [eax + eax]
movups xmm0, xmmword [ecx*2 + 0x11220a40]
pxor xmm0, xmm1
movups xmmword [ebp + ecx*2 - 0x3c], xmm0
add ecx, 8
cmp ecx, 0x18
jb 0x100f9bc0
cmp ecx, 0x1c
jae 0x100f9bf8
nop
mov eax, 0x5aa5
xor ax, word [ecx*2 + 0x11220a40]
mov word [ebp + ecx*2 - 0x3c], ax
inc ecx
cmp ecx, 0x1c
jb 0x100f9be0
lea eax, [ebp - 0x840]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.1043c7c5
add esp, 8
test eax, eax
jne 0x100f9e39
test byte [0x11d2068c], 1
je 0x100f9c2e
push 0x11d213a8
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
and byte [0x11d2068c], 0xfe
mov eax, dword [0x11d21294]
test eax, eax
je 0x100f9c4a
push eax
call fcn.10434337
add esp, 4
mov dword [0x11d21294], 0
mov eax, dword [0x11d21298]
test eax, eax
je 0x100f9c66
push eax
call fcn.10434337
add esp, 4
mov dword [0x11d21298], 0
cmp dword [0x11d20684], 0
je 0x100f9c91
push dword [0x11d20674]
call fcn.10434337
add esp, 4
mov dword [0x11d20674], 0
mov dword [0x11d20684], 0
mov eax, dword [0x11d20670]
test eax, eax
je 0x100f9ca3
push eax
call fcn.10434337
add esp, 4
and byte [0x11d2068c], 0xf8
push 0x400
push 0
push 0x11d2068d
mov dword [0x11d20670], 0
mov dword [0x11d20674], 0
mov dword [0x11d20678], 0
mov dword [0x11d2067c], 0
mov dword [0x11d20684], 0
mov dword [0x11d20a90], 0
mov dword [0x11d2129c], 0
call fcn.10425c00
add esp, 0xc
push 0x104
push 0
push 0x11d212a0
call fcn.10425c00
add esp, 0xc
push 0x800
push 0
push 0x11d20a94
call fcn.10425c00
add esp, 0xc
test byte [0x11d2068c], 1
jne 0x100f9d87
push 0x400
push 0x11d213a8
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
mov al, byte [0x11d2068c]
setne cl
and al, 0xfe
or cl, al
mov byte [0x11d2068c], cl
test cl, 1
je 0x100f9d87
push 0x11d213a8
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, 0x11d20670
call fcn.100f5be0
test byte [0x11d2068c], 1
je 0x100f9d87
push 0x11d213a8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [ebp - 0x2048]
push eax
push 0x70edb381
call fcn.100f76e0
lea eax, [ebp - 0x2041]
mov byte [ebp - 0x2041], 0
push eax
push 0
push 0
push 0
push 0
push 0x400
lea eax, [ebp - 0x1040]
mov ecx, 0x11d20670
push eax
push 0x400
lea eax, [ebp - 0x1840]
push eax
push 0x400
lea eax, [ebp - 0x2040]
push eax
call fcn.100f6170
test al, al
je 0x100f9e39
cmp byte [ebp - 0x2041], 0
je 0x100f9e39
test byte [0x11d2068c], 1
je 0x100f9e39
cmp dword [0x11d20684], 0
jne 0x100f9e09
mov ecx, 0x11d20670
call fcn.100f5b00
test al, al
je 0x100f9e39
mov edx, dword [0x11d20678]
xor ecx, ecx
mov eax, dword [0x11d20674]
test edx, edx
je 0x100f9e39
add eax, 4
nop dword [eax]
cmp dword [eax], 0x701eb457
je 0x100f9e32
inc ecx
add eax, 0x10
cmp ecx, edx
jb 0x100f9e20
jmp 0x100f9e39
mov byte [ebp - 0x2042], 1
push 0x38
lea eax, [ebp - 0x3c]
push 0
push eax
call fcn.10425c00
movaps xmm1, xmmword [0x1122e3e0]
add esp, 0xc
xor ecx, ecx
movups xmm0, xmmword [ecx*2 + 0x11220a40]
pxor xmm0, xmm1
movups xmmword [ebp + ecx*2 - 0x3c], xmm0
add ecx, 8
cmp ecx, 0x18
jb 0x100f9e52
cmp ecx, 0x1c
jae 0x100f9e88
mov eax, 0x5aa5
xor ax, word [ecx*2 + 0x11220a40]
mov word [ebp + ecx*2 - 0x3c], ax
inc ecx
cmp ecx, 0x1c
jb 0x100f9e70
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.1043c7c5
add esp, 8
push 0x11d21bdc
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 4]
mov al, byte [ebp - 0x2042]
xor ecx, ebp
pop esi
call fcn.1045066c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8