Function at 0x1009d86a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [0x1029e280]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x1028f7bc], 0
push edi
mov edi, ecx
je 0x1009dcab
cmp byte [edi + 5], 0
je 0x1009dca7
mov eax, dword [0x1028f7c0]
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.0x1009d6e4
jmp dword [eax*4 + 0x1009dcbc]
lea eax, [ebp - 0x1c]
mov ecx, 0x10292420
push eax
call fcn.10050e20
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d0d0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
mov ecx, 0x10292438
jmp 0x1009d899
mov ecx, 0x10292450
jmp 0x1009d899
lea eax, [ebp - 0x1c]
mov ecx, 0x10292468
push eax
call fcn.1004fec0
jmp 0x1009d8a2
mov ecx, 0x10292480
jmp 0x1009d899
lea eax, [ebp - 0x1c]
mov ecx, 0x10292498
push eax
call fcn.10050c80
jmp 0x1009d8a2
lea eax, [ebp - 0x1c]
mov ecx, 0x102924b0
push eax
call fcn.10050c80
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d0d0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
lea eax, [ebp - 0x1c]
mov ecx, 0x102924c8
push eax
call fcn.10050c80
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d0d0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
cmp byte [0x102924e0], 0
je 0x1009d811
cmp byte [0x102924e1], 0
jne 0x1009d852
mov byte [0x102924e1], 1
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x102924fc]
xor ebx, dword [0x102924f8]
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 + 0x102924e2], al
inc esi
cmp esi, 0x14
jb 0x1009d7d0
jmp 0x1009d852
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x102924fc]
xor ebx, dword [0x102924f8]
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 + 0x102924e2], al
inc esi
cmp esi, 0x14
jb 0x1009d813
lea eax, [ebp - 0x35]
push eax
push 0x102924f5
push 0x102924e2
lea ecx, [ebp - 0x1c]
call fcn.1004f490
jmp 0x1009d8a2
lea eax, [ebp - 0x1c]
mov ecx, 0x10292500
push eax
call fcn.1004fec0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d0d0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
mov ecx, 0x10292518
lea eax, [ebp - 0x1c]
push eax
call fcn.10050d50
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d0d0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
mov eax, dword [0x1028f7c4]
dec eax
cmp eax, 3
ja case.default.0x1009d8cd
jmp dword [eax*4 + 0x1009dcd8]
lea eax, [ebp - 0x1c]
mov ecx, 0x10292530
push eax
call fcn.10050d50
jmp 0x1009d969
lea eax, [ebp - 0x1c]
mov ecx, 0x10292548
push eax
call fcn.10050c80
jmp 0x1009d969
lea eax, [ebp - 0x1c]
mov ecx, 0x10292560
push eax
call fcn.10050c80
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d0d0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
lea eax, [ebp - 0x1c]
mov ecx, 0x10292578
push eax
call fcn.10050c80
jmp 0x1009d969
lea eax, [ebp - 0x1c]
mov ecx, 0x10292590
push eax
call fcn.10050e20
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d0d0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
lea eax, [ebp - 0x1c]
mov ecx, 0x102925a8
push eax
call fcn.10050fc0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d0d0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
mov eax, dword [0x1028f7c8]
test al, 1
je 0x1009d9d0
lea eax, [ebp - 0x1c]
mov ecx, 0x102925c8
push eax
call fcn.10050fc0
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 0x1009d9b0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100465f0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
mov eax, dword [0x1028f7c8]
test al, 2
je 0x1009da12
lea eax, [ebp - 0x1c]
mov ecx, 0x102925e8
push eax
call fcn.10050c80
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 0x1009d9f2
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100465f0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
mov eax, dword [0x1028f7c8]
test al, 4
je 0x1009db08
cmp byte [0x10292600], 0
je 0x1009da81
cmp byte [0x10292601], 0
jne 0x1009dac2
mov byte [0x10292601], 1
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x1029261c]
xor ebx, dword [0x10292618]
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 + 0x10292602], al
inc esi
cmp esi, 0x10
jb 0x1009da40
jmp 0x1009dac2
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x1029261c]
xor ebx, dword [0x10292618]
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 + 0x10292602], al
inc esi
cmp esi, 0x10
jb 0x1009da83
lea eax, [ebp - 0x35]
push eax
push 0x10292611
push 0x10292602
lea ecx, [ebp - 0x1c]
call fcn.1004f490
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 0x1009dae8
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100465f0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
mov eax, dword [0x1028f7c8]
test al, 8
je 0x1009db90
lea eax, [ebp - 0x1c]
mov ecx, 0x10292620
push eax
call fcn.10050ef0
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 0x1009db30
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100465f0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
lea eax, [ebp - 0x1c]
mov ecx, 0x10292638
push eax
call fcn.10050390
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 0x1009db70
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100465f0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
mov eax, dword [0x1028f7c8]
test al, 0x10
je 0x1009dbd2
lea eax, [ebp - 0x1c]
mov ecx, 0x10292658
push eax
call fcn.10050460
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 0x1009dbb2
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100465f0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
mov eax, dword [0x1028f7c8]
test al, 0x20
je 0x1009dc14
lea eax, [ebp - 0x1c]
mov ecx, 0x10292678
push eax
call fcn.10050d50
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 0x1009dbf4
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100465f0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
mov eax, dword [0x1028f7c8]
test al, 0x40
je 0x1009dc51
lea eax, [ebp - 0x1c]
mov ecx, 0x10292690
push eax
call fcn.10050ef0
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 0x1009dc36
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.100465f0
lea ecx, [ebp - 0x1c]
call fcn.10044c60
mov ecx, dword [0x1029f230]
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 0x1009dca7
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1009dc9d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1009dc9d
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.101169da
add esp, 8
mov byte [edi + 5], 0
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.10116d02
mov esp, ebp
pop ebp
ret