Function at 0x1001f300
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x103140c9
mov eax, dword fs:[0]
push eax
sub esp, 0xc4
mov eax, dword [0x1043900c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x8c], ecx
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x2c]
mov edi, dword [ebp + 0x1c]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0xa0], esi
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x80], ebx
test esi, esi
je 0x1001f89e
test ecx, ecx
je 0x1001f89e
mov eax, dword fs:[0x2c]
xorps xmm0, xmm0
mov ecx, dword [0x104c14e0]
movss dword [ebp - 0x84], xmm0
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10611218]
cmp eax, dword [ecx + 4]
jg 0x1001f8be
mov ecx, dword [0x10611220]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x80], eax
call dword [ebp - 0x80]
mov eax, dword [esi]
mov ecx, esi
fstp dword [ebp - 0xb8]
mov eax, dword [eax + 0x734]
call eax
mov esi, eax
mov dword [ebp - 0x74], 0
push 1
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0xd0], vtable.CTraceFilter.0
call fcn.102bbdcb
mov ecx, dword [ebp - 0x88]
add esp, 4
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xcc], ecx
test esi, esi
je 0x1001f89e
movd xmm0, dword [esi + 0xf0]
mov eax, dword [0x1060b5e0]
cvtdq2ps xmm0, xmm0
movss dword [edi], xmm0
movss xmm1, dword [esi + 0x100]
movss xmm2, dword [esi + 0x10c]
movss dword [ebp - 0x90], xmm1
movss xmm1, dword [esi + 0x110]
movss dword [ebp - 0x9c], xmm2
movss dword [ebp - 0x80], xmm1
mov dword [eax + 0xc38], 4
mov dword [eax + 0xc3c], 0xffffffff
test ebx, ebx
je 0x1001f506
mov eax, dword [ebx + 4]
mov edx, dword [ebx]
sub eax, edx
mov ecx, eax
sar ecx, 2
test eax, eax
je 0x1001f9ab
movss xmm2, dword [edx]
movss dword [ebp - 0x9c], xmm2
cmp ecx, 1
jbe 0x1001f9ab
cmp ecx, 2
jbe 0x1001f9ab
movss xmm0, dword [edx + 8]
movss dword [ebp - 0x90], xmm0
cmp ecx, 3
jbe 0x1001f9ab
mov eax, dword [edx + 0xc]
mov dword [edi], eax
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
sub eax, ecx
sar eax, 2
cmp eax, 4
jbe 0x1001f9ab
movss xmm0, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x88]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [edi]
xor esi, esi
comiss xmm0, dword [0x1041ec1c]
mov dword [ebp - 0x98], esi
jbe 0x1001f89e
nop
mov eax, dword [ebp - 0x94]
lea edx, [ebp - 0x7c]
movaps xmm0, xmm2
mov ebx, dword [ebp - 0x8c]
subss xmm0, dword [ebp - 0x84]
push edx
push ecx
push 0x4600400b
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0xb0], esi
movaps xmm1, xmm0
movss dword [ebp - 0xb4], xmm0
mulss xmm1, dword [eax]
movaps xmm2, xmm0
push ecx
mulss xmm2, dword [eax + 4]
movaps xmm3, xmm0
lea ecx, [ebp + 8]
movss xmm0, dword [ebp + 8]
mulss xmm3, dword [eax + 8]
addss xmm0, xmm1
mov eax, dword [ebx]
push ecx
mov ecx, ebx
movss dword [ebp - 0xc4], xmm0
movss xmm0, dword [ebp + 0xc]
addss xmm0, xmm2
movss dword [ebp - 0xc0], xmm0
movss xmm0, dword [ebp + 0x10]
addss xmm0, xmm3
movss dword [ebp - 0xbc], xmm0
call dword [eax]
mov eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x7c]
movss xmm0, dword [0x1041efb4]
push dword [ebp - 0xa8]
movss xmm1, dword [eax]
movss xmm2, dword [eax + 4]
movss xmm3, dword [eax + 8]
mov eax, dword [ebx]
mulss xmm1, xmm0
push ecx
mulss xmm2, xmm0
lea ecx, [ebp - 0xd0]
push ecx
mulss xmm3, xmm0
lea ecx, [ebp - 0x1c]
push 0x4600400b
movss xmm0, dword [ebp + 8]
addss xmm0, xmm1
push ecx
lea ecx, [ebp + 8]
push ecx
mov ecx, ebx
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp + 0xc]
addss xmm0, xmm2
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [ebp + 0x10]
addss xmm0, xmm3
movss dword [ebp - 0x14], xmm0
call dword [eax + 0x18]
movss xmm1, dword [ebp - 0x50]
ucomiss xmm1, dword [0x1041edc4]
lahf
test ah, 0x44
jnp 0x1001f89e
mulss xmm1, dword [ebp - 0xb4]
movss xmm0, dword [ebp - 0x80]
addss xmm1, dword [ebp - 0x84]
movss dword [ebp - 0x84], xmm1
mulss xmm1, dword [0x1041ec60]
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_powf
test dword [ebp - 0x4c], 0x40000000
mulss xmm0, dword [edi]
movss dword [edi], xmm0
jne 0x1001f6e1
mov dword [ebp - 0x38], 1
mov bl, 1
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x1001f6f9
lea ecx, [eax + 8]
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
je 0x1001f6f6
mov ecx, dword [ebp - 0x30]
add ecx, 8
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [eax + 0x14]
mov eax, dword [0x1060b30c]
cmp ecx, dword [eax + 0x9c]
jne 0x1001f6f6
mov eax, dword [0x1060b5e0]
mov ecx, dword [eax + 0xaa8]
test ecx, ecx
je 0x1001f6da
cmp byte [ecx + 0x25f], 0
jne 0x1001f6da
call fcn.100c5eb0
mov ecx, dword [ebp - 0x30]
mov esi, eax
call fcn.100c5eb0
cmp eax, esi
mov esi, dword [ebp - 0x98]
je 0x1001f6f6
mov eax, dword [ebp - 0x30]
mov cl, 1
jmp 0x1001f6fb
mov eax, dword [ebp - 0x38]
test eax, eax
jle 0x1001f6ed
cmp eax, 8
jle 0x1001f679
cmp eax, 0xa
je 0x1001f679
xor bl, bl
jmp 0x1001f67b
mov eax, dword [ebp - 0x30]
xor cl, cl
test eax, eax
je 0x1001f77c
mov edx, dword [ebp - 0xa8]
test edx, edx
je 0x1001f770
cmp edx, eax
jne 0x1001f77c
test bl, bl
je 0x1001f77c
test cl, cl
je 0x1001f77c
mov ecx, dword [ebp - 0xa0]
call fcn.100ce1f0
mov edx, dword [ebp - 0x38]
xor ecx, ecx
cmp eax, 0x1f
mov eax, dword [0x1060b5e0]
cmove edx, ecx
mov dword [eax + 0xc3c], edx
mov ecx, dword [ebp - 0x8c]
lea edx, [ebp - 0x7c]
push edi
push dword [ebp - 0xa4]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov ecx, dword [ebp - 0xac]
test ecx, ecx
je 0x1001f75d
test esi, esi
sete al
mov byte [ecx], al
mov eax, dword [0x1060b5e0]
mov byte [eax + 0xc40], 0
mov al, 1
jmp 0x1001f8a0
test bl, bl
je 0x1001f77c
test cl, cl
jne 0x1001f878
movss xmm0, dword [ebp - 0x84]
comiss xmm0, dword [ebp - 0x9c]
jbe 0x1001f7a6
movss xmm0, dword [ebp - 0x90]
ucomiss xmm0, dword [0x1041ec1c]
lahf
test ah, 0x44
jp 0x1001f89e
mov ecx, dword [0x1060b2c4]
movsx edx, word [ebp - 0x3c]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
movss xmm0, dword [0x1041ecd4]
comiss xmm0, dword [eax + 0x58]
ja 0x1001f89e
mov esi, dword [ebp - 0x8c]
movss xmm0, dword [ebp - 0xb8]
mov ecx, dword [0x1060b5e0]
push 0
mov eax, dword [esi]
sub esp, 8
add ecx, 0xc38
mov edx, dword [eax + 0x10]
mov ebx, dword [ecx]
mov eax, dword [ebp - 0x94]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x90]
movss dword [esp], xmm0
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
push edi
push ecx
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea eax, [ebp + 8]
mov ecx, dword [ebp - 0x88]
push eax
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0xa4]
push ecx
mov ecx, esi
call edx
test al, al
je 0x1001f89e
mov ecx, dword [ebp - 0xb0]
mov eax, dword [0x1060b5e0]
movss xmm0, dword [edi]
lea esi, [ecx + 1]
cmp ebx, dword [eax + 0xc38]
cmove esi, ecx
comiss xmm0, dword [0x1041ec1c]
mov dword [ebp - 0x98], esi
jbe 0x1001f89e
movss xmm2, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x88]
jmp 0x1001f520
mov ecx, dword [ebp - 0xa0]
call fcn.100ce1f0
mov ecx, dword [ebp - 0x38]
xor edx, edx
cmp eax, 0x1f
mov eax, dword [0x1060b5e0]
cmove ecx, edx
mov dword [eax + 0xc3c], ecx
jmp 0x1001f736
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.102bb91c
mov esp, ebp
pop ebp
ret 0x28
push 0x10611218
call fcn.102bba07
add esp, 4
cmp dword [0x10611218], 0xffffffff
jne 0x1001f3a5
mov dword [ebp - 4], 0
cmp byte [0x104390e0], 0
jne 0x1001f955
mov byte [0x104390e0], 1
xor esi, esi
jmp 0x1001f8f3
xor edx, edx
mov ebx, esi
xor edx, dword [0x10439104]
xor ebx, dword [0x10439100]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
shr ecx, 7
xor ebx, eax
xor edx, ecx
mov ecx, ebx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, bl
xor cl, byte [esi + str.z_y4]
mov byte [esi + str.z_y4], cl
inc esi
cmp esi, 0x1d
jb 0x1001f8f3
mov ebx, dword [ebp - 0x80]
mov esi, dword [ebp - 0xa0]
jmp 0x1001f955
push ecx
push 0x104390fd
push str.z_y4
lea ecx, [ebp - 0x28]
call fcn.1001a620
mov byte [ebp - 4], 1
lea edx, [ebp - 0x28]
mov ecx, dword [0x1060b27c]
cmp dword [ebp - 0x14], 0x10
cmovae edx, dword [ebp - 0x28]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x40]
call eax
lea ecx, [ebp - 0x28]
mov dword [0x10611220], eax
call fcn.10019dd0
push 0x10611218
mov dword [ebp - 4], 0xffffffff
call fcn.102bb9b6
add esp, 4
jmp 0x1001f3a5
call fcn.1001fef0
int3