Function at 0x1001dac0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov byte [0x100fc3e4], 0
cmp byte [0x100f92a4], 0
push ebx
push esi
push edi
je 0x1001e64d
mov ecx, dword [0x100fc340]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test al, al
jne 0x1001e64d
mov ecx, dword [0x100fc320]
mov esi, dword [ebp + 0xc]
mov byte [0x100fc3e4], 1
mov eax, dword [ecx]
push dword [esi + 0x30]
mov eax, dword [eax + 0xc]
call eax
test eax, eax
je 0x1001de9b
lea ecx, [eax + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x1001e646
cmp dword [eax + 0x14], 0x13f
jne 0x1001e646
mov eax, dword [0x100f929c]
test eax, eax
je 0x1001dc21
dec eax
cmp eax, 7
ja case.default.0x1001db4d
jmp dword [eax*4 + 0x1001e658]
push 0
push dword [0x100fc3c0]
jmp 0x1001dba2
push 0
push dword [0x100fc3c4]
jmp 0x1001dba2
push 0
push dword [0x100fc3c8]
jmp 0x1001dba2
push 0
push dword [0x100fc3d8]
jmp 0x1001dba2
push 0
push dword [0x100fc3dc]
jmp 0x1001dba2
push 0
push dword [0x100fc3e0]
jmp 0x1001dba2
push 0
push dword [0x100fc3cc]
jmp 0x1001dba2
push 0
push dword [0x100fc3d0]
mov ecx, dword [0x100fc35c]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov eax, dword [0x100f92e0]
movss xmm1, dword [0x100f0568]
movzx ecx, al
mov edx, dword [0x100fc34c]
movzx eax, ah
movd xmm0, ecx
lea ecx, [esp + 0x14]
cvtdq2ps xmm0, xmm0
push ecx
mov ecx, edx
mulss xmm0, xmm1
movss dword [esp + 0x18], xmm0
movd xmm0, eax
movzx eax, byte [0x100f92e2]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp + 0x1c], xmm0
movd xmm0, eax
mov eax, dword [edx]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp + 0x20], xmm0
call dword [eax + 0x18]
jmp 0x1001dc21
mov ecx, dword [0x100fc35c]
push 0
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
movss xmm0, dword [0x100f92b4]
movss xmm1, dword [0x100f06a8]
comiss xmm1, xmm0
jbe 0x1001dc47
mov ecx, dword [0x100fc34c]
push ecx
movss dword [esp], xmm0
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ebx, dword [ebp + 0x10]
mov eax, dword [0x100fb510]
mov ecx, dword [0x100fc35c]
push ebx
push esi
push dword [ebp + 8]
mov eax, dword [eax + 0x4c]
call eax
cmp byte [0x100f9294], 0
je 0x1001de4e
mov esi, dword [0x100fc3d4]
xor ecx, ecx
mov byte [esp + 0x12], 0
mov byte [esp + 0x11], 0
mov byte [esp + 0x13], 0
mov eax, dword [esi]
mov dword [esp + 0x14], 0xacaab1e4
mov dword [esp + 0x18], 0xaeb2a2aa
mov dword [esp + 0x1c], 0x100bda6
mov edx, dword [eax + 0x2c]
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0xa
jb 0x1001dca0
push 1
lea eax, [esp + 0x16]
mov byte [esp + 0x23], 0
push eax
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
call edx
cmp byte [esp + 0x12], 0
mov edi, eax
movss xmm1, dword [0x100f059c]
je 0x1001dd22
movzx ecx, byte [0x100f92e6]
sub esp, 0xc
mov eax, dword [0x100f92e4]
mov edx, dword [edi]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movzx ecx, ah
movzx eax, al
mulss xmm0, xmm1
movss dword [esp + 8], xmm0
movd xmm0, ecx
mov ecx, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp], xmm0
call dword [edx + 0x28]
mov eax, dword [esi]
xor ecx, ecx
mov dword [esp + 0x14], 0xb5aca4e4
mov dword [esp + 0x18], 0xb3b6a4a9
mov dword [esp + 0x1c], 0xbea7a1
mov edx, dword [eax + 0x2c]
mov byte [esp + 0x20], 1
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0xb
jb 0x1001dd46
push 1
lea eax, [esp + 0x15]
mov byte [esp + 0x24], 0
push eax
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
call edx
cmp byte [esp + 0x11], 0
mov edi, eax
je 0x1001ddc8
movzx ecx, byte [0x100f92e6]
sub esp, 0xc
movss xmm1, dword [0x100f059c]
mov eax, dword [0x100f92e4]
mov edx, dword [edi]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movzx ecx, ah
movzx eax, al
mulss xmm0, xmm1
movss dword [esp + 8], xmm0
movd xmm0, ecx
mov ecx, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp], xmm0
call dword [edx + 0x28]
mov eax, dword [esi]
xor ecx, ecx
mov dword [esp + 0x14], 0xaeabb3e4
mov dword [esp + 0x18], 0xafa1aca8
mov dword [esp + 0x1c], 0xa4a5abbc
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x20], 0x100b9bf
nop
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0xe
jb 0x1001ddf0
push 1
lea eax, [esp + 0x17]
mov byte [esp + 0x27], 0
push eax
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
call edx
cmp byte [esp + 0x11], 0
je 0x1001de27
mov edx, dword [eax]
mov ecx, eax
push dword [0x100f92ac]
call dword [edx + 0x10]
mov ecx, dword [0x100fc35c]
push 0
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov eax, dword [0x100fb510]
mov ecx, dword [0x100fc35c]
push ebx
push dword [ebp + 0xc]
mov eax, dword [eax + 0x4c]
push dword [ebp + 8]
call eax
mov ecx, dword [0x100fc35c]
push 0
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [0x100fc34c]
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x18], 0x3f800000
mov dword [esp + 0x1c], 0x3f800000
mov eax, dword [ecx]
mov dword [esp + 0x20], 0x3f800000
call dword [eax + 0x18]
movss xmm0, dword [0x100f06a8]
comiss xmm0, dword [0x100f92b4]
jmp 0x1001e626
mov edx, dword [esi + 0x1c]
test edx, edx
je 0x1001e646
mov ecx, dword [0x100fc324]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov edi, eax
mov esi, edi
lea eax, [esi + 1]
nop dword [eax + eax]
mov cl, byte [esi]
inc esi
test cl, cl
jne 0x1001dec0
sub esi, eax
mov dword [esp + 0x14], 0xb3a3a4b7
mov dword [esp + 0x18], 0x100abab
xor ecx, ecx
nop dword [eax + eax]
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 6
jb 0x1001dee0
lea ecx, [esp + 0x14]
mov byte [esp + 0x1b], 0
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001df00
sub ecx, edx
lea eax, [esp + 0x14]
push ecx
push eax
push ecx
mov edx, esi
mov ecx, edi
call fcn.1001e700
add esp, 0xc
cmp eax, 0xffffffff
je 0x1001e646
mov dword [esp + 0x14], 0xacb0b3a1
xor ecx, ecx
mov word [esp + 0x18], 0xb3
mov byte [esp + 0x1a], 1
nop dword [eax + eax]
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 5
jb 0x1001df40
lea ecx, [esp + 0x14]
mov byte [esp + 0x1a], 0
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001df60
sub ecx, edx
lea eax, [esp + 0x14]
push ecx
push eax
push ecx
mov edx, esi
mov ecx, edi
call fcn.1001e700
add esp, 0xc
cmp eax, 0xffffffff
jne 0x1001e646
mov dword [esp + 0x14], 0xbab19eb7
xor ecx, ecx
mov dword [esp + 0x18], 0xa0a8acb6
mov word [esp + 0x1c], 0xad
mov byte [esp + 0x1e], 1
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 9
jb 0x1001dfa3
lea ecx, [esp + 0x14]
mov byte [esp + 0x1e], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001dfc0
sub ecx, edx
lea eax, [esp + 0x14]
push ecx
push eax
push ecx
mov edx, esi
mov ecx, edi
call fcn.1001e700
add esp, 0xc
cmp eax, 0xffffffff
jne 0x1001e646
mov dword [esp + 0x14], 0xa6a0a9a9
xor ecx, ecx
mov word [esp + 0x18], 0x100
mov al, cl
sub al, 0x39
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 4
jb 0x1001dff6
lea ecx, [esp + 0x14]
mov byte [esp + 0x19], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001e010
sub ecx, edx
lea eax, [esp + 0x14]
push ecx
push eax
push ecx
mov edx, esi
mov ecx, edi
call fcn.1001e700
add esp, 0xc
cmp eax, 0xffffffff
jne 0x1001e646
mov dword [esp + 0x14], 0xafa7a9b3
xor ecx, ecx
mov word [esp + 0x18], 0xa8
mov byte [esp + 0x1a], 1
nop dword [eax + eax]
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 5
jb 0x1001e050
lea ecx, [esp + 0x14]
mov byte [esp + 0x1a], 0
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001e070
sub ecx, edx
lea eax, [esp + 0x14]
push ecx
push eax
push ecx
mov edx, esi
mov ecx, edi
call fcn.1001e700
add esp, 0xc
cmp eax, 0xffffffff
jne 0x1001e646
mov dword [esp + 0x14], 0xa2b0a0b0
xor ecx, ecx
mov dword [esp + 0x18], 0xb3b3ada7
mov word [esp + 0x1c], 0xad
mov byte [esp + 0x1e], 1
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 9
jb 0x1001e0b3
lea ecx, [esp + 0x14]
mov byte [esp + 0x1e], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001e0d0
sub ecx, edx
lea eax, [esp + 0x14]
push ecx
push eax
push ecx
mov edx, esi
mov ecx, edi
call fcn.1001e700
add esp, 0xc
cmp eax, 0xffffffff
jne 0x1001e646
mov dword [esp + 0x14], 0xa5a4b4a2
xor ecx, ecx
mov dword [esp + 0x18], 0xa9a8a4a6
mov dword [esp + 0x1c], 0x100bbad
nop
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0xa
jb 0x1001e110
lea ecx, [esp + 0x14]
mov byte [esp + 0x1f], 0
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001e130
sub ecx, edx
lea eax, [esp + 0x14]
push ecx
push eax
push ecx
mov edx, esi
mov ecx, edi
call fcn.1001e700
add esp, 0xc
cmp eax, 0xffffffff
jne 0x1001e646
movaps xmm0, xmmword [0x100f1680]
xor ecx, ecx
movups xmmword [esp + 0x14], xmm0
mov word [esp + 0x24], 0x100
nop word [eax + eax]
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0x10
jb 0x1001e170
lea ecx, [esp + 0x14]
mov byte [esp + 0x25], 0
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001e190
sub ecx, edx
lea eax, [esp + 0x14]
push ecx
push eax
push ecx
mov edx, esi
mov ecx, edi
call fcn.1001e700
add esp, 0xc
cmp eax, 0xffffffff
jne 0x1001e646
mov dword [esp + 0x14], 0xa4b0a0b4
xor ecx, ecx
mov word [esp + 0x18], 0xa1
mov byte [esp + 0x1a], 1
nop dword [eax + eax]
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 5
jb 0x1001e1d0
lea ecx, [esp + 0x14]
mov byte [esp + 0x1a], 0
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001e1f0
sub ecx, edx
lea eax, [esp + 0x14]
push ecx
push eax
push ecx
mov edx, esi
mov ecx, edi
call fcn.1001e700
add esp, 0xc
cmp eax, 0xffffffff
jne 0x1001e646
mov dword [esp + 0x14], 0xa6aba9b3
xor ecx, ecx
mov dword [esp + 0x18], 0x100a1a8
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 6
jb 0x1001e227
lea ecx, [esp + 0x14]
mov byte [esp + 0x1b], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001e241
sub ecx, edx
lea eax, [esp + 0x14]
push ecx
push eax
push ecx
mov edx, esi
mov ecx, edi
call fcn.1001e700
add esp, 0xc
cmp eax, 0xffffffff
jne 0x1001e646
mov dword [esp + 0x14], 0xa2b2a4b2
xor ecx, ecx
mov dword [esp + 0x18], 0xa499b7ad
mov dword [esp + 0x1c], 0xbda8a4
mov byte [esp + 0x20], 1
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0xb
jb 0x1001e285
lea ecx, [esp + 0x14]
mov byte [esp + 0x20], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001e2a0
sub ecx, edx
lea eax, [esp + 0x14]
push ecx
push eax
push ecx
mov edx, esi
mov ecx, edi
call fcn.1001e700
add esp, 0xc
cmp eax, 0xffffffff
jne 0x1001e646
mov eax, dword [0x100f92d4]
test eax, eax
je 0x1001e3b0
dec eax
cmp eax, 7
ja case.default.0x1001e2dc
jmp dword [eax*4 + 0x1001e678]
push 0
push dword [0x100fc3c0]
jmp 0x1001e331
push 0
push dword [0x100fc3c4]
jmp 0x1001e331
push 0
push dword [0x100fc3c8]
jmp 0x1001e331
push 0
push dword [0x100fc3d8]
jmp 0x1001e331
push 0
push dword [0x100fc3dc]
jmp 0x1001e331
push 0
push dword [0x100fc3e0]
jmp 0x1001e331
push 0
push dword [0x100fc3cc]
jmp 0x1001e331
push 0
push dword [0x100fc3d0]
mov ecx, dword [0x100fc35c]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov eax, dword [0x100f92e8]
movss xmm1, dword [0x100f0568]
movzx ecx, al
mov edx, dword [0x100fc34c]
movzx eax, ah
movd xmm0, ecx
lea ecx, [esp + 0x14]
cvtdq2ps xmm0, xmm0
push ecx
mov ecx, edx
mulss xmm0, xmm1
movss dword [esp + 0x18], xmm0
movd xmm0, eax
movzx eax, byte [0x100f92ea]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp + 0x1c], xmm0
movd xmm0, eax
mov eax, dword [edx]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp + 0x20], xmm0
call dword [eax + 0x18]
jmp 0x1001e3b0
mov ecx, dword [0x100fc35c]
push 0
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
movss xmm0, dword [0x100f92bc]
movss xmm1, dword [0x100f06a8]
comiss xmm1, xmm0
jbe 0x1001e3d6
mov ecx, dword [0x100fc34c]
push ecx
movss dword [esp], xmm0
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ebx, dword [ebp + 0x10]
mov eax, dword [0x100fb510]
mov ecx, dword [0x100fc35c]
push ebx
push dword [ebp + 0xc]
mov eax, dword [eax + 0x4c]
push dword [ebp + 8]
call eax
cmp byte [0x100f92c4], 0
je 0x1001e5de
mov esi, dword [0x100fc3d4]
xor ecx, ecx
mov byte [esp + 0x12], 0
mov byte [esp + 0x11], 0
mov byte [esp + 0x13], 0
mov eax, dword [esi]
mov dword [esp + 0x14], 0xacaab1e4
mov dword [esp + 0x18], 0xaeb2a2aa
mov dword [esp + 0x1c], 0x100bda6
mov edx, dword [eax + 0x2c]
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0xa
jb 0x1001e431
push 1
lea eax, [esp + 0x16]
mov byte [esp + 0x23], 0
push eax
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
call edx
cmp byte [esp + 0x12], 0
mov edi, eax
movss xmm1, dword [0x100f059c]
je 0x1001e4b3
movzx ecx, byte [0x100f92de]
sub esp, 0xc
mov eax, dword [0x100f92dc]
mov edx, dword [edi]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movzx ecx, ah
movzx eax, al
mulss xmm0, xmm1
movss dword [esp + 8], xmm0
movd xmm0, ecx
mov ecx, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp], xmm0
call dword [edx + 0x28]
mov eax, dword [esi]
xor ecx, ecx
mov dword [esp + 0x14], 0xb5aca4e4
mov dword [esp + 0x18], 0xb3b6a4a9
mov dword [esp + 0x1c], 0xbea7a1
mov edx, dword [eax + 0x2c]
mov byte [esp + 0x20], 1
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0xb
jb 0x1001e4d7
push 1
lea eax, [esp + 0x15]
mov byte [esp + 0x24], 0
push eax
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
call edx
cmp byte [esp + 0x11], 0
mov edi, eax
je 0x1001e559
movzx ecx, byte [0x100f92de]
sub esp, 0xc
movss xmm1, dword [0x100f059c]
mov eax, dword [0x100f92dc]
mov edx, dword [edi]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movzx ecx, ah
movzx eax, al
mulss xmm0, xmm1
movss dword [esp + 8], xmm0
movd xmm0, ecx
mov ecx, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp], xmm0
call dword [edx + 0x28]
mov eax, dword [esi]
xor ecx, ecx
mov dword [esp + 0x14], 0xaeabb3e4
mov dword [esp + 0x18], 0xafa1aca8
mov dword [esp + 0x1c], 0xa4a5abbc
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x20], 0x100b9bf
mov al, cl
sub al, 0x40
xor byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0xe
jb 0x1001e580
push 1
lea eax, [esp + 0x17]
mov byte [esp + 0x27], 0
push eax
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
call edx
cmp byte [esp + 0x13], 0
je 0x1001e5b7
mov edx, dword [eax]
mov ecx, eax
push dword [0x100f92cc]
call dword [edx + 0x10]
mov ecx, dword [0x100fc35c]
push 0
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov eax, dword [0x100fb510]
mov ecx, dword [0x100fc35c]
push ebx
push dword [ebp + 0xc]
mov eax, dword [eax + 0x4c]
push dword [ebp + 8]
call eax
mov ecx, dword [0x100fc35c]
push 0
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [0x100fc34c]
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x18], 0x3f800000
mov dword [esp + 0x1c], 0x3f800000
mov eax, dword [ecx]
mov dword [esp + 0x20], 0x3f800000
call dword [eax + 0x18]
movss xmm0, dword [0x100f06a8]
comiss xmm0, dword [0x100f92bc]
jbe 0x1001e63b
mov ecx, dword [0x100fc34c]
push ecx
mov dword [esp], 0x3f800000
mov eax, dword [ecx]
call dword [eax + 0x10]
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov byte [0x100fc3e4], 0
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0xc