Function at 0x10029f50
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e6496
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x4e8
mov eax, dword [0x100ff040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x4a0], eax
mov ecx, dword [eax]
mov eax, dword [0x10141bd4]
mov edi, dword [ebx + 8]
mov dword [ebp - 0x4a4], edi
mov eax, dword [ecx + eax]
mov dword [ebp - 0x4b0], eax
test eax, eax
je 0x1002b403
mov eax, dword [0x10141cf8]
add eax, 0xffffffa3
xor eax, 0xd71943a0
mov eax, dword [eax + ecx]
mov ecx, dword [0x10141a3c]
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
mov ecx, eax
test ecx, ecx
je 0x1002b403
mov eax, dword [ecx]
mov eax, dword [eax + 0x6f8]
call eax
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1002b403
mov esi, dword [ebp - 0x4a0]
mov ecx, dword [0x10141bc4]
mov edx, dword [esi]
movss xmm0, dword [ecx + edx]
ucomiss xmm0, dword [esi + 4]
lahf
test ah, 0x44
jnp 0x1002a030
mov ecx, dword [ebp - 0x4b0]
call fcn.100293a0
mov eax, dword [0x10141bc4]
mov edx, dword [esi]
mov eax, dword [eax + edx]
mov dword [esi + 4], eax
mov ecx, dword [0x10141a94]
mov eax, dword [0x10141c8c]
add eax, 0xffffffbe
xor eax, 0xd7194385
movss xmm0, dword [ecx + 0x10]
movss dword [ebp - 0x4dc], xmm0
movss xmm0, dword [ecx + 0x14]
mov eax, dword [eax + edx]
mov dword [ecx], eax
mov ecx, dword [0x10141c8c]
mov eax, dword [esi]
add ecx, 0xffffffbe
xor ecx, 0xd7194385
movss dword [ebp - 0x4bc], xmm0
mov ecx, dword [ecx + eax]
mov eax, dword [0x10141a94]
mov dword [eax], ecx
mov ecx, dword [0x10141c8c]
mov eax, dword [esi]
add ecx, 0xffffffbe
xor ecx, 0xd7194385
movss xmm0, dword [ecx + eax]
mov eax, dword [0x10141a94]
movss dword [eax + 0x10], xmm0
mov ecx, dword [0x10141a94]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 0x14], eax
mov ecx, dword [0x10141a94]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 8], eax
mov ecx, dword [0x10141c8c]
mov eax, dword [esi]
add ecx, 0xffffffbe
xor ecx, 0xd7194385
movss xmm1, dword [0x100f3df4]
movss xmm0, dword [ecx + eax]
mov ecx, dword [0x10141a94]
divss xmm0, dword [ecx + 0x20]
addss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [ecx + 4], eax
mov ecx, dword [0x10141c8c]
mov eax, dword [esi]
add ecx, 0xffffffbe
xor ecx, 0xd7194385
movss xmm0, dword [ecx + eax]
mov ecx, dword [0x10141a94]
divss xmm0, dword [ecx + 0x20]
addss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [ecx + 0x1c], eax
mov eax, dword [0x10141a94]
mov dword [eax + 0x24], 0
mov eax, dword [edi + 0xc]
dec eax
cmp eax, 0x10
ja 0x1002a150
cmp dword [esi + 0x18], 2
jbe 0x1002a150
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
inc edx
dec eax
mov ecx, edx
shr ecx, 1
and edx, 1
and ecx, eax
mov eax, dword [esi + 0xc]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + edx*8]
cmp byte [eax + 0x10], 0
je 0x1002a15b
mov eax, dword [0x10141a94]
mov ecx, dword [edi + 0x14]
mov dword [eax + 0x10], ecx
mov ecx, dword [0x10141a94]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 0x14], eax
mov eax, dword [0x10141c18]
mov ecx, dword [esi]
add eax, 0xffffffdb
xor eax, 0xd7194368
movss xmm0, dword [eax + ecx]
movss dword [ebp - 0x338], xmm0
movss xmm0, dword [eax + ecx + 4]
movss dword [ebp - 0x334], xmm0
movss xmm0, dword [eax + ecx + 8]
movss dword [ebp - 0x330], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov edx, dword [esi]
lea edi, [ebp - 0x2f8]
mov esi, dword [0x10141bc0]
mov ecx, 0xb6
movss xmm0, dword [eax]
movss dword [ebp - 0x32c], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0x328], xmm0
movss xmm0, dword [eax + 8]
mov eax, dword [0x10141c24]
add eax, 0xffffffd8
movss dword [ebp - 0x324], xmm0
xor eax, 0xd719436b
movss xmm0, dword [eax + edx]
movss dword [ebp - 0x320], xmm0
movss xmm0, dword [eax + edx + 4]
movss dword [ebp - 0x31c], xmm0
movss xmm0, dword [eax + edx + 8]
mov eax, dword [0x10141c54]
add eax, 0xffffffcc
movss dword [ebp - 0x318], xmm0
xor eax, 0xd7194377
movss xmm0, dword [eax + edx]
movss dword [ebp - 0x314], xmm0
movss xmm0, dword [eax + edx + 4]
movss dword [ebp - 0x310], xmm0
movss xmm0, dword [eax + edx + 8]
mov eax, dword [0x10141c5c]
add eax, 0xffffffca
movss dword [ebp - 0x30c], xmm0
xor eax, 0xd7194379
mov eax, dword [eax + edx]
mov dword [ebp - 0x308], eax
mov eax, dword [0x10141ce4]
add eax, 0xffffffa8
xor eax, 0xd719439b
mov eax, dword [eax + edx]
mov dword [ebp - 0x304], eax
mov eax, dword [0x10141c88]
add eax, 0xffffffbf
xor eax, 0xd7194384
movss xmm0, dword [eax + edx]
mov eax, dword [0x10141c94]
add eax, 0xffffffbc
movss dword [ebp - 0x300], xmm0
xor eax, 0xd7194387
movss xmm0, dword [eax + edx]
mov eax, dword [0x10141b54]
movss dword [ebp - 0x2fc], xmm0
mov esi, dword [esi + edx]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x4a4]
lea ecx, [edi + 0x20]
push ecx
mov ecx, edx
call eax
mov esi, dword [ebp - 0x4a0]
mov ecx, dword [esi]
add ecx, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [0x10141a38]
mov edx, dword [ecx]
mov edx, dword [edx + 0x20]
lea esi, [ebp - 0x490]
push esi
push eax
call edx
mov esi, dword [ebp - 0x4a0]
lea ecx, [ebp - 0x49c]
neg al
mov dword [ebp - 0x49c], 0x454e4f4e
mov byte [ebp - 0x498], 0
lea edx, [ecx + 1]
sbb al, al
and al, byte [ebp - 0x354]
mov byte [ebp - 0x491], al
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002a320
sub ecx, edx
lea eax, [ebp - 0x49c]
push ecx
push eax
lea ecx, [edi + 0x84]
call fcn.10031150
mov byte [edi + 0xa34], 0
mov byte [edi + 0x81], 0
mov dword [edi + 0xa30], 0
mov eax, dword [0x10141cf8]
mov ecx, dword [esi]
add eax, 0xffffffa3
xor eax, 0xd71943a0
mov eax, dword [eax + ecx]
mov ecx, dword [0x10141a3c]
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
mov esi, dword [ebp - 0x4a0]
mov dword [edi + 0xa44], eax
mov eax, dword [0x10141ca8]
add eax, 0xffffffb7
mov ecx, dword [esi]
xor eax, 0xd719438c
cmp byte [eax + ecx], 0
mov eax, dword [ebp - 0x18]
je 0x1002a3a6
movss xmm0, dword [eax + 0x130]
jmp 0x1002a3ae
movss xmm0, dword [eax + 0x12c]
mov eax, dword [0x10141cbc]
sub esp, 8
add eax, 0xffffffb2
xor eax, 0xd7194391
movss dword [esp + 4], xmm0
movss xmm0, dword [eax + ecx]
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_fminf]
lea eax, [edi + 0x38]
push eax
fstp dword [ebp - 0x4b4]
mov dword [ebp - 0x4b8], eax
call sub.api_ms_win_crt_math_l1_1_0.dll__fdtest
add esp, 0xc
test ax, ax
jg 0x1002a413
lea eax, [edi + 0x3c]
push eax
call sub.api_ms_win_crt_math_l1_1_0.dll__fdtest
add esp, 4
test ax, ax
jg 0x1002a413
lea eax, [edi + 0x40]
push eax
call sub.api_ms_win_crt_math_l1_1_0.dll__fdtest
add esp, 4
test ax, ax
jle 0x1002a428
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
mov eax, dword [edi + 0xc]
movss xmm7, dword [0x100f3e34]
dec eax
movss xmm3, dword [0x100f3d84]
cmp eax, 0xf
movss xmm5, dword [0x100f3dd0]
mov al, byte [ebp - 0x491]
ja 0x1002aae8
test al, al
jne 0x1002aae8
cmp dword [esi + 0x18], 1
jbe 0x1002aae8
mov eax, dword [esi + 0x14]
lea edx, [edi + 0x38]
inc eax
xorps xmm0, xmm0
mov dword [ebp - 0x4a8], eax
mov ecx, eax
mov eax, dword [esi + 0x10]
and dword [ebp - 0x4a8], 1
dec eax
shr ecx, 1
and ecx, eax
movlpd qword [ebp - 0x20], xmm0
mov eax, dword [esi + 0xc]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x4a8]
mov dword [ebp - 0x4ac], eax
cmp dword [eax + ecx*8 + 4], 0
je 0x1002a4af
mov edx, dword [eax + ecx*8 + 4]
lock inc dword [edx + 4]
lea edx, [edi + 0x38]
mov esi, dword [ebp - 0x4ac]
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x4a8], eax
mov dword [ebp - 0x20], eax
mov ecx, dword [esi + ecx*8 + 4]
mov dword [ebp - 0x4a4], ecx
mov dword [ebp - 0x1c], ecx
mov esi, dword [ebp - 0x4a0]
mov dword [ebp - 4], 0
movss xmm0, dword [0x100f3d14]
test eax, eax
je 0x1002a856
cmp byte [eax + 0x10], 0
jne 0x1002a856
movd xmm0, dword [edi + 0xc]
movaps xmm3, xmm7
mov eax, dword [0x10141a94]
cvtdq2ps xmm0, xmm0
movss xmm2, dword [edi + 0x24]
mulss xmm0, dword [eax + 0x20]
mov eax, dword [ebp - 0x4a8]
movss xmm4, dword [edi + 0x20]
divss xmm3, xmm0
movaps xmm1, xmm3
movaps xmm0, xmm3
mulss xmm1, dword [eax + 0x24]
mulss xmm0, dword [eax + 0x20]
mulss xmm3, dword [eax + 0x28]
subss xmm2, xmm1
movss xmm1, dword [edi + 0x28]
subss xmm4, xmm0
subss xmm1, xmm3
movss dword [edx + 4], xmm2
movaps xmm0, xmm4
movss dword [edx], xmm4
movss dword [edx + 8], xmm1
call fcn.10028bf0
movss xmm1, dword [0x100f3d1c]
comiss xmm1, xmm0
jbe 0x1002a56d
mov dword [edx], 0
movss xmm0, dword [edi + 0x3c]
lea eax, [edi + 0x3c]
mov dword [ebp - 0x4ac], eax
call fcn.10028bf0
comiss xmm1, xmm0
jbe 0x1002a58b
mov dword [eax], 0
movss xmm0, dword [edi + 0x40]
call fcn.10028bf0
comiss xmm1, xmm0
jbe 0x1002a5a1
mov dword [edi + 0x40], 0
push edx
call sub.api_ms_win_crt_math_l1_1_0.dll__fdtest
add esp, 4
test ax, ax
jg 0x1002a5d1
lea eax, [edi + 0x3c]
push eax
call sub.api_ms_win_crt_math_l1_1_0.dll__fdtest
add esp, 4
test ax, ax
jg 0x1002a5d1
lea eax, [edi + 0x40]
push eax
call sub.api_ms_win_crt_math_l1_1_0.dll__fdtest
add esp, 4
test ax, ax
jle 0x1002a5ea
lea eax, [edi + 0x38]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
jmp 0x1002a5ed
lea eax, [edi + 0x38]
mov ecx, dword [ebp - 0x4ac]
movss xmm1, dword [eax]
movss xmm0, dword [ecx]
call fcn.10028bb0
mov eax, dword [ebp - 0x4a8]
movaps xmm3, xmm0
mulss xmm3, dword [0x100f3f4c]
movss xmm1, dword [eax + 0x38]
movss xmm0, dword [eax + 0x3c]
movss dword [ebp - 0x49c], xmm3
call fcn.10028bb0
mulss xmm0, dword [0x100f3f4c]
lea ecx, [ebp - 0x18]
movaps xmm1, xmm3
subss xmm1, xmm0
movss dword [ebp - 0x18], xmm1
call fcn.100cb6b0
mov eax, dword [ebp - 0x4a8]
movss xmm0, dword [eax + 0x3c]
movss xmm2, dword [eax + 0x38]
movss xmm1, dword [eax + 0x40]
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm0, xmm2
addss xmm0, xmm1
call fcn.10028c20
xorps xmm2, xmm2
comiss xmm0, xmm2
jbe 0x1002a748
test byte [edi + 0x1c], 1
je 0x1002a68e
test byte [eax + 0x1c], 1
jne 0x1002a748
mov eax, dword [ebp - 0x4b8]
movss xmm0, dword [eax]
mov eax, dword [ebp - 0x4ac]
mulss xmm0, xmm0
movss xmm1, dword [eax]
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10028c20
movss xmm2, dword [ebp - 0x18]
movss xmm1, dword [0x100f3fb4]
comiss xmm1, xmm2
movss dword [ebp - 0x4ac], xmm0
jb 0x1002a6e4
movss xmm0, dword [0x100f406c]
comiss xmm0, xmm2
jbe 0x1002a6ec
addss xmm2, dword [0x100f3fdc]
jmp 0x1002a6ec
subss xmm2, dword [0x100f3fdc]
mulss xmm2, dword [0x100f3df4]
addss xmm2, dword [ebp - 0x49c]
mulss xmm2, dword [0x100f3d48]
addss xmm2, dword [0x100f3e60]
movaps xmm0, xmm2
movss dword [ebp - 0x49c], xmm2
call fcn.10028c10
mulss xmm0, dword [ebp - 0x4ac]
movss dword [edi + 0x38], xmm0
movss xmm0, dword [ebp - 0x49c]
call fcn.10028be0
mulss xmm0, dword [ebp - 0x4ac]
movss dword [edi + 0x3c], xmm0
jmp 0x1002a913
movss xmm3, dword [edi + 0x38]
movss xmm4, dword [edi + 0x3c]
movaps xmm0, xmm3
movaps xmm1, xmm4
mulss xmm0, xmm3
mulss xmm1, xmm4
addss xmm0, xmm1
call fcn.10028c20
movaps xmm6, xmm0
comiss xmm6, dword [0x100f3d84]
jb 0x1002a913
movss xmm0, dword [ebp - 0x18]
call fcn.10028bf0
movss xmm7, dword [0x100f3e34]
comiss xmm7, xmm0
jbe 0x1002a913
movss xmm0, dword [edi + 0x78]
subss xmm0, dword [eax + 0x78]
call fcn.10028bf0
comiss xmm2, xmm0
jb 0x1002a913
movss xmm5, dword [edi + 0x830]
comiss xmm5, dword [eax + 0x830]
jbe 0x1002a913
movss xmm1, dword [edi + 0x828]
comiss xmm1, dword [eax + 0x828]
jbe 0x1002a913
movss xmm0, dword [0x100f3e04]
comiss xmm0, xmm1
jb 0x1002a913
comiss xmm1, xmm2
jbe 0x1002a913
ucomiss xmm5, xmm2
lahf
test ah, 0x44
jp 0x1002a813
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
jmp 0x1002a913
test byte [edi + 0x1c], 6
movaps xmm2, xmm7
je 0x1002a826
movss xmm2, dword [0x100f3dd0]
jmp 0x1002a837
cmp byte [edi + 0xa34], 0
je 0x1002a837
movss xmm2, dword [0x100f3df8]
mulss xmm2, dword [ebp - 0x4b4]
mulss xmm2, xmm1
movaps xmm1, xmm7
divss xmm1, xmm6
movaps xmm0, xmm1
mulss xmm1, xmm4
jmp 0x1002a8fd
comiss xmm0, dword [edi + 0x830]
jbe 0x1002a878
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
jmp 0x1002a913
movss xmm3, dword [edx]
movss xmm1, dword [edx + 4]
movaps xmm0, xmm3
mulss xmm0, xmm3
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10028c20
movaps xmm4, xmm0
ucomiss xmm4, dword [0x100f3d00]
lahf
test ah, 0x44
jnp 0x1002a913
movss xmm1, dword [edi + 0x828]
comiss xmm1, dword [0x100f3d44]
jbe 0x1002a913
movss xmm0, dword [0x100f3e28]
comiss xmm0, xmm1
jbe 0x1002a913
test byte [edi + 0x1c], 6
movaps xmm2, xmm7
je 0x1002a8d1
movaps xmm2, xmm5
jmp 0x1002a8e2
cmp byte [edi + 0xa34], 0
je 0x1002a8e2
movss xmm2, dword [0x100f3df8]
mulss xmm2, dword [ebp - 0x4b4]
mulss xmm2, xmm1
movaps xmm1, xmm7
divss xmm1, xmm4
movaps xmm0, xmm1
mulss xmm1, dword [edi + 0x3c]
mulss xmm0, xmm3
mulss xmm1, xmm2
mulss xmm0, xmm2
movss dword [edi + 0x3c], xmm1
movss dword [edi + 0x38], xmm0
test byte [edi + 0x1c], 1
jne 0x1002a990
movd xmm0, dword [edi + 0xc]
mov eax, dword [0x10141a94]
mov ecx, dword [0x10141ae4]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x4b8], xmm0
movss xmm0, dword [eax + 0x20]
mov eax, dword [ecx]
movss dword [ebp - 0x4b4], xmm0
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x49c], eax
call dword [ebp - 0x49c]
movss xmm0, dword [ebp - 0x4b4]
mulss xmm0, dword [0x100f3df4]
fmul dword [ebp - 0x4b8]
movss dword [ebp - 0x49c], xmm0
movss xmm0, dword [edi + 0x40]
fmul dword [ebp - 0x49c]
fstp dword [ebp - 0x49c]
subss xmm0, dword [ebp - 0x49c]
movss dword [edi + 0x40], xmm0
jmp 0x1002a997
mov dword [edi + 0x40], 0
lea eax, [edi + 0x38]
push eax
call sub.api_ms_win_crt_math_l1_1_0.dll__fdtest
add esp, 4
test ax, ax
jg 0x1002a9ca
lea eax, [edi + 0x3c]
push eax
call sub.api_ms_win_crt_math_l1_1_0.dll__fdtest
add esp, 4
test ax, ax
jg 0x1002a9ca
lea eax, [edi + 0x40]
push eax
call sub.api_ms_win_crt_math_l1_1_0.dll__fdtest
add esp, 4
test ax, ax
jle 0x1002a9df
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
test byte [edi + 0x1c], 1
je 0x1002aa42
movss xmm2, dword [edi + 0x3c]
movss xmm0, dword [edi + 0x38]
movss xmm1, dword [edi + 0x40]
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm0, xmm2
addss xmm0, xmm1
call fcn.10028c20
movss xmm3, dword [0x100f3d84]
comiss xmm0, xmm3
jbe 0x1002aa4a
movss xmm0, dword [0x100f3d14]
comiss xmm0, dword [edi + 0x830]
jbe 0x1002aa4a
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
jmp 0x1002aa4a
movss xmm3, dword [0x100f3d84]
mov eax, dword [ebp - 0x4a8]
movss xmm1, dword [edi + 0x20]
movss xmm0, dword [edi + 0x24]
subss xmm1, dword [eax + 0x20]
subss xmm0, dword [eax + 0x24]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
comiss xmm1, dword [0x100f3ffc]
jbe 0x1002aa94
mov ecx, dword [0x10141c5c]
mov eax, dword [esi]
add ecx, 0xffffffca
xor ecx, 0xd7194379
test byte [ecx + eax], 1
jne 0x1002aa94
mov al, 1
jmp 0x1002aa96
xor al, al
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x4a4]
mov byte [edi + 0xa0c], al
test ecx, ecx
je 0x1002aada
mov eax, 0xffffffff
lock xadd dword [ecx + 4], eax
jne 0x1002aada
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x4a4]
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x1002aad2
mov eax, dword [ecx]
call dword [eax + 4]
movss xmm3, dword [0x100f3d84]
movss xmm7, dword [0x100f3e34]
mov al, byte [ebp - 0x491]
cmp dword [edi + 0xc], 1
jle 0x1002ad09
test al, al
jne 0x1002ad09
movss xmm2, dword [edi + 0x3c]
movss xmm0, dword [edi + 0x38]
movss xmm1, dword [edi + 0x40]
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm0, xmm2
addss xmm0, xmm1
call fcn.10028c20
test byte [edi + 0x1c], 1
xorps xmm2, xmm2
je 0x1002ab48
movss xmm1, dword [edi + 0x830]
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jp 0x1002ab48
comiss xmm0, xmm3
seta al
mov byte [edi + 0xa34], al
cmp byte [edi + 0xa34], 0
je 0x1002ab84
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
mov dword [edi + 0x9f0], 0
mov dword [edi + 0x9f4], 0
mov dword [edi + 0x9f8], 0
cmp dword [esi + 0x18], 2
jb 0x1002ad09
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
inc edx
mov ecx, edx
dec eax
shr ecx, 1
and edx, 1
and ecx, eax
mov eax, dword [esi + 0xc]
mov eax, dword [eax + ecx*4]
mov edx, dword [eax + edx*8]
mov dword [ebp - 0x4a4], edx
test edx, edx
je 0x1002ad09
cmp byte [edx + 0x10], 0
jne 0x1002ad09
mov ecx, dword [0x10141c5c]
mov eax, dword [esi]
add ecx, 0xffffffca
mov edx, dword [edx + 0x1c]
xor ecx, 0xd7194379
mov dword [ecx + eax], edx
mov ecx, dword [0x10141c5c]
mov eax, dword [esi]
add ecx, 0xffffffca
mov edx, dword [ebp - 0x4a4]
xor ecx, 0xd7194379
and dword [ecx + eax], 0xfffffffe
test byte [edi + 0x1c], 1
je 0x1002ac13
test byte [edx + 0x1c], 1
je 0x1002ac13
mov ecx, dword [0x10141c5c]
mov eax, dword [esi]
add ecx, 0xffffffca
xor ecx, 0xd7194379
or dword [ecx + eax], 1
movss xmm0, dword [edi + 0x7b8]
ucomiss xmm0, xmm7
lahf
test ah, 0x44
jnp 0x1002ac5b
movss xmm0, dword [edx + 0x7b8]
ucomiss xmm0, xmm7
lahf
test ah, 0x44
jp 0x1002ac5b
movss xmm0, dword [edi + 0x7f0]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x1002ac5b
mov ecx, dword [0x10141c5c]
mov eax, dword [esi]
add ecx, 0xffffffca
xor ecx, 0xd7194379
or dword [ecx + eax], 1
test byte [edi + 0x1c], 1
je 0x1002ac7c
test byte [edx + 0x1c], 1
jne 0x1002ac7c
mov ecx, dword [0x10141c5c]
mov eax, dword [esi]
add ecx, 0xffffffca
xor ecx, 0xd7194379
and dword [ecx + eax], 0xfffffffe
cmp byte [edi + 0xa34], 0
movss xmm3, dword [edi + 0x14]
subss xmm3, dword [edx + 0x14]
jne 0x1002ad09
movss xmm6, dword [edx + 0x38]
movss xmm2, dword [edi + 0x38]
divss xmm7, xmm3
mov eax, dword [0x10141a94]
movss xmm5, dword [edx + 0x3c]
subss xmm2, xmm6
movss xmm4, dword [edx + 0x40]
movaps xmm3, xmm7
movss xmm0, dword [edi + 0x40]
movss xmm1, dword [edi + 0x3c]
subss xmm0, xmm4
subss xmm1, xmm5
mulss xmm3, xmm2
movaps xmm2, xmm7
mulss xmm7, xmm0
movss xmm0, dword [eax + 0x20]
mulss xmm2, xmm1
mulss xmm3, xmm0
mulss xmm2, xmm0
mulss xmm7, xmm0
addss xmm6, xmm3
addss xmm5, xmm2
addss xmm4, xmm7
movss dword [edi + 0x9f0], xmm6
movss dword [edi + 0x9f4], xmm5
movss dword [edi + 0x9f8], xmm4
test byte [edi + 0x1c], 1
mov byte [edi + 0xa34], 0
je 0x1002ae14
movss xmm1, dword [edi + 0x9f4]
movss xmm0, dword [edi + 0x9f0]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10028c20
movss xmm5, dword [0x100f3d84]
comiss xmm5, xmm0
jae 0x1002ae14
movss xmm1, dword [edi + 0x7c]
mulss xmm1, dword [0x100f3dd0]
comiss xmm0, xmm1
ja 0x1002ae14
cmp dword [edi + 0xc], 3
jle 0x1002ae14
movss xmm0, dword [edi + 0x830]
xor al, al
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1002ad9c
movss xmm0, dword [edi + 0x828]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1002ad9c
mov byte [edi + 0xa34], 1
mov al, 1
movss xmm0, dword [edi + 0x978]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1002adbf
comiss xmm5, dword [edi + 0x828]
jbe 0x1002adbf
mov byte [edi + 0xa34], 1
jmp 0x1002adc3
test al, al
je 0x1002ae14
mov dword [edi + 0xa1c], 0
mov dword [edi + 0xa20], 0
mov dword [edi + 0xa24], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
mov dword [edi + 0x9f0], 0
mov dword [edi + 0x9f4], 0
mov dword [edi + 0x9f8], 0
mov eax, dword [0x101472b8]
test al, 1
jne 0x1002af65
or eax, 1
mov dword [0x101472b8], eax
push 0x100ef0f0
mov dword [ebp - 4], 1
call fcn.100e5092
movaps xmm0, xmmword [0x100f47b0]
add esp, 4
xorps xmm0, xmmword [0x100f4560]
mov eax, 0x10
mov dword [ebp - 0x4c8], 0x8f9b8283
mov dword [ebp - 0x4c4], 0x8b8c9b8c
mov byte [ebp - 0x4c0], 0xbb
movups xmmword [ebp - 0x4d8], xmm0
xor byte [ebp + eax - 0x4d8], 0xbb
inc eax
cmp eax, 0x19
jb 0x1002ae72
xorps xmm0, xmm0
mov dword [ebp - 0x4e4], 0
lea ecx, [ebp - 0x4d8]
mov dword [ebp - 0x4e0], 0
movups xmmword [ebp - 0x4f4], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002aea7
sub ecx, edx
lea eax, [ebp - 0x4d8]
push ecx
push eax
lea ecx, [ebp - 0x4f4]
call fcn.10031600
mov byte [ebp - 4], 2
mov edx, dword [0x101419fc]
test edx, edx
je 0x1002aed6
mov edx, dword [edx + 0x50]
jmp 0x1002aed8
xor edx, edx
mov eax, dword [0x101419f4]
test eax, eax
je 0x1002aee6
mov eax, dword [eax + 0x18]
jmp 0x1002aee8
xor eax, eax
lea ecx, [ebp - 0x4f4]
push ecx
push eax
lea ecx, [ebp - 0x49c]
call fcn.10028e70
mov eax, dword [ebp - 0x49c]
add esp, 8
test eax, eax
je 0x1002af0d
add eax, 2
jmp 0x1002af0f
xor eax, eax
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x4e0]
mov dword [0x101472c0], eax
mov dword [0x101472bc], 0x101472c0
cmp ecx, 0xf
jbe 0x1002af5e
mov edx, dword [ebp - 0x4f4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1002af54
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1002af54
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100e50a7
add esp, 8
mov dword [ebp - 4], 0xffffffff
xor edx, edx
nop word [eax + eax]
mov ecx, dword [esi]
mov eax, dword [0x10141bc0]
mov eax, dword [eax + ecx]
mov dword [eax + edx + 0x30], ecx
add edx, 0x38
cmp edx, 0x2d8
jl 0x1002af70
cmp byte [ebp - 0x491], 0
jne 0x1002b007
cmp byte [0x10100ccc], 0
je 0x1002b007
mov ecx, dword [esi]
add ecx, 8
mov byte [ebp - 0x491], 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
push ecx
push edi
push dword [esi]
call fcn.100d6510
mov eax, dword [edi + 0xa30]
cmp eax, 9
jne 0x1002afd1
cmp dword [edi + 0xc], 0xf
jl 0x1002aff1
mov byte [edi + 0x81], 0
jmp 0x1002b01a
cmp eax, 1
je 0x1002aff1
cmp eax, 0x19
je 0x1002aff1
xor al, al
mov byte [edi + 0x81], al
mov al, byte [ebp - 0x491]
mov byte [ebp - 0x491], al
jmp 0x1002b01a
mov al, 1
mov byte [edi + 0x81], al
mov al, byte [ebp - 0x491]
mov byte [ebp - 0x491], al
jmp 0x1002b01a
mov ecx, dword [esi]
add ecx, 8
mov byte [ebp - 0x491], 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [0x10141c18]
mov eax, dword [edi + 0x20]
add ecx, 0xffffffdb
xor ecx, 0xd7194368
add ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [edi + 0x24]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x28]
mov dword [ecx + 8], eax
mov edx, dword [0x10141c54]
movss xmm0, dword [edi + 0x9f0]
add edx, 0xffffffcc
xor edx, 0xd7194377
add edx, dword [esi]
movss dword [edx], xmm0
mov eax, dword [edi + 0x9f4]
mov dword [edx + 4], eax
mov eax, dword [edi + 0x9f8]
mov dword [edx + 8], eax
mov ecx, dword [0x10141c24]
add ecx, 0xffffffd8
xor ecx, 0xd719436b
add ecx, dword [esi]
movss dword [ecx], xmm0
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
mov edx, dword [0x10141c94]
mov ecx, dword [esi]
add edx, 0xffffffbc
mov eax, dword [edi + 0x74]
xor edx, 0xd7194387
mov dword [edx + ecx], eax
mov ecx, dword [0x10141ce4]
mov eax, dword [esi]
add ecx, 0xffffffa8
xor ecx, 0xd719439b
and dword [ecx + eax], 0xffffe7ff
mov ecx, dword [0x10141ce4]
mov eax, dword [esi]
add ecx, 0xffffffa8
xor ecx, 0xd719439b
and dword [ecx + eax], 0xffffe7ff
mov ecx, dword [0x10141cc8]
mov eax, dword [edi + 0x5c]
add ecx, 0xffffffaf
xor ecx, 0xd7194394
add ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [edi + 0x60]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x64]
mov dword [ecx + 8], eax
mov eax, dword [0x10141a94]
mov ecx, dword [ebp - 0x4b0]
mov eax, dword [eax + 4]
cmp dword [ecx + 0x70], eax
jl 0x1002b10c
dec eax
mov dword [ecx + 0x70], eax
mov edx, dword [ebp - 0x4a0]
mov ecx, dword [0x10141ca0]
mov esi, dword [0x101472bc]
add ecx, 0xffffffb9
xor ecx, 0xd719438a
mov eax, dword [edx]
mov esi, dword [esi]
mov byte [ecx + eax], 1
mov ecx, dword [edx]
add ecx, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [ebp - 0x4a0]
mov byte [eax + 0x100ff134], 1
mov ecx, dword [ecx]
mov eax, dword [ecx]
mov eax, dword [eax + 0x368]
call eax
mov edx, dword [ebp - 0x4a0]
mov ecx, dword [0x10141ca0]
add ecx, 0xffffffb9
xor ecx, 0xd719438a
mov eax, dword [edx]
mov byte [ecx + eax], 0
mov ecx, dword [edx]
add ecx, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cmp byte [ebp - 0x491], 0
mov byte [eax + 0x100ff134], 0
mov eax, dword [0x101472bc]
mov dword [eax], esi
mov esi, dword [ebp - 0x4a0]
je 0x1002b22d
cmp byte [0x10100ccc], 0
jne 0x1002b22d
mov eax, dword [esi]
mov dword [ebp - 0x4b0], eax
lea ecx, [eax + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
cmp dword [edi + 0xa30], 8
jne 0x1002b22d
mov eax, dword [0x10141b64]
push 4
push 0
call eax
mov ecx, dword [ebp - 0x4b0]
push 3
push 1
movd xmm0, eax
mov eax, dword [0x10141ce8]
cvtdq2ps xmm0, xmm0
add eax, 0xffffffa7
xor eax, 0xd719439c
mulss xmm0, dword [0x100f3dc0]
movss dword [eax + ecx + 8], xmm0
mov eax, dword [0x10141b64]
call eax
mov ecx, dword [ebp - 0x4b0]
add esp, 0x10
movd xmm0, eax
mov eax, dword [0x10141ce8]
cvtdq2ps xmm0, xmm0
add eax, 0xffffffa7
xor eax, 0xd719439c
mulss xmm0, dword [0x100f3dc0]
movss dword [eax + ecx + 0x2c], xmm0
mov eax, dword [0x10141ce8]
add eax, 0xffffffa7
xor eax, 0xd719439c
add eax, dword [esi]
movups xmm0, xmmword [eax]
movups xmmword [edi + 0x990], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edi + 0x9a0], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [edi + 0x9b0], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [edi + 0x9c0], xmm0
movups xmm0, xmmword [eax + 0x40]
movups xmmword [edi + 0x9d0], xmm0
movups xmm0, xmmword [eax + 0x50]
movups xmmword [edi + 0x9e0], xmm0
mov ecx, dword [esi]
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
movss xmm0, dword [ebp - 0x338]
mov ecx, dword [eax]
mov dword [edi + 0x68], ecx
mov ecx, dword [eax + 4]
mov dword [edi + 0x6c], ecx
mov eax, dword [eax + 8]
mov dword [edi + 0x70], eax
mov eax, dword [0x10141c18]
add eax, 0xffffffdb
xor eax, 0xd7194368
add eax, dword [esi]
movss dword [eax], xmm0
movss xmm0, dword [ebp - 0x334]
movss dword [eax + 4], xmm0
movss xmm0, dword [ebp - 0x330]
movss dword [eax + 8], xmm0
mov eax, dword [0x10141c24]
movss xmm0, dword [ebp - 0x320]
add eax, 0xffffffd8
xor eax, 0xd719436b
add eax, dword [esi]
movss dword [eax], xmm0
movss xmm0, dword [ebp - 0x31c]
movss dword [eax + 4], xmm0
movss xmm0, dword [ebp - 0x318]
movss dword [eax + 8], xmm0
mov eax, dword [0x10141c54]
movss xmm0, dword [ebp - 0x314]
add eax, 0xffffffcc
xor eax, 0xd7194377
add eax, dword [esi]
movss dword [eax], xmm0
movss xmm0, dword [ebp - 0x310]
movss dword [eax + 4], xmm0
movss xmm0, dword [ebp - 0x30c]
movss dword [eax + 8], xmm0
mov edx, dword [0x10141c5c]
mov ecx, dword [esi]
add edx, 0xffffffca
mov eax, dword [ebp - 0x308]
xor edx, 0xd7194379
mov dword [edx + ecx], eax
mov edx, dword [0x10141ce4]
mov ecx, dword [esi]
add edx, 0xffffffa8
mov eax, dword [ebp - 0x304]
xor edx, 0xd719439b
mov dword [edx + ecx], eax
mov ecx, dword [0x10141c88]
mov eax, dword [esi]
add ecx, 0xffffffbf
movss xmm0, dword [ebp - 0x300]
xor ecx, 0xd7194384
movss dword [ecx + eax], xmm0
mov edx, dword [0x10141c94]
mov eax, dword [esi]
add edx, 0xffffffbc
movss xmm0, dword [ebp - 0x2fc]
xor edx, 0xd7194387
movss dword [edx + eax], xmm0
mov eax, dword [0x10141b54]
mov ecx, dword [esi]
lea edx, [ebp - 0x32c]
push edx
call eax
mov eax, dword [esi]
mov ecx, 0xb6
mov edi, dword [0x10141bc0]
lea esi, [ebp - 0x2f8]
movss xmm0, dword [ebp - 0x4dc]
push 8
mov edi, dword [edi + eax]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x10141a94]
mov ecx, dword [ebp - 0x4a0]
movss dword [eax + 0x10], xmm0
mov eax, dword [0x10141a94]
movss xmm0, dword [ebp - 0x4bc]
movss dword [eax + 0x14], xmm0
mov eax, dword [0x10141b90]
mov ecx, dword [ecx]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100e4c2c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4