Function at 0x1009da99
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [0x102cdf00]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x102c11d4], 0
push edi
mov edi, ecx
je 0x1009dfeb
cmp byte [edi + 5], 0
je 0x1009dfe7
mov eax, dword [0x102c11d8]
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.0x1009da24
jmp dword [eax*4 + 0x1009dffc]
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3dd8
push eax
call fcn.10050ac0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d410
lea ecx, [ebp - 0x1c]
call fcn.10044760
mov ecx, 0x102c3df0
jmp 0x1009dbd9
mov ecx, 0x102c3e08
jmp 0x1009dbd9
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3e20
push eax
call fcn.1004fb60
jmp 0x1009dbe2
mov ecx, 0x102c3e38
jmp 0x1009dbd9
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3e50
push eax
call fcn.10050920
jmp 0x1009dbe2
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3e68
push eax
call fcn.10050920
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d410
lea ecx, [ebp - 0x1c]
call fcn.10044760
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3e80
push eax
call fcn.10050920
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d410
lea ecx, [ebp - 0x1c]
call fcn.10044760
cmp byte [0x102c3e98], 0
je 0x1009db51
cmp byte [0x102c3e99], 0
jne 0x1009db92
mov byte [0x102c3e99], 1
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x102c3eb4]
xor ebx, dword [0x102c3eb0]
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 + 0x102c3e9a], al
inc esi
cmp esi, 0x14
jb 0x1009db10
jmp 0x1009db92
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x102c3eb4]
xor ebx, dword [0x102c3eb0]
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 + 0x102c3e9a], al
inc esi
cmp esi, 0x14
jb 0x1009db53
lea eax, [ebp - 0x35]
push eax
push 0x102c3ead
push 0x102c3e9a
lea ecx, [ebp - 0x1c]
call fcn.1004f130
jmp 0x1009dbe2
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3eb8
push eax
call fcn.1004fb60
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d410
lea ecx, [ebp - 0x1c]
call fcn.10044760
mov ecx, 0x102c3ed0
lea eax, [ebp - 0x1c]
push eax
call fcn.100509f0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d410
lea ecx, [ebp - 0x1c]
call fcn.10044760
mov eax, dword [0x102c11dc]
dec eax
cmp eax, 3
ja case.default.0x1009dc0d
jmp dword [eax*4 + 0x1009e018]
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3ee8
push eax
call fcn.100509f0
jmp 0x1009dca9
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3f00
push eax
call fcn.10050920
jmp 0x1009dca9
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3f18
push eax
call fcn.10050920
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d410
lea ecx, [ebp - 0x1c]
call fcn.10044760
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3f30
push eax
call fcn.10050920
jmp 0x1009dca9
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3f48
push eax
call fcn.10050ac0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d410
lea ecx, [ebp - 0x1c]
call fcn.10044760
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3f60
push eax
call fcn.10050c60
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.1009d410
lea ecx, [ebp - 0x1c]
call fcn.10044760
mov eax, dword [0x102c11e0]
test al, 1
je 0x1009dd10
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3f80
push eax
call fcn.10050c60
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 0x1009dcf0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046140
lea ecx, [ebp - 0x1c]
call fcn.10044760
mov eax, dword [0x102c11e0]
test al, 2
je 0x1009dd52
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3fa0
push eax
call fcn.10050920
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 0x1009dd32
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046140
lea ecx, [ebp - 0x1c]
call fcn.10044760
mov eax, dword [0x102c11e0]
test al, 4
je 0x1009de48
cmp byte [0x102c3fb8], 0
je 0x1009ddc1
cmp byte [0x102c3fb9], 0
jne 0x1009de02
mov byte [0x102c3fb9], 1
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x102c3fd4]
xor ebx, dword [0x102c3fd0]
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 + str.MUW], al
inc esi
cmp esi, 0x10
jb 0x1009dd80
jmp 0x1009de02
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x102c3fd4]
xor ebx, dword [0x102c3fd0]
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 + str.MUW], al
inc esi
cmp esi, 0x10
jb 0x1009ddc3
lea eax, [ebp - 0x35]
push eax
push 0x102c3fc9
push str.MUW
lea ecx, [ebp - 0x1c]
call fcn.1004f130
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 0x1009de28
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046140
lea ecx, [ebp - 0x1c]
call fcn.10044760
mov eax, dword [0x102c11e0]
test al, 8
je 0x1009ded0
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3fd8
push eax
call fcn.10050b90
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 0x1009de70
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046140
lea ecx, [ebp - 0x1c]
call fcn.10044760
lea eax, [ebp - 0x1c]
mov ecx, 0x102c3ff0
push eax
call fcn.10050030
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 0x1009deb0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046140
lea ecx, [ebp - 0x1c]
call fcn.10044760
mov eax, dword [0x102c11e0]
test al, 0x10
je 0x1009df12
lea eax, [ebp - 0x1c]
mov ecx, 0x102c4010
push eax
call fcn.10050100
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 0x1009def2
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046140
lea ecx, [ebp - 0x1c]
call fcn.10044760
mov eax, dword [0x102c11e0]
test al, 0x20
je 0x1009df54
lea eax, [ebp - 0x1c]
mov ecx, 0x102c4030
push eax
call fcn.100509f0
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 0x1009df34
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046140
lea ecx, [ebp - 0x1c]
call fcn.10044760
mov eax, dword [0x102c11e0]
test al, 0x40
je 0x1009df91
lea eax, [ebp - 0x1c]
mov ecx, 0x102c4048
push eax
call fcn.10050b90
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 0x1009df76
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10046140
lea ecx, [ebp - 0x1c]
call fcn.10044760
mov ecx, dword [0x102ceeb0]
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 0x1009dfe7
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1009dfdd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1009dfdd
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1010f4da
add esp, 8
mov byte [edi + 5], 0
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.1010f802
mov esp, ebp
pop ebp
ret