Function at 0x1002f9f0
Capabilities:
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

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 0x1009636d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x190
mov eax, dword [0x100ce00c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x88], edi
mov esi, dword [0x100cef00]
lea eax, [ebp - 0x15c]
movss xmm3, dword [0x100c717c]
push 0
push 0
movss xmm2, dword [esi + 0x3bd0]
push 0x100c2830
push ecx
mov ecx, dword [esi + 0x3bcc]
mov dword [esp], 0xbf800000
push eax
call fcn.10065340
movss xmm0, dword [esi + 0x3bd0]
xor edx, edx
addss xmm0, dword [esi + 0x37f0]
movss xmm6, dword [0x100c7038]
xorps xmm7, xmm7
movss xmm1, dword [eax]
movss xmm2, dword [0x100c715c]
movss dword [edi + 0x218], xmm1
mulss xmm0, dword [edi]
movss dword [edi + 0x21c], xmm0
nop
mov ecx, dword [edx + edi + 0x60]
xorps xmm0, xmm0
movzx eax, cl
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100c7500]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtpd2ps xmm5, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
mulss xmm5, xmm6
addsd xmm0, qword [eax*8 + 0x100c7500]
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
mulss xmm3, xmm6
addsd xmm0, qword [eax*8 + 0x100c7500]
cvtpd2ps xmm4, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
shr ecx, 0x1f
comiss xmm7, xmm5
addsd xmm0, qword [ecx*8 + 0x100c7500]
mulss xmm4, xmm6
cvtpd2ps xmm1, xmm0
mulss xmm1, xmm6
mulss xmm1, dword [esi + 0x37a0]
jbe 0x1002fb48
movaps xmm0, xmm7
jmp 0x1002fb54
movss xmm0, dword [0x100c70a8]
minss xmm0, xmm5
comiss xmm7, xmm3
movss xmm5, dword [0x100c70a8]
mulss xmm0, xmm2
addss xmm0, dword [0x100c7064]
cvttss2si ecx, xmm0
jbe 0x1002fb76
movaps xmm0, xmm7
jmp 0x1002fb7d
movaps xmm0, xmm5
minss xmm0, xmm3
movss xmm3, dword [0x100c7064]
mulss xmm0, xmm2
addss xmm0, xmm3
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm7, xmm4
jbe 0x1002fba0
movaps xmm0, xmm7
jmp 0x1002fba7
movaps xmm0, xmm5
minss xmm0, xmm4
mulss xmm0, xmm2
addss xmm0, xmm3
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm7, xmm1
jbe 0x1002fbc2
movaps xmm0, xmm7
jmp 0x1002fbc9
movaps xmm0, xmm5
minss xmm0, xmm1
mulss xmm0, xmm2
addss xmm0, xmm3
cvttss2si eax, xmm0
shl eax, 0x18
or eax, ecx
mov dword [edx + edi + 0xb4], eax
add edx, 4
cmp edx, 0x54
jl 0x1002fab0
mov eax, dword [esi + 0x3e40]
movss xmm0, dword [eax + 0x228]
subss xmm0, dword [eax + 0x14]
movss dword [ebp - 0xbc], xmm0
movss xmm0, dword [eax + 0x22c]
subss xmm0, dword [eax + 0x18]
mov byte [eax + 0xac], 1
cmp byte [edi + 0x40], 0
mov eax, dword [esi + 0x3e40]
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [edi + 0x44]
mov eax, dword [eax + 0x264]
mov dword [ebp - 0x68], eax
movss dword [ebp - 0xc4], xmm0
movss dword [ebp - 0x48], xmm0
je 0x1002fc70
mov byte [edi + 0x40], 0
mov eax, dword [esi + 0x3e40]
mov dword [eax + 0x8c], 0
mov dword [eax + 0x94], 0
mov dword [eax + 0x9c], 0
mov esi, dword [esi + 0x3e40]
sub esp, 8
movss xmm0, dword [esi + 0xf0]
movss dword [ebp - 0x90], xmm0
movss xmm0, dword [esi + 0xf4]
movss dword [ebp - 0xdc], xmm0
movss xmm0, dword [esi + 0x78]
movss dword [ebp - 0xc0], xmm0
movss xmm0, dword [esi + 0x7c]
divss xmm0, dword [edi + 0x21c]
movss dword [ebp - 0x7c], xmm0
fld dword [ebp - 0x7c]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
movss xmm0, dword [ebp - 0x2c]
mov eax, 0x2aaaaaab
addss xmm0, dword [esi + 0x7c]
mov esi, dword [ebp - 0x88]
mov ecx, dword [edi + 8]
sub ecx, dword [edi + 4]
imul ecx
divss xmm0, dword [esi + 0x21c]
sar edx, 1
mov edi, edx
shr edi, 0x1f
add edi, edx
fstp dword [ebp - 0xa8]
movss dword [ebp - 0x7c], xmm0
fld dword [ebp - 0x7c]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
cvttss2si ecx, dword [ebp - 0xa8]
push edi
push str.__d
push 0x10
fstp dword [ebp - 0x7c]
cvttss2si eax, dword [ebp - 0x7c]
add eax, ecx
lea ecx, [edi - 1]
cmp eax, ecx
cmovl ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x24]
push eax
call fcn.1002b870
mov edi, dword [0x100cef00]
lea eax, [ebp - 0x24]
movss xmm3, dword [0x100c717c]
add esp, 0x18
movss xmm2, dword [edi + 0x3bd0]
push 0
push 0
push eax
push ecx
mov ecx, dword [edi + 0x3bcc]
lea eax, [ebp - 0x19c]
mov dword [esp], 0xbf800000
push eax
call fcn.10065340
movd xmm0, dword [esi + 0x48]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [eax]
movss dword [esi + 0x44], xmm0
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
je 0x10030fd9
movss xmm3, dword [0x100c717c]
lea eax, [ebp - 0x18c]
movss xmm2, dword [edi + 0x3bd0]
push 0
push 0
push 0x100c282c
push ecx
mov ecx, dword [edi + 0x3bcc]
mov dword [esp], 0xbf800000
push eax
call fcn.10065340
cvttss2si edi, dword [ebp - 0xa8]
movss xmm0, dword [eax]
movss dword [ebp - 0xb0], xmm0
cmp edi, dword [ebp - 0x7c]
jg 0x10030e20
movss xmm1, dword [ebp - 0x90]
movaps xmm0, xmm1
addss xmm0, dword [ebp - 0xc0]
movss dword [ebp - 0xa8], xmm0
movss dword [ebp - 0xd0], xmm0
nop word [eax + eax]
addss xmm1, dword [esi + 0x44]
movd xmm0, edi
lea eax, [edi + edi*2]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0xa0], eax
mov ecx, esi
mov eax, dword [esi + 4]
push edi
mov dword [ebp - 0xa4], eax
movss dword [ebp - 0xac], xmm1
mulss xmm0, dword [esi + 0x21c]
addss xmm0, dword [ebp - 0xdc]
movss dword [ebp - 0x74], xmm0
call fcn.1002db80
mov dword [ebp - 0x130], eax
mov ecx, esi
lea eax, [ebp - 0x134]
mov dword [ebp - 0x134], edi
push eax
call fcn.10034eb0
addss xmm0, dword [esi + 0x44]
movss xmm1, dword [ebp - 0xc4]
lea ecx, [ebp - 0x70]
lea eax, [ebp - 0x48]
push edi
comiss xmm1, xmm0
movss dword [ebp - 0x70], xmm0
cmovbe eax, ecx
mov ecx, esi
movss xmm0, dword [eax]
movss dword [ebp - 0xc4], xmm0
movss dword [ebp - 0x48], xmm0
call fcn.1002db80
movss xmm1, dword [0x100c7194]
mov edx, eax
mov ecx, dword [esi + 0x10]
movaps xmm2, xmm1
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], edx
movss dword [ebp - 0x6c], xmm1
movss dword [ebp - 0x70], xmm2
cmp ecx, edi
je 0x1002fed3
setl al
jmp 0x1002fed9
cmp dword [esi + 0x14], edx
setle al
test al, al
je 0x1002ff0c
cmp ecx, edi
jne 0x1002fee5
cmp dword [esi + 0x14], 0
setg al
test al, al
je 0x1002ff04
lea eax, [esi + 0x10]
mov ecx, esi
push eax
call fcn.10034eb0
movss xmm2, dword [ebp - 0x70]
mov edx, dword [ebp - 0x94]
jmp 0x1002ff07
xorps xmm0, xmm0
movss dword [ebp - 0x6c], xmm0
mov eax, dword [esi + 0x18]
lea ecx, [esi + 0x18]
cmp eax, edi
jne 0x1002ff1a
cmp dword [ecx + 4], 0
setg cl
test cl, cl
je 0x1002ff41
cmp eax, edi
jne 0x1002ff28
cmp dword [esi + 0x1c], edx
setl cl
lea eax, [ebp - 0x60]
test cl, cl
lea ecx, [esi + 0x18]
cmovne eax, ecx
mov ecx, esi
push eax
call fcn.10034eb0
movaps xmm2, xmm0
cmp dword [esi + 0x18], edi
jle 0x1002ff4e
addss xmm2, dword [esi + 0x218]
movss xmm3, dword [ebp - 0x6c]
movss xmm0, dword [0x100c7194]
ucomiss xmm3, xmm0
lahf
test ah, 0x44
jnp 0x1002ffdd
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x1002ffdd
comiss xmm2, xmm3
jbe 0x1002ffdd
movss xmm1, dword [ebp - 0x90]
lea eax, [ebp - 0x174]
addss xmm1, dword [esi + 0x44]
push 0
push ecx
mov ecx, dword [ebp - 0x68]
mov dword [esp], 0
push dword [esi + 0xec]
movaps xmm0, xmm1
addss xmm1, xmm2
addss xmm0, xmm3
push eax
lea eax, [ebp - 0x17c]
push eax
movss dword [ebp - 0x174], xmm1
movss dword [ebp - 0x17c], xmm0
movss xmm0, dword [ebp - 0x74]
movss dword [ebp - 0x178], xmm0
addss xmm0, dword [esi + 0x21c]
movss dword [ebp - 0x170], xmm0
call fcn.10061910
lea edx, [edi + 1]
movss xmm2, dword [ebp - 0xc0]
mov eax, edx
movss xmm3, dword [ebp - 0x74]
shr eax, 8
addss xmm2, xmm2
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
movss dword [ebp - 0xcc], xmm3
imul eax, eax, 0x1000193
mov dword [ebp - 0x94], edx
movss dword [ebp - 0x6c], xmm2
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [esi + 0x1f0]
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.10039730
cmp dword [eax + 4], 0
je 0x100300ca
movss xmm1, dword [ebp - 0xbc]
lea eax, [ebp - 0xe4]
addss xmm1, dword [ebp - 0x90]
push 0
push ecx
mov ecx, dword [ebp - 0x68]
movaps xmm0, xmm3
addss xmm0, dword [esi + 0x21c]
mov dword [esp], 0
push dword [esi + 0xf4]
movss dword [ebp - 0x70], xmm1
addss xmm1, xmm2
push eax
lea eax, [ebp - 0xd0]
movss dword [ebp - 0xe0], xmm0
push eax
movss dword [ebp - 0xe4], xmm1
call fcn.10061910
movss xmm0, dword [ebp - 0x70]
movss xmm2, dword [ebp - 0x6c]
movss xmm3, dword [ebp - 0x74]
jmp 0x100300da
movss xmm0, dword [ebp - 0x90]
addss xmm0, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x94]
lea ecx, [esi + 0x210]
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.10039e30
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x64], eax
cmp byte [eax + 0xd], 0
jne 0x10030342
mov ecx, dword [ebp - 0x94]
cmp ecx, dword [eax + 0x10]
jl 0x10030342
cmp eax, dword [esi + 0x210]
je 0x10030342
push 0
push ecx
mov ecx, dword [ebp - 0x68]
addss xmm2, xmm0
mov dword [esp], 0
lea eax, [ebp - 0xec]
push dword [esi + 0xf0]
movaps xmm0, xmm3
addss xmm0, dword [esi + 0x21c]
push eax
lea eax, [ebp - 0xd0]
movss dword [ebp - 0x6c], xmm2
push eax
movss dword [ebp - 0xec], xmm2
movss dword [ebp - 0x70], xmm0
movss dword [ebp - 0xe8], xmm0
call fcn.10061910
mov ecx, dword [0x100cef00]
movss xmm2, dword [ebp - 0x90]
movss xmm0, dword [ebp - 0x6c]
movss xmm4, dword [ebp - 0x74]
mov eax, dword [ecx + 0x3e40]
movss xmm1, dword [ecx + 0x3804]
movss xmm3, dword [ebp - 0x70]
movaps xmm5, xmm1
maxss xmm2, dword [eax + 0x210]
minss xmm0, dword [eax + 0x218]
maxss xmm4, dword [eax + 0x214]
minss xmm3, dword [eax + 0x21c]
subss xmm2, xmm1
movss xmm1, dword [ecx + 0xdc0]
addss xmm5, xmm0
movss xmm0, dword [ecx + 0x3808]
subss xmm4, xmm0
addss xmm3, xmm0
comiss xmm1, xmm2
jb 0x10030342
movss xmm0, dword [ecx + 0xdc4]
comiss xmm0, xmm4
jb 0x10030342
comiss xmm5, xmm1
jbe 0x10030342
comiss xmm3, xmm0
jbe 0x10030342
xor ecx, ecx
call fcn.10050880
mov esi, dword [0x100cef00]
lea eax, [ebp - 0x40]
push eax
mov dword [ebp - 0x40], 0
movups xmm0, xmmword [esi + 0x387c]
lea ecx, [esi + 0x4750]
movups xmmword [ebp - 0x3c], xmm0
call fcn.10057030
mov eax, dword [ebp - 0x64]
movaps xmm0, xmmword [0x100c7400]
movups xmmword [esi + 0x387c], xmm0
push dword [eax + 0x10]
push str.Error_at_line__d:
call fcn.100678d0
mov esi, dword [0x100cef00]
add esp, 8
mov ecx, dword [esi + 0x4750]
cmp ecx, 1
jl 0x10030292
mov eax, dword [ebp - 0x64]
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 0x4758]
mov dword [ebp - 0x64], eax
mov eax, dword [ecx + edx*4 - 0x14]
movups xmm0, xmmword [ecx + edx*4 - 0x10]
add eax, eax
movups xmmword [esi + eax*8 + 0x387c], xmm0
dec dword [esi + 0x4750]
mov ecx, dword [esi + 0x3e40]
cmp byte [ecx + 0xaf], 0
jne 0x100302b9
mov ecx, dword [ecx + 0x198]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.100693d0
mov esi, dword [0x100cef00]
movups xmm0, xmmword [esi + 0x387c]
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0
lea ecx, [esi + 0x4750]
push eax
movups xmmword [ebp - 0x3c], xmm0
call fcn.10057030
mov eax, dword [ebp - 0x64]
movaps xmm0, xmmword [0x100c7410]
add eax, 0x14
movups xmmword [esi + 0x387c], xmm0
cmp dword [eax + 0x14], 0x10
jb 0x100302f6
mov eax, dword [eax]
push eax
push 0x100c2850
call fcn.100678d0
mov esi, dword [0x100cef00]
add esp, 8
mov eax, dword [esi + 0x4750]
cmp eax, 1
jl 0x10030337
mov ecx, dword [esi + 0x4758]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 - 0x14]
movups xmm0, xmmword [ecx + edx*4 - 0x10]
add eax, eax
movups xmmword [esi + eax*8 + 0x387c], xmm0
dec dword [esi + 0x4750]
call fcn.1004d260
mov esi, dword [ebp - 0x88]
push dword [ebp - 0x94]
lea eax, [ebp - 0x24]
push str._d
push 0x10
push eax
call fcn.1002b870
movss xmm3, dword [0x100c717c]
lea eax, [ebp - 0x24]
add esp, 0x10
push 0
push 0
push eax
push ecx
lea eax, [ebp - 0x194]
mov dword [esp], 0xbf800000
push eax
mov eax, dword [0x100cef00]
movss xmm2, dword [eax + 0x3bd0]
mov ecx, dword [eax + 0x3bcc]
call fcn.10065340
movss xmm0, dword [ebp - 0x90]
addss xmm0, dword [esi + 0x44]
mov edx, dword [esi + 0xf8]
movss xmm1, dword [ebp - 0x74]
movss dword [ebp - 0xf0], xmm1
subss xmm0, dword [eax]
movss dword [ebp - 0xf4], xmm0
test edx, 0xff000000
je 0x10030428
lea ecx, [ebp - 0x24]
lea eax, [ecx + 1]
mov dword [ebp - 0x70], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100303d0
sub ecx, dword [ebp - 0x70]
lea eax, [ebp - 0x24]
add ecx, eax
cmp eax, ecx
je 0x10030428
mov eax, dword [ebp - 0x68]
mov esi, dword [ebp - 0x68]
push 0
push ecx
mov eax, dword [eax + 0x2c]
movups xmm0, xmmword [esi + 0x60]
mov dword [esp], 0
push ecx
movss xmm2, dword [eax + 0xc]
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x3c]
push ecx
push edx
lea ecx, [ebp - 0xf4]
push ecx
mov ecx, dword [eax + 8]
push esi
movups xmmword [ebp - 0x3c], xmm0
call fcn.10065640
movss xmm1, dword [ebp - 0x74]
mov esi, dword [ebp - 0x88]
cmp dword [esi + 0x20], edi
jne 0x100307a7
call fcn.1004d740
mov ecx, esi
mov byte [ebp - 0x75], al
call fcn.10033c00
test al, al
jne 0x100305a6
movss xmm0, dword [ebp - 0xbc]
movzx eax, byte [ebp - 0x75]
addss xmm0, dword [ebp - 0xa8]
addss xmm1, dword [esi + 0x21c]
push 0
xor eax, 1
push ecx
addss xmm0, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0x68]
mov dword [esp], 0
push dword [esi + eax*4 + 0xfc]
lea eax, [ebp - 0xfc]
movss dword [ebp - 0x64], xmm1
push eax
lea eax, [ebp - 0xd0]
movss dword [ebp - 0x6c], xmm0
push eax
movss dword [ebp - 0xfc], xmm0
movss dword [ebp - 0xf8], xmm1
call fcn.10061910
mov edi, dword [esi + 0x104]
test edi, 0xff000000
je 0x100305a6
mov eax, dword [ebp - 0x68]
movss xmm2, dword [ebp - 0x74]
movss xmm3, dword [0x100c7064]
movss xmm0, dword [ebp - 0x6c]
addss xmm2, xmm3
test byte [eax + 0x24], 1
movss xmm1, dword [ebp - 0x64]
push 0
je 0x1003052b
subss xmm0, xmm3
movss dword [ebp - 0x108], xmm2
subss xmm1, xmm3
lea ecx, [ebp - 0x104]
push ecx
lea ecx, [ebp - 0x10c]
movss dword [ebp - 0x104], xmm0
movss xmm0, dword [ebp - 0xa8]
addss xmm0, xmm3
movss dword [ebp - 0x100], xmm1
movss dword [ebp - 0x10c], xmm0
jmp 0x10030574
subss xmm0, dword [0x100c7060]
subss xmm1, dword [0x100c7060]
lea ecx, [ebp - 0x114]
movss dword [ebp - 0x118], xmm2
push ecx
lea ecx, [ebp - 0x11c]
movss dword [ebp - 0x114], xmm0
movss xmm0, dword [ebp - 0xa8]
addss xmm0, xmm3
movss dword [ebp - 0x110], xmm1
movss dword [ebp - 0x11c], xmm0
movss xmm3, dword [0x100c70a8]
push ecx
mov ecx, eax
call fcn.10061260
push ecx
mov dword [esp], 0x3f800000
push 1
push edi
mov edi, dword [ebp - 0x68]
mov ecx, edi
push dword [edi + 0x54]
push dword [edi + 0x5c]
call fcn.1005f940
mov dword [edi + 0x54], 0
cmp byte [ebp - 0x75], 0
je 0x100307a7
call dword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
push 0
push 0x2710
push edx
push eax
call fcn.100945d0
mov edi, eax
mov dword [ebp - 0x80], eax
sub edi, dword [esi + 0x248]
mov ecx, edx
mov eax, edx
mov dword [ebp - 0x98], ecx
sbb eax, dword [esi + 0x24c]
mov dword [ebp - 0x84], eax
jne 0x100305f3
cmp edi, 0x190
jbe 0x100307a7
movss xmm0, dword [0x100c70a8]
lea eax, [esi + 0x20]
push eax
mov ecx, esi
movss dword [ebp - 0x64], xmm0
call fcn.1002d990
mov dword [ebp - 0x70], eax
mov ecx, esi
lea eax, [esi + 0x20]
push eax
call fcn.10034eb0
cmp byte [esi + 0x3c], 0
movaps xmm2, xmm0
movss dword [ebp - 0x6c], xmm2
je 0x1003071a
mov edx, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xa0]
mov eax, dword [edx + ecx*4]
mov ecx, dword [edx + ecx*4 + 4]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [ebp - 0x70]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jge 0x1003071a
mov esi, dword [ebp - 0xa4]
lea eax, [ecx + ecx*2]
mov edx, dword [ebp - 0xa0]
mov ecx, dword [esi + edx*4]
mov esi, dword [ebp - 0x88]
mov al, byte [ecx + eax*4]
cmp al, 9
jne 0x100306d1
addss xmm0, dword [0x100c70a8]
xorps xmm1, xmm1
sub esp, 8
cvtsi2ss xmm1, dword [esi + 0x38]
mulss xmm1, dword [ebp - 0xb0]
divss xmm0, xmm1
movss dword [ebp - 0x64], xmm1
movss dword [ebp - 0x70], xmm0
fld dword [ebp - 0x70]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
movss xmm2, dword [ebp - 0x6c]
add esp, 8
fstp dword [ebp - 0x70]
movss xmm0, dword [ebp - 0x70]
addss xmm0, dword [0x100c70a8]
mulss xmm0, dword [ebp - 0x64]
subss xmm0, xmm2
jmp 0x1003071f
movss xmm3, dword [0x100c717c]
lea ecx, [ebp - 0x28]
push 0
push 0
push ecx
push ecx
mov byte [ebp - 0x28], al
lea ecx, [ebp - 0x184]
mov eax, dword [0x100cef00]
mov dword [esp], 0xbf800000
push ecx
mov byte [ebp - 0x27], 0
movss xmm2, dword [eax + 0x3bd0]
mov ecx, dword [eax + 0x3bcc]
call fcn.10065340
movss xmm2, dword [ebp - 0x6c]
movss xmm0, dword [eax]
jmp 0x1003071f
movss xmm0, dword [ebp - 0x64]
addss xmm2, dword [ebp - 0xac]
movss xmm1, dword [ebp - 0x74]
lea eax, [ebp - 0x124]
push 0
push ecx
mov ecx, dword [ebp - 0x68]
movss dword [ebp - 0x12c], xmm2
addss xmm2, xmm0
mov dword [esp], 0
movaps xmm0, xmm1
push dword [esi + 0xe8]
addss xmm0, dword [esi + 0x21c]
push eax
lea eax, [ebp - 0x12c]
movss dword [ebp - 0x128], xmm1
push eax
movss dword [ebp - 0x124], xmm2
movss dword [ebp - 0x120], xmm0
call fcn.10061910
cmp dword [ebp - 0x84], 0
ja 0x10030792
cmp edi, 0x320
jbe 0x100307a7
mov eax, dword [ebp - 0x80]
mov dword [esi + 0x248], eax
mov eax, dword [ebp - 0x98]
mov dword [esi + 0x24c], eax
mov eax, dword [ebp - 0xa0]
mov edx, dword [ebp - 0xa4]
mov ecx, dword [edx + eax*4 + 4]
mov edi, dword [edx + eax*4]
mov dword [ebp - 0x98], ecx
cmp edi, ecx
jne 0x100307cc
mov eax, dword [esi + 0xb4]
jmp 0x100307da
push edi
mov ecx, esi
call fcn.1002e780
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x84], eax
xor edx, edx
sub ecx, edi
mov dword [ebp - 0x80], edx
mov eax, 0x2aaaaaab
xorps xmm3, xmm3
imul ecx
xorps xmm5, xmm5
movss dword [ebp - 0x64], xmm3
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10030d3e
movss xmm1, dword [ebp - 0x74]
mov edi, dword [ebp - 0x80]
movaps xmm2, xmm1
addss xmm2, xmm5
movss dword [ebp - 0x8c], xmm2
movaps xmm0, xmm2
nop dword [eax]
nop word [eax + eax]
mov edx, dword [ebp - 0xa0]
lea edi, [edi + edi*2]
mov ecx, dword [ebp - 0xa4]
shl edi, 2
mov eax, dword [ecx + edx*4]
mov ecx, esi
add eax, edi
push eax
mov dword [ebp - 0x70], eax
call fcn.1002e780
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 0x9c], eax
cmp eax, ecx
jne 0x1003087b
mov ecx, dword [ebp - 0x70]
mov cl, byte [ecx]
cmp cl, 9
je 0x10030875
cmp cl, 0x20
jne 0x100309b9
mov ecx, dword [ebp - 0x84]
cmp dword [esi + 0x240], 0
movaps xmm0, xmm2
je 0x100309b9
movss xmm0, dword [ebp - 0xac]
addss xmm1, xmm5
add esi, 0x230
addss xmm0, xmm3
mov dword [ebp - 0x6c], esi
mov edx, esi
cmp dword [esi + 0x14], 0x10
movss dword [ebp - 0xc8], xmm1
movss dword [ebp - 0x164], xmm0
movss dword [ebp - 0x160], xmm1
jb 0x100308c6
mov edx, dword [esi]
test ecx, 0xff000000
je 0x10030932
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x98], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100308e0
sub ecx, dword [ebp - 0x98]
add ecx, edx
cmp edx, ecx
je 0x10030932
mov eax, dword [ebp - 0x68]
mov esi, dword [ebp - 0x68]
push 0
push ecx
mov eax, dword [eax + 0x2c]
movups xmm0, xmmword [esi + 0x60]
mov dword [esp], 0
push ecx
movss xmm2, dword [eax + 0xc]
lea ecx, [ebp - 0x3c]
push edx
push ecx
push dword [ebp - 0x84]
lea ecx, [ebp - 0x164]
push ecx
mov ecx, dword [eax + 8]
push esi
movups xmmword [ebp - 0x3c], xmm0
call fcn.10065640
mov esi, dword [ebp - 0x6c]
cmp dword [esi + 0x14], 0x10
mov ecx, esi
mov eax, dword [0x100cef00]
mov edx, dword [eax + 0x3bcc]
jb 0x10030947
mov ecx, dword [esi]
mov eax, dword [0x100cef00]
movss xmm3, dword [0x100c717c]
push 0
push 0
movss xmm2, dword [eax + 0x3bd0]
push ecx
push ecx
lea ecx, [ebp - 0x15c]
mov dword [esp], 0xbf800000
push ecx
mov ecx, edx
call fcn.10065340
cmp dword [esi + 0x14], 0x10
mov eax, esi
movss xmm3, dword [ebp - 0x15c]
addss xmm3, dword [ebp - 0x64]
movss dword [ebp - 0x64], xmm3
jb 0x10030993
mov eax, dword [esi]
movss xmm0, dword [ebp - 0xc8]
xorps xmm5, xmm5
movss xmm1, dword [ebp - 0x74]
mov dword [esi + 0x10], 0
mov esi, dword [ebp - 0x88]
mov byte [eax], 0
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x84], eax
movaps xmm4, xmm0
mov eax, dword [ebp - 0x70]
movss dword [ebp - 0x6c], xmm4
mov cl, byte [eax]
cmp cl, 9
jne 0x10030b64
movd xmm0, dword [esi + 0x38]
sub esp, 8
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x98], xmm3
mulss xmm0, dword [ebp - 0xb0]
addss xmm3, dword [0x100c70a8]
movss dword [ebp - 0xc8], xmm0
divss xmm3, xmm0
movss dword [ebp - 0x9c], xmm3
fld dword [ebp - 0x9c]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
movss xmm1, dword [0x100c70a8]
add esp, 8
mov edi, dword [ebp - 0x80]
fstp dword [ebp - 0x9c]
movss xmm2, dword [ebp - 0x9c]
inc edi
cmp byte [esi + 0x5f], 0
addss xmm2, xmm1
mov dword [ebp - 0x80], edi
mulss xmm2, dword [ebp - 0xc8]
movss dword [ebp - 0x64], xmm2
je 0x10030cee
movss xmm0, dword [ebp - 0x98]
addss xmm0, dword [ebp - 0xac]
mov eax, dword [0x100cef00]
addss xmm2, dword [ebp - 0xac]
push ecx
mov ecx, dword [ebp - 0x68]
movss xmm3, dword [eax + 0x3bd0]
addss xmm0, xmm1
mov dword [esp], 0x3f800000
lea eax, [ebp - 0xd8]
subss xmm2, xmm1
movaps xmm1, xmm3
mulss xmm1, dword [0x100c7064]
push 0x90909090
mulss xmm3, dword [0x100c704c]
push eax
addss xmm1, dword [ebp - 0x6c]
movss dword [ebp - 0x13c], xmm0
lea eax, [ebp - 0x13c]
movss dword [ebp - 0xd8], xmm2
subss xmm2, xmm3
push eax
movaps xmm0, xmm1
movss dword [ebp - 0x138], xmm1
subss xmm0, xmm3
movss dword [ebp - 0xd4], xmm1
addss xmm3, xmm1
movss dword [ebp - 0x144], xmm2
movss dword [ebp - 0x14c], xmm2
movss dword [ebp - 0x140], xmm0
movss dword [ebp - 0x148], xmm3
call fcn.10061710
push ecx
mov ecx, dword [ebp - 0x68]
lea eax, [ebp - 0x144]
mov dword [esp], 0x3f800000
push 0x90909090
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.10061710
push ecx
mov ecx, dword [ebp - 0x68]
lea eax, [ebp - 0x14c]
mov dword [esp], 0x3f800000
push 0x90909090
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.10061710
movss xmm0, dword [ebp - 0x6c]
xorps xmm5, xmm5
movss xmm1, dword [ebp - 0x74]
jmp 0x10030cfd
cmp cl, 0x20
jne 0x10030c33
cmp byte [esi + 0x5f], 0
je 0x10030c13
mov eax, dword [0x100cef00]
movss xmm1, dword [ebp - 0xac]
movss xmm0, dword [ebp - 0xb0]
addss xmm1, xmm3
mulss xmm0, dword [0x100c7064]
movaps xmm3, xmm5
mov edi, dword [ebp - 0x68]
movss xmm2, dword [eax + 0x3bd0]
lea eax, [ebp - 0x154]
mulss xmm2, dword [0x100c7064]
push 3
addss xmm1, xmm0
push ecx
addss xmm2, xmm4
mov dword [esp], 0x4096cbe4
push eax
mov ecx, edi
movss dword [ebp - 0x154], xmm1
movss dword [ebp - 0x150], xmm2
movss xmm2, dword [0x100c70c8]
call fcn.10060e60
push 0x80808080
push dword [edi + 0x54]
mov ecx, edi
push dword [edi + 0x5c]
call fcn.10060660
movss xmm0, dword [ebp - 0x6c]
xorps xmm5, xmm5
movss xmm3, dword [ebp - 0x64]
movss xmm1, dword [ebp - 0x74]
mov dword [edi + 0x54], 0
jmp 0x10030c1a
movaps xmm0, xmm1
addss xmm0, xmm5
addss xmm3, dword [ebp - 0xb0]
mov edi, dword [ebp - 0x80]
inc edi
mov dword [ebp - 0x80], edi
movss dword [ebp - 0x64], xmm3
jmp 0x10030d02
mov al, cl
and al, 0xfe
cmp al, 0xfc
jne 0x10030c42
mov eax, 6
jmp 0x10030c7b
mov al, cl
and al, 0xfc
cmp al, 0xf8
jne 0x10030c51
mov eax, 5
jmp 0x10030c7b
mov al, cl
and al, 0xf8
cmp al, 0xf0
jne 0x10030c60
mov eax, 4
jmp 0x10030c7b
mov al, cl
and al, 0xf0
cmp al, 0xe0
jne 0x10030c6f
mov eax, 3
jmp 0x10030c7b
and cl, 0xe0
xor eax, eax
cmp cl, 0xc0
sete al
inc eax
add esi, 0x230
add dword [ebp - 0x80], eax
mov ecx, dword [ebp - 0xa4]
lea edi, [edi + 0xc]
mov edx, dword [esi + 0x14]
dec eax
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esi + 0x10]
mov al, byte [eax + edi - 0xc]
mov byte [ebp - 0x2c], al
cmp ecx, edx
jae 0x10030cca
lea eax, [ecx + 1]
mov dword [esi + 0x10], eax
mov eax, esi
cmp edx, 0x10
jb 0x10030cbd
mov eax, dword [esi]
mov dl, byte [ebp - 0x2c]
mov byte [eax + ecx], dl
mov byte [eax + ecx + 1], 0
jmp 0x10030cdb
push dword [ebp - 0x2c]
push dword [ebp - 0x8c]
push ecx
mov ecx, esi
call fcn.1001c990
mov eax, dword [ebp - 0x9c]
test eax, eax
jg 0x10030c84
mov esi, dword [ebp - 0x88]
mov edi, dword [ebp - 0x80]
movss xmm1, dword [ebp - 0x74]
xorps xmm5, xmm5
movaps xmm0, xmm1
addss xmm0, xmm5
movss xmm3, dword [ebp - 0x64]
mov edx, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xa0]
movss xmm2, dword [ebp - 0x8c]
mov eax, dword [edx + ecx*4]
mov ecx, dword [edx + ecx*4 + 4]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x10030830
movss xmm0, dword [ebp - 0x6c]
jmp 0x10030d47
movss xmm0, dword [ebp - 0x74]
addss xmm0, xmm5
cmp dword [esi + 0x240], 0
je 0x10030e09
cmp dword [esi + 0x244], 0x10
lea edi, [esi + 0x230]
movss xmm1, dword [ebp - 0xac]
mov edx, edi
addss xmm1, xmm3
movss dword [ebp - 0xb4], xmm0
movss dword [ebp - 0xb8], xmm1
jb 0x10030d83
mov edx, dword [edi]
test dword [ebp - 0x84], 0xff000000
je 0x10030df5
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x8c], eax
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10030da0
sub ecx, dword [ebp - 0x8c]
add ecx, edx
cmp edx, ecx
je 0x10030df5
mov eax, dword [ebp - 0x68]
mov esi, dword [ebp - 0x68]
push 0
push ecx
mov eax, dword [eax + 0x2c]
movups xmm0, xmmword [esi + 0x60]
mov dword [esp], 0
push ecx
movss xmm2, dword [eax + 0xc]
lea ecx, [ebp - 0x3c]
push edx
push ecx
push dword [ebp - 0x84]
lea ecx, [ebp - 0xb8]
push ecx
mov ecx, dword [eax + 8]
push esi
movups xmmword [ebp - 0x3c], xmm0
call fcn.10065640
mov esi, dword [ebp - 0x88]
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x10030dff
mov eax, dword [edi]
mov dword [edi + 0x10], 0
mov byte [eax], 0
mov edi, dword [ebp - 0x94]
movss xmm1, dword [ebp - 0x90]
cmp edi, dword [ebp - 0x7c]
jle 0x1002fe10
mov ecx, dword [0x100cef00]
movss xmm1, dword [0x100c719c]
movss xmm0, dword [ecx + 0xdc0]
comiss xmm0, xmm1
movss xmm2, dword [ecx + 0xdc4]
jb 0x10030fd9
comiss xmm2, xmm1
jb 0x10030fd9
mov eax, dword [ecx + 0xdc0]
mov ecx, dword [ecx + 0xdc4]
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x184]
mov dword [ebp - 0xb4], ecx
push eax
mov ecx, esi
call fcn.1002d200
push eax
lea eax, [ebp - 0x44]
mov ecx, esi
push eax
call fcn.1002e640
mov dword [ebp - 4], 0
mov edi, dword [ebp - 0x34]
test edi, edi
je 0x10030f88
cmp dword [ebp - 0x30], 0x10
lea eax, [ebp - 0x44]
mov edx, 0x811c9dc5
cmovae eax, dword [ebp - 0x44]
xor ecx, ecx
test edi, edi
je 0x10030eca
mov esi, eax
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x10030eb3
mov esi, dword [ebp - 0x88]
push edx
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x16c]
push eax
lea ecx, [esi + 0x140]
call fcn.10039ba0
mov eax, dword [eax + 4]
mov dword [ebp - 0x7c], eax
test eax, eax
jne 0x10030ef4
mov eax, dword [esi + 0x144]
mov dword [ebp - 0x7c], eax
cmp eax, dword [esi + 0x144]
je 0x10030f0b
xor ecx, ecx
call fcn.10050880
mov ecx, dword [ebp - 0x7c]
add ecx, 0x28
jmp 0x10030f70
cmp dword [ebp - 0x30], 0x10
lea eax, [ebp - 0x44]
mov edx, 0x811c9dc5
cmovae eax, dword [ebp - 0x44]
xor ecx, ecx
test edi, edi
je 0x10030f3a
mov esi, eax
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x10030f23
mov esi, dword [ebp - 0x88]
push edx
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x16c]
push eax
lea ecx, [esi + 0x160]
call fcn.10039ba0
mov edi, dword [eax + 4]
test edi, edi
jne 0x10030f5e
mov edi, dword [esi + 0x164]
cmp edi, dword [esi + 0x164]
je 0x10030f88
xor ecx, ecx
call fcn.10050880
lea ecx, [edi + 0x28]
cmp dword [ecx + 0x14], 0x10
jb 0x10030f78
mov ecx, dword [ecx]
push ecx
xor edx, edx
call fcn.100672f0
add esp, 4
call fcn.1004d260
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x30]
cmp eax, 0x10
jb 0x10030fc7
mov edx, dword [ebp - 0x44]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x10030fbd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10030fbd
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.10093968
add esp, 8
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
mov ecx, dword [esi + 8]
mov eax, 0x2aaaaaab
sub ecx, dword [esi + 4]
imul ecx
movss xmm2, dword [ebp - 0xc4]
addss xmm2, dword [0x100c70d8]
mov ecx, dword [0x100cef00]
sar edx, 1
mov eax, edx
movss dword [ebp - 0xb8], xmm2
shr eax, 0x1f
add eax, edx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100c7500]
mov eax, dword [ecx + 0x3e40]
cvtpd2ps xmm1, xmm0
mulss xmm1, dword [esi + 0x21c]
mov byte [eax + 0xac], 1
mov eax, dword [ecx + 0x3e40]
movss dword [ebp - 0xb4], xmm1
cmp byte [eax + 0xaf], 0
jne 0x100310a7
movss xmm3, dword [eax + 0xf0]
lea ecx, [ebp - 0xb8]
movss xmm0, dword [eax + 0xf4]
movaps xmm4, xmm3
addss xmm4, xmm2
movss dword [ebp - 0x58], xmm3
movaps xmm2, xmm0
movss dword [ebp - 0x54], xmm0
addss xmm2, xmm1
movss xmm1, dword [0x100c7194]
movss dword [ebp - 0x50], xmm4
movss dword [ebp - 0x4c], xmm2
call fcn.1004fa60
push 0
push 0
xor edx, edx
lea ecx, [ebp - 0x58]
call fcn.1004fbc0
add esp, 8
cmp byte [esi + 0x3f], 0
je 0x100310c9
mov ecx, esi
call fcn.10035110
mov ecx, dword [0x100cef00]
mov ecx, dword [ecx + 0x3e40]
call fcn.1004d430
mov byte [esi + 0x3f], 0
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.10093402
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret