Function at 0x10006933
Capabilities:
Encode data using xor

Disassembly:
push esi
mov esi, ecx
call fcn.100068d4
movzx eax, al
dec eax
cmp eax, 0x11
ja case.0x1000690c.3
jmp dword [eax*4 + 0x10006a53]
mov eax, dword [0x1008eaf0]
test eax, eax
je case.0x1000690c.3
mov ecx, dword [eax + 0x24]
test ecx, ecx
je case.0x1000690c.3
push esi
call fcn.10013869
pop esi
ret
mov ecx, esi
pop esi
jmp 0x10006a9b
mov eax, dword [0x1008eaf0]
test eax, eax
je case.0x1000690c.3
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je case.0x1000690c.3
push esi
call fcn.10019a28
pop esi
ret
mov eax, dword [0x1008eaf0]
test eax, eax
je case.0x1000690c.3
mov ecx, dword [eax + 0x40]
test ecx, ecx
je case.0x1000690c.3
push esi
call fcn.1001cc4c
pop esi
ret
mov eax, dword [0x1008eaf0]
test eax, eax
je case.0x1000690c.3
mov ecx, dword [eax + 0x50]
test ecx, ecx
je case.0x1000690c.3
push esi
call fcn.10024c5a
pop esi
ret
mov eax, dword [0x1008eaf0]
test eax, eax
je case.0x1000690c.3
mov ecx, dword [eax + 0x44]
test ecx, ecx
je case.0x1000690c.3
push esi
call fcn.1001fb20
pop esi
ret
mov eax, dword [0x1008eaf0]
test eax, eax
je case.0x1000690c.3
mov ecx, dword [eax + 0x48]
test ecx, ecx
je case.0x1000690c.3
push esi
call fcn.10021258
pop esi
ret
mov eax, dword [0x1008eaf0]
test eax, eax
je case.0x1000690c.3
mov ecx, dword [eax + 0x4c]
test ecx, ecx
je case.0x1000690c.3
push esi
call fcn.100235d9
pop esi
ret
mov eax, dword [0x1008eaf0]
test eax, eax
je case.0x1000690c.3
mov ecx, dword [eax + 0x58]
test ecx, ecx
je case.0x1000690c.3
push esi
call fcn.10029e06
pop esi
ret
mov eax, dword [0x1008eaf0]
test eax, eax
je case.0x1000690c.3
mov ecx, dword [eax + 0x38]
test ecx, ecx
je case.0x1000690c.3
push esi
call fcn.100160c5
pop esi
ret
mov ecx, esi
pop esi
jmp 0x10006d6c
mov ecx, esi
pop esi
jmp 0x10006e07
mov ecx, esi
pop esi
jmp 0x10006f3c
mov ecx, esi
pop esi
jmp 0x10006fa4
cmp dword [0x1008eae8], 0
je case.0x1000690c.3
push esi
call fcn.1000e050
pop esi
ret
push 0xa4
mov eax, 0x10069ff4
call fcn.10035ccc
mov esi, ecx
call fcn.100068d4
mov ecx, esi
mov bl, al
call fcn.1000674a
mov ecx, esi
mov edi, eax
call fcn.1000674a
mov esi, eax
cmp bl, 1
je 0x10006add
cmp bl, 2
je 0x10006add
mov edx, dword [0x1008eaf0]
mov ecx, dword [0x1008eae8]
jmp 0x10006b07
mov edx, dword [0x1008eaf0]
test edx, edx
je 0x10006afa
mov ecx, dword [edx + 0x58]
test ecx, ecx
je 0x10006afa
push esi
call fcn.1002bb57
mov edx, dword [0x1008eaf0]
mov ecx, dword [0x1008eae8]
test ecx, ecx
je 0x10006b07
mov dword [ecx + 0x4c], esi
cmp bl, 3
je 0x10006b11
cmp bl, 4
jne 0x10006b31
test edx, edx
je 0x10006b2a
cmp dword [edx + 0x58], 0
je 0x10006b2a
mov ecx, dword [edx + 0x58]
push esi
call fcn.1002bbb6
mov ecx, dword [0x1008eae8]
test ecx, ecx
je 0x10006b31
mov dword [ecx + 0x50], esi
movzx eax, bl
sub eax, 1
je 0x10006cdd
sub eax, 1
je 0x10006c73
sub eax, 1
je 0x10006bf2
sub eax, 1
jne 0x10006d66
movaps xmm0, xmmword [0x100804c0]
xor ebx, ebx
push edi
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x38], 0x385a0e1c
mov edx, ebx
mov dword [ebp - 0x34], 0x141b161b
mov dword [ebp - 0x30], 0x541f19
mov cl, byte [ebp - 0x48]
xor byte [ebp + edx - 0x47], cl
inc edx
cmp edx, 0x1a
jb 0x10006b7d
sub esp, 0x18
mov byte [ebp - 0x2d], bl
lea eax, [ebp - 0x47]
mov ecx, esp
push eax
call fcn.1000289a
lea eax, [ebp - 0xb0]
push eax
call fcn.10007288
add esp, 0x20
mov dword [ebp - 4], 6
cmp dword [eax + 0x14], 0x10
jb 0x10006bb9
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x98]
call fcn.1000289a
mov edx, 0xffff3b3b
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x98]
call fcn.10006dda
push ebx
push 1
lea ecx, [ebp - 0x98]
call fcn.1000274f
lea ecx, [ebp - 0xb0]
jmp 0x10006d5e
movaps xmm0, xmmword [0x10080320]
xor ebx, ebx
movups xmmword [ebp - 0x68], xmm0
mov edx, ebx
movaps xmm0, xmmword [0x10080130]
push edi
movups xmmword [ebp - 0x58], xmm0
mov cl, byte [ebp - 0x68]
xor byte [ebp + edx - 0x67], cl
inc edx
cmp edx, 0x1e
jb 0x10006c0d
sub esp, 0x18
mov byte [ebp - 0x49], bl
lea eax, [ebp - 0x67]
mov ecx, esp
push eax
call fcn.1000289a
lea eax, [ebp - 0x80]
push eax
call fcn.10007288
add esp, 0x20
mov dword [ebp - 4], 4
cmp dword [eax + 0x14], 0x10
jb 0x10006c46
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x28]
call fcn.1000289a
mov edx, 0xff6565ff
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x28]
call fcn.10006dda
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.1000274f
lea ecx, [ebp - 0x80]
jmp 0x10006d5e
movaps xmm0, xmmword [0x10080ce0]
xor ebx, ebx
push edi
movups xmmword [ebp - 0x24], xmm0
mov dword [ebp - 0x14], 0x160d1f3d
mov edx, ebx
mov word [ebp - 0x10], 0x50
mov cl, byte [ebp - 0x24]
xor byte [ebp + edx - 0x23], cl
inc edx
cmp edx, 0x14
jb 0x10006c90
sub esp, 0x18
mov byte [ebp - 0xf], bl
lea eax, [ebp - 0x23]
mov ecx, esp
push eax
call fcn.1000289a
lea eax, [ebp - 0x60]
push eax
call fcn.10007288
add esp, 0x20
mov dword [ebp - 4], 2
cmp dword [eax + 0x14], 0x10
jb 0x10006cc9
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x80]
call fcn.1000289a
mov byte [ebp - 4], 3
mov edx, 0xffff3b3b
jmp 0x10006d48
movaps xmm0, xmmword [0x10080950]
xor ebx, ebx
push edi
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0x76223e31
mov edx, ebx
mov dword [ebp - 0x14], 0x3e253715
mov word [ebp - 0x10], 0x78
mov cl, byte [ebp - 0x28]
xor byte [ebp + edx - 0x27], cl
inc edx
cmp edx, 0x18
jb 0x10006d01
sub esp, 0x18
mov byte [ebp - 0xf], bl
lea eax, [ebp - 0x27]
mov ecx, esp
push eax
call fcn.1000289a
lea eax, [ebp - 0x60]
push eax
call fcn.10007288
add esp, 0x20
mov dword [ebp - 4], ebx
cmp dword [eax + 0x14], 0x10
jb 0x10006d36
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x80]
call fcn.1000289a
mov byte [ebp - 4], 1
mov edx, 0xff6565ff
lea ecx, [ebp - 0x80]
call fcn.10006dda
push ebx
push 1
lea ecx, [ebp - 0x80]
call fcn.1000274f
lea ecx, [ebp - 0x60]
push ebx
push 1
call fcn.1000274f
call fcn.10035c95
ret
push 0x34
mov eax, 0x1006a022
call fcn.10035d00
xor ebx, ebx
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x28], bl
lea eax, [ebp - 0x28]
mov dword [ebp - 4], ebx
push eax
call fcn.100067fb
mov ecx, eax
call fcn.1000674a
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x28]
mov esi, eax
cmovae ecx, dword [ebp - 0x28]
push ecx
lea ecx, [ebp - 0x40]
call fcn.1000289a
mov edx, esi
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x40]
call fcn.10006dda
push ebx
push 1
lea ecx, [ebp - 0x40]
call fcn.1000274f
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.1000274f
call fcn.10035caa
ret
push 0x64
mov eax, 0x1006a067
call fcn.10035d00
push 0xf
xor ebx, ebx
pop eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], ebx
mov byte [ebp - 0x40], bl
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x28], bl
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.100067fb
mov ecx, eax
call fcn.100067fb
cmp dword [ebp - 0x30], ebx
je 0x10006e53
cmp dword [ebp - 0x30], 0xff
ja 0x10006ebd
cmp dword [ebp - 0x18], 0
je 0x10006e5f
cmp dword [ebp - 0x18], 0x1e
ja 0x10006ebd
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x70]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.1000289a
mov byte [ebp - 4], 2
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 0x10
lea ecx, [ebp - 0x58]
cmovae eax, dword [ebp - 0x40]
push eax
call fcn.1000289a
push ebx
push ecx
mov byte [ebp - 4], 3
lea eax, [ebp - 0x70]
and dword [esp], 0
push ebx
push ebx
push ebx
push eax
lea eax, [ebp - 0x58]
push eax
push eax
call dword [0x1007feb4]
push ebx
push 1
lea ecx, [ebp - 0x58]
call fcn.1000274f
push ebx
push 1
lea ecx, [ebp - 0x70]
call fcn.1000274f
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.1000274f
push ebx
push 1
lea ecx, [ebp - 0x40]
call fcn.1000274f
call fcn.10035caa
ret
push 0x1c
mov eax, 0x1006a094
call fcn.10035d00
mov ebx, ecx
xor eax, eax
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x28], al
mov dword [ebp - 4], eax
lea eax, [ebp - 0x28]
push eax
call fcn.100067fb
cmp dword [ebp - 0x18], 0
je 0x10006f92
mov ecx, ebx
call fcn.1000674a
mov ecx, ebx
mov edi, eax
call fcn.1000674a
mov ecx, ebx
mov esi, eax
call fcn.1000674a
push eax
push esi
mov edx, edi
lea ecx, [ebp - 0x28]
call fcn.10006ed9
pop ecx
pop ecx
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.1000274f
call fcn.10035caa
ret
push 0x34
mov eax, 0x1006a0f5
call fcn.10035d00
mov esi, ecx
mov dword [ebp - 0x18], 0xf
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x2c], al
call fcn.100068d4
mov ecx, esi
mov bl, al
call fcn.1000674a
movzx ecx, bl
mov edi, eax
sub ecx, 1
je 0x10007165
sub ecx, 1
je 0x1000714f
sub ecx, 1
je 0x10007047
sub ecx, 1
jne 0x10007276
mov edx, edi
call fcn.10005fe4
test eax, eax
je 0x10007276
mov ecx, eax
call fcn.1000676f
mov edx, edi
mov ecx, 0x10092f08
call fcn.10005f76
mov ecx, edi
call fcn.10007d30
mov esi, eax
test esi, esi
je 0x10007276
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10007276
mov ecx, esi
call fcn.1000e15b
jmp 0x10007276
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.100067fb
mov esi, eax
mov ecx, esi
call fcn.100068d4
mov bl, al
mov ecx, esi
mov byte [ebp - 0x38], bl
call fcn.100068d4
mov bh, al
mov ecx, esi
mov byte [ebp - 0x34], bh
call fcn.100068d4
mov edx, edi
mov byte [ebp - 0x30], al
call fcn.10005fe4
cmp dword [ebp - 0x1c], 0
mov esi, eax
je 0x10007276
test esi, esi
jne 0x1000712b
push 0x1c
call fcn.10035106
mov esi, eax
pop ecx
mov dword [ebp - 0x3c], esi
push dword [ebp - 0x30]
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 3
push dword [ebp - 0x34]
push dword [ebp - 0x38]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.1000237c
mov ecx, esi
call fcn.1000678d
push 0x1c
mov ebx, eax
mov byte [ebp - 4], 0
call fcn.10035106
mov esi, eax
pop ecx
mov dword [ebp - 0x40], esi
push dword [ebp - 0x30]
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 4
push dword [ebp - 0x34]
push dword [ebp - 0x38]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.1000237c
mov ecx, esi
call fcn.1000678d
push eax
mov edx, edi
mov byte [ebp - 4], 0
call fcn.1000603a
test al, al
jne 0x10007019
test ebx, ebx
je 0x10007019
push 0
push 1
mov ecx, ebx
call fcn.1000274f
push 0x1c
push ebx
call fcn.1003515c
pop ecx
pop ecx
jmp 0x10007019
lea eax, [ebp - 0x2c]
cmp esi, eax
je 0x1000713e
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.10002520
mov al, byte [ebp - 0x30]
mov byte [esi + 0x18], bl
mov byte [esi + 0x19], bh
mov byte [esi + 0x1a], al
jmp 0x10007019
mov edx, edi
call fcn.10005fe4
test eax, eax
je 0x10007276
mov ecx, eax
jmp 0x10007265
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.100067fb
mov esi, eax
mov ecx, esi
call fcn.100068d4
mov bl, al
mov ecx, esi
mov byte [ebp - 0x38], bl
call fcn.100068d4
mov bh, al
mov ecx, esi
mov byte [ebp - 0x34], bh
call fcn.100068d4
mov edx, edi
mov byte [ebp - 0x30], al
call fcn.10005fe4
cmp dword [ebp - 0x1c], 0
mov esi, eax
je 0x1000725f
test esi, esi
jne 0x1000723e
push 0x1c
call fcn.10035106
mov esi, eax
pop ecx
mov dword [ebp - 0x40], esi
push dword [ebp - 0x30]
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 1
push dword [ebp - 0x34]
push dword [ebp - 0x38]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.1000237c
mov ecx, esi
call fcn.1000678d
push 0x1c
mov ebx, eax
mov byte [ebp - 4], 0
call fcn.10035106
mov esi, eax
pop ecx
mov dword [ebp - 0x40], esi
push dword [ebp - 0x30]
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 2
push dword [ebp - 0x34]
push dword [ebp - 0x38]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.1000237c
mov ecx, esi
call fcn.1000678d
push eax
mov edx, edi
mov byte [ebp - 4], 0
call fcn.1000603a
test al, al
jne 0x10007276
test ebx, ebx
je 0x10007276
push 0
push 1
mov ecx, ebx
call fcn.1000274f
push 0x1c
push ebx
call fcn.1003515c
pop ecx
pop ecx
jmp 0x10007276
lea eax, [ebp - 0x2c]
cmp esi, eax
je 0x10007251
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.10002520
mov al, byte [ebp - 0x30]
mov byte [esi + 0x18], bl
mov byte [esi + 0x19], bh
mov byte [esi + 0x1a], al
jmp 0x10007276
test esi, esi
je 0x10007276
mov ecx, esi
call fcn.1000676f
mov edx, edi
mov ecx, 0x10092f08
call fcn.10005f76
push 0
push 1
lea ecx, [ebp - 0x2c]
call fcn.1000274f
call fcn.10035caa
ret