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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbc
movss xmm0, dword [0x10b0c650]
push ebx
mov ebx, dword [0x10309a38]
push esi
push edi
movss dword [ebp - 0x84], xmm0
mov eax, dword [ebx + 0x19b0]
mov dword [ebp - 0x64], ebx
mov byte [eax + 0x8c], 1
mov edi, dword [ebx + 0x19b0]
mov dword [ebp - 0x34], edi
cmp byte [edi + 0x8f], 0
jne 0x100f8065
mulss xmm0, dword [0x10257ff4]
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebx + 0x1a9c]
mov dword [ebp - 0xb0], 0x3f800000
mov dword [ebp - 0xac], 0x3f800000
movss dword [ebp - 0xa4], xmm0
movups xmm0, xmmword [ebx + 0x15c0]
mov dword [ebp - 0xa8], 0x3f800000
mov dword [ebp - 0x7c], 0
movups xmmword [ebp - 0x78], xmm0
call fcn.100a05b0
movups xmm0, xmmword [ebp - 0xb0]
xor edx, edx
movups xmmword [ebx + 0x15c0], xmm0
mov ecx, dword [edi + 0xcc]
mov eax, dword [edi + 0xd4]
push dword [eax + ecx*4 - 4]
mov ecx, dword [ebp + 8]
call fcn.10090080
mov esi, dword [0x10309a38]
add esp, 4
mov dword [ebp - 0x38], eax
cmp dword [esi + 0x19ec], eax
jne 0x100f60b9
mov dword [esi + 0x19f0], eax
cmp dword [esi + 0x1a20], eax
jne 0x100f60c8
mov byte [esi + 0x1a24], 1
mov ecx, dword [ebp + 8]
cmp ecx, 0xffffffff
jae 0x100f613e
mov dl, byte [ecx]
test dl, dl
je 0x100f60e6
cmp dl, 0x23
jne 0x100f60e0
cmp byte [ecx + 1], dl
je 0x100f60e6
inc ecx
cmp ecx, 0xffffffff
jb 0x100f60d0
mov eax, dword [ebp + 8]
cmp eax, ecx
je 0x100f613e
movss xmm2, dword [esi + 0x18c4]
push ecx
push ecx
push eax
push ecx
mov ecx, dword [esi + 0x18c0]
lea eax, [ebp - 0x5c]
mov dword [esp], 0xbf800000
push eax
call fcn.100aec30
movss xmm0, dword [ebp - 0x5c]
addss xmm0, dword [0x1025804c]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0xa0], xmm0
movss xmm0, dword [ebp - 0x58]
movss dword [ebp - 0xa4], xmm0
jmp 0x100f6149
xorps xmm1, xmm1
movss dword [ebp - 0xa0], xmm1
mov eax, dword [ebp + 0x18]
lea ecx, [ebp - 0x5c]
movss xmm1, dword [edi + 0xd8]
movss xmm0, dword [edi + 0xdc]
movss dword [ebp - 0x88], xmm1
movss xmm4, dword [eax]
movss xmm5, dword [eax + 4]
movaps xmm6, xmm4
mulss xmm6, dword [0x10257ff4]
movaps xmm2, xmm5
addss xmm2, xmm0
movss dword [ebp - 0xa8], xmm1
movss dword [ebp - 0x8c], xmm0
subss xmm6, dword [0x10258158]
movss dword [ebp - 0xa4], xmm0
subss xmm4, xmm6
addss xmm4, xmm1
movss xmm1, dword [0x1025813c]
subss xmm2, xmm1
addss xmm0, xmm1
subss xmm5, xmm1
movaps xmm3, xmm4
movss dword [ebp - 0x48], xmm4
addss xmm3, xmm6
movss dword [ebp - 0x3c], xmm2
addss xmm2, dword [0x1025817c]
subss xmm6, xmm1
movss dword [ebp - 0x44], xmm0
movss dword [ebp - 0x78], xmm4
movss dword [ebp - 0x74], xmm0
subss xmm3, xmm1
movss dword [ebp - 0x50], xmm5
movss xmm1, dword [ebx + 0x154c]
movss dword [ebp - 0x6c], xmm2
subss xmm2, xmm0
movss dword [ebp - 0x54], xmm6
movss dword [ebp - 0x40], xmm3
movss dword [ebp - 0x70], xmm3
subss xmm3, xmm4
movss dword [ebp - 0x58], xmm2
movss dword [ebp - 0x5c], xmm3
call fcn.10092d90
mov esi, dword [ebp - 0x38]
lea eax, [ebp - 0x48]
push eax
mov edx, esi
lea ecx, [ebp - 0x78]
call fcn.10092ec0
add esp, 4
test al, al
je 0x100f8065
mov edx, esi
lea ecx, [ebp - 0x48]
call fcn.100930e0
mov byte [ebp - 7], al
test al, al
je 0x100f625d
mov dword [ebx + 0x1d38], 1
mov ecx, dword [ebp - 0x34]
lea edi, [ebx + 0x1e08]
xor eax, eax
cmp dword [edi], esi
cmovne edi, eax
mov eax, dword [ecx + 0x174]
mov edx, dword [ecx + 0x17c]
mov dword [ebp - 0x4c], edi
lea eax, [eax + 1]
mov dword [ecx + 0x174], eax
and edx, 5
jne 0x100f6290
inc dword [ecx + 0x178]
mov ecx, dword [0x10309a38]
mov edi, dword [ebp - 0x34]
cmp dword [ecx + 0x1be4], edi
mov edi, dword [ebp - 0x4c]
jne 0x100f630f
cmp eax, dword [ecx + 0x1bec]
jne 0x100f62b1
mov edx, dword [ebp - 0x34]
jmp 0x100f62cc
test edx, edx
jne 0x100f62fe
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0x178]
cmp eax, dword [ecx + 0x1bf0]
jne 0x100f62fe
mov dword [ecx + 0x1af0], esi
mov cl, 1
cmp dword [ebx + 0x1be4], edx
jne 0x100f6311
mov eax, dword [ebx + 0x1bec]
cmp eax, dword [edx + 0x174]
jne 0x100f6311
mov byte [ebp - 2], cl
mov byte [ebp - 0xb], 0
cmp byte [ebp - 7], 0
je 0x100f6323
cmp byte [ebx + 0x3d8], 0
je 0x100f6323
mov al, 1
jmp 0x100f6325
cmp dword [ecx + 0x19ec], esi
jne 0x100f630f
xor edx, edx
xor ecx, ecx
call fcn.10092bf0
xor cl, cl
mov byte [ebp - 2], 0
test cl, cl
je 0x100f62e7
mov byte [ebp - 0xb], 1
mov byte [ebp - 2], 0
jmp 0x100f62eb
xor al, al
mov byte [ebp - 8], al
cmp dword [ebx + 0x19ec], esi
je 0x100f6350
cmp dword [ebx + 0x1aec], esi
je 0x100f6349
cmp dword [ebx + 0x1ae0], esi
jne 0x100f6350
cmp dword [ebx + 0x1b00], 3
jne 0x100f6350
mov dl, 1
mov byte [ebp - 0x18], dl
jmp 0x100f6356
mov byte [ebp - 0x18], 0
xor dl, dl
mov byte [ebp - 0x1c], 0
mov byte [ebp - 4], dl
mov dword [ebp - 0x20], 1
test cl, cl
jne 0x100f6378
test al, al
jne 0x100f6378
test dl, dl
jne 0x100f6378
mov byte [ebp - 5], al
jmp 0x100f6566
mov al, 1
mov dword [ebp - 0x4c], edi
mov byte [ebp - 5], al
cmp dword [ebx + 0x19ec], esi
je 0x100f65b4
mov ecx, dword [ebp + 0x10]
lea edi, [ebx + 0x1e08]
mov dword [ebp - 0x4c], edi
mov dword [edi + 0xe60], 0xbe99999a
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100f63a5
mov eax, dword [edi + 0x28]
sub ecx, edx
lea esi, [ecx + 1]
cmp esi, eax
jle 0x100f63e2
test eax, eax
je 0x100f63cb
cdq
sub eax, edx
lea edx, [edi + 0x24]
mov ecx, eax
sar ecx, 1
add ecx, dword [edx + 4]
jmp 0x100f63d3
mov ecx, 8
lea edx, [edi + 0x24]
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
mov ecx, edx
push eax
call fcn.100a0940
push esi
push dword [ebp + 0x10]
mov dword [edi + 0x24], esi
push dword [edi + 0x2c]
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [ebp + 0x14]
lea eax, [edi + 0xc]
mov esi, dword [eax + 4]
inc edx
add esp, 0xc
mov dword [ebp - 0x10], edx
cmp edx, esi
jle 0x100f6434
test esi, esi
je 0x100f6419
mov eax, esi
cdq
sub eax, edx
mov edx, dword [ebp - 0x10]
mov ecx, eax
sar ecx, 1
add ecx, esi
jmp 0x100f641e
mov ecx, 8
cmp ecx, edx
mov eax, edx
cmovg eax, ecx
lea ecx, [edi + 0xc]
push eax
call fcn.100a09b0
mov edx, dword [ebp - 0x10]
lea eax, [edi + 0xc]
mov dword [eax], edx
mov ecx, dword [edi + 0x1c]
test ecx, ecx
jns 0x100f6456
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [edi + 0x18]
call fcn.100a0940
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
dec ecx
mov dword [edi + 0x18], 0
mov edx, dword [edi + 0x14]
mov esi, edx
mov byte [edi + 0x30], 0
mov dword [ebp - 0x10], edx
lea ecx, [edx + ecx*2]
cmp edx, ecx
jae 0x100f64c6
mov ebx, eax
nop dword [eax]
cmp byte [ebx], 0
je 0x100f64bd
push 0
mov edx, ebx
lea ecx, [ebp - 0x2c]
call fcn.10090400
add ebx, eax
add esp, 4
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x100f64ba
cmp eax, 0xffff
ja 0x100f64aa
mov word [esi], ax
add esi, 2
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x10]
dec eax
lea eax, [edx + eax*2]
cmp esi, eax
jb 0x100f6480
jmp 0x100f64bd
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp + 0x10]
xor ecx, ecx
mov word [esi], cx
sub esi, edx
sar esi, 1
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x38]
mov dword [edi + 4], esi
cmp dword [edi], eax
jne 0x100f6502
cmp dword [edi + 0x3c], esi
mov ecx, esi
cmovl ecx, dword [edi + 0x3c]
cmp dword [edi + 0x40], esi
mov dword [edi + 0x3c], ecx
mov ecx, esi
cmovl ecx, dword [edi + 0x40]
cmp dword [edi + 0x44], esi
cmovl esi, dword [edi + 0x44]
mov dword [edi + 0x44], esi
mov esi, eax
jmp 0x100f6547
cmp byte [ebp - 2], cl
mov esi, eax
mov eax, dword [ebp - 0x18]
movzx eax, al
cmovne eax, dword [ebp - 0x20]
mov dword [edi], esi
mov dword [edi + 0x38], ecx
mov dword [edi + 0xe52], 0x630000
mov dword [edi + 0xe58], ecx
mov dword [edi + 0xe5c], 0x3e7
mov dword [edi + 0x44], ecx
mov dword [edi + 0x3c], ecx
mov dword [edi + 0x48], 0x10000
mov dword [edi + 0x50], ecx
mov byte [edi + 0x4c], 1
mov dword [ebp - 0x18], eax
cmp byte [ebp - 0xb], 0
mov dword [edi + 0x40], ecx
jne 0x100f655f
cmp byte [ebp - 8], 0
je 0x100f6563
cmp byte [ebx + 0x100], 0
je 0x100f6563
mov byte [ebp - 0x18], 1
mov al, byte [ebp - 5]
cmp dword [ebx + 0x19ec], esi
je 0x100f65b4
test al, al
je 0x100f65ac
mov edx, dword [ebp - 0x34]
mov ecx, esi
call fcn.10092bf0
call fcn.10092cd0
mov ecx, edx
call fcn.1009a780
or dword [ebx + 0x1a00], 3
or dword [ebx + 0x1a04], 2
mov eax, dword [ebx + 0x1a0c]
or dword [ebx + 0x1a08], 0x180
mov dword [ebx + 0x1a0c], eax
cmp dword [ebx + 0x19ec], esi
jne 0x100f65e7
test edi, edi
jne 0x100f65c1
xor edx, edx
xor ecx, ecx
call fcn.10092bf0
cmp dword [ebx + 0x19ec], esi
jne 0x100f65e7
cmp byte [ebx + 0x3d8], 0
je 0x100f65e3
mov eax, dword [ebp - 0x1c]
cmp byte [ebp - 5], 0
movzx eax, al
cmove eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov cl, 1
jmp 0x100f65e9
xor cl, cl
mov byte [ebp - 5], cl
test edi, edi
je 0x100f6606
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
je 0x100f6606
test cl, cl
je 0x100f6606
mov byte [ebp - 3], 1
mov byte [ebp - 6], 0
jmp 0x100f6621
mov byte [ebp - 6], 0
mov byte [ebp - 3], 0
test cl, cl
jne 0x100f661d
mov byte [ebp - 3], cl
cmp dword [ebx + 0x19ec], esi
jne 0x100f662b
test edi, edi
je 0x100f662b
cmp byte [edi + 0x30], 0
mov byte [ebp - 0x2e], 1
jne 0x100f662f
mov byte [ebp - 0x2e], 0
movss xmm0, dword [ebp - 0x48]
movss dword [ebp - 0x60], xmm0
cmp dword [ebx + 0x19ec], esi
jne 0x100f6923
mov eax, dword [ebp + 0x14]
mov dword [edi + 0x34], eax
mov dword [edi + 0xe68], 0
mov dword [edi + 0xe6c], 0
mov dword [edi + 0xe70], 0
cmp byte [ebx + 0xf0], 0
movss xmm2, dword [ebx + 0x18c4]
mulss xmm2, dword [0x10257ff4]
sete al
cmp byte [ebp - 0x18], 0
mov byte [ebx + 0x19f9], al
mov dword [ebx + 0x2f84], 1
movss xmm6, dword [ebx + 0xe8]
mov al, byte [ebx + 0xb1]
subss xmm6, xmm0
mov byte [ebp - 2], al
subss xmm6, dword [ebx + 0x1548]
addss xmm6, dword [edi + 0x38]
jne 0x100f6816
mov cl, byte [ebp - 7]
test cl, cl
je 0x100f66d6
test al, al
jne 0x100f6738
cmp byte [ebx + 0x3e2], al
jne 0x100f6816
cmp byte [ebx + 0x3d8], 0
je 0x100f678c
cmp byte [edi + 0xe65], 0
jne 0x100f678c
test cl, cl
je 0x100f6834
cmp byte [edi + 0x4c], 0
je 0x100f6712
push 0
mov edx, edi
lea ecx, [ebp - 0x80]
call fcn.100b2b60
movss xmm2, dword [ebp - 0x74]
add esp, 4
movaps xmm1, xmm6
mov ecx, edi
call fcn.100b2e80
mov dword [edi + 0x3c], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], eax
mov byte [edi + 0x4b], 0
mov dword [edi + 0xe60], 0xbe99999a
jmp 0x100f6831
cmp byte [ebx + 0x3e2], 0
je 0x100f66d6
push 0x20000c
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.100b3260
add esp, 4
mov byte [edi + 0xe64], 1
lea edx, [edi + 0x3c]
mov dword [edi + 0xe60], 0xbe99999a
mov ecx, edi
push 0x60000d
call fcn.100b3260
add esp, 4
mov byte [edi + 0xe64], 1
mov dword [edi + 0xe60], 0xbe99999a
jmp 0x100f6831
cmp byte [ebx + 0xf0], 0
je 0x100f6834
cmp byte [edi + 0xe65], 0
jne 0x100f683d
movss xmm0, dword [ebx + 0x378]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100f67cb
movss xmm0, dword [ebx + 0x37c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100f6834
cmp byte [edi + 0x4c], 0
je 0x100f67e5
push 0
mov edx, edi
lea ecx, [ebp - 0x80]
call fcn.100b2b60
movss xmm2, dword [ebp - 0x74]
add esp, 4
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
jne 0x100f67f3
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x40], eax
movaps xmm1, xmm6
mov ecx, edi
call fcn.100b2e80
mov dword [edi + 0x44], eax
mov dword [edi + 0x3c], eax
mov dword [edi + 0xe60], 0xbe99999a
mov byte [edi + 0xe64], 1
jmp 0x100f6831
mov eax, dword [edi + 4]
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], eax
mov dword [edi + 0x3c], eax
mov byte [edi + 0x4b], 0
mov byte [edi + 0xe65], 1
mov al, byte [ebp - 2]
cmp byte [edi + 0xe65], 0
je 0x100f684d
cmp byte [ebx + 0xf0], 0
jne 0x100f684d
mov byte [edi + 0xe65], 0
cmp byte [ebx + 0x100], 0
je 0x100f685f
cmp byte [ebx + 0x102], 0
je 0x100f686c
test al, al
je 0x100f6870
cmp byte [ebx + 0x103], 0
je 0x100f6870
mov al, 1
jmp 0x100f6872
xor al, al
cmp dword [ebx + 0x1500], 0
jle 0x100f6923
test al, al
jne 0x100f68f3
cmp byte [ebp - 4], al
jne 0x100f68f3
mov dword [ebp - 0x20], 0
xor esi, esi
mov eax, dword [ebx + 0x1508]
movzx eax, word [eax + esi]
mov dword [ebp - 0x10], eax
cmp eax, 9
jne 0x100f68ac
cmp byte [ebx + 0x101], 0
jne 0x100f68e1
sub esp, 8
lea ecx, [ebp - 0x10]
xor edx, edx
call fcn.100b8610
add esp, 8
test al, al
je 0x100f68e1
push dword [ebp - 0x10]
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.100b3260
add esp, 4
mov byte [edi + 0xe64], 1
mov dword [edi + 0xe60], 0xbe99999a
mov eax, dword [ebp - 0x20]
add esi, 2
inc eax
mov dword [ebp - 0x20], eax
cmp eax, dword [ebx + 0x1500]
jl 0x100f6891
mov ecx, dword [ebx + 0x1504]
test ecx, ecx
jns 0x100f6919
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [ebx + 0x1500]
call fcn.100a09b0
mov dword [ebx + 0x1500], 0
mov eax, dword [ebp - 0x38]
xor cl, cl
mov byte [ebp - 1], cl
cmp dword [ebx + 0x19ec], eax
jne 0x100f71e5
cmp byte [ebx + 0x19f8], cl
jne 0x100f70a9
cmp byte [ebp - 0x1c], cl
jne 0x100f70a9
mov cl, byte [ebx + 0x101]
xor eax, eax
mov ch, byte [ebx + 0xb1]
test cl, cl
mov edx, 0x400000
mov byte [ebp - 0x11], ch
cmovne eax, edx
mov dword [ebp - 0x18], eax
test ch, ch
je 0x100f69c0
cmp byte [ebx + 0x103], 0
je 0x100f6987
cmp byte [ebx + 0x100], 0
jne 0x100f6987
mov eax, 1
jmp 0x100f6989
xor eax, eax
test eax, eax
jne 0x100f69d2
xor dl, dl
mov byte [ebp - 2], dl
test ch, ch
je 0x100f69e3
cmp byte [ebx + 0x103], 0
je 0x100f69e3
cmp byte [ebx + 0x101], 0
je 0x100f69e3
cmp byte [ebx + 0x100], 0
jne 0x100f69e3
cmp byte [ebx + 0x102], 0
jne 0x100f69e3
mov byte [ebp - 8], 1
jmp 0x100f69eb
cmp byte [ebx + 0x100], 0
je 0x100f698d
cmp byte [ebx + 0x103], 0
jne 0x100f698d
cmp byte [ebx + 0x102], 0
jne 0x100f698d
test cl, cl
jne 0x100f698d
mov dl, 1
jmp 0x100f698f
mov byte [ebp - 8], 0
test ch, ch
je 0x100f6a4c
cmp byte [ebx + 0x103], 0
mov al, byte [ebx + 0x102]
mov byte [ebp - 9], al
je 0x100f6a56
cmp byte [ebx + 0x100], 0
jne 0x100f6a56
test al, al
jne 0x100f6a56
mov cl, byte [ebx + 0x100]
mov byte [ebp - 0xa], 1
cmp byte [ebx + 0x101], 0
mov byte [ebp - 4], 0
je 0x100f6aa6
mov byte [ebp - 4], 0
test cl, cl
jne 0x100f6aa6
mov byte [ebp - 4], cl
cmp byte [ebx + 0x102], cl
jne 0x100f6aa6
mov byte [ebp - 4], cl
cmp byte [ebx + 0x103], cl
jne 0x100f6aa6
mov byte [ebp - 7], 1
mov byte [ebp - 4], cl
jmp 0x100f6aaa
mov al, byte [ebx + 0x100]
mov byte [ebp - 8], 0
mov cl, byte [ebx + 0x100]
mov byte [ebp - 9], al
mov byte [ebp - 0xa], 0
test cl, cl
je 0x100f6a14
cmp byte [ebx + 0x101], 0
mov byte [ebp - 9], al
mov byte [ebp - 0xa], 0
jne 0x100f6a14
cmp byte [ebx + 0x102], 0
mov byte [ebp - 9], al
mov byte [ebp - 0xa], 0
jne 0x100f6a14
cmp byte [ebx + 0x103], 0
mov byte [ebp - 9], al
mov byte [ebp - 0xa], 0
jne 0x100f6a14
mov byte [ebp - 4], 1
mov byte [ebp - 9], al
mov byte [ebp - 0xa], 0
mov byte [ebp - 7], 0
mov esi, dword [0x10309a38]
test dl, dl
je 0x100f6ac7
mov ecx, dword [esi + 0x80]
test ecx, ecx
js 0x100f6ac7
call fcn.100957c0
test al, al
jne 0x100f6add
cmp byte [ebp - 7], 0
je 0x100f6ae3
mov ecx, dword [esi + 0x5c]
test ecx, ecx
js 0x100f6ae3
call fcn.100957c0
test al, al
je 0x100f6ae3
mov byte [ebp - 0xb], 1
jmp 0x100f6ae7
mov byte [ebp - 0xb], 0
cmp byte [ebp - 2], 0
je 0x100f6afd
mov ecx, dword [esi + 0x78]
test ecx, ecx
js 0x100f6afd
call fcn.100957c0
test al, al
jne 0x100f6b13
cmp byte [ebp - 4], 0
je 0x100f6b19
mov ecx, dword [esi + 0x58]
test ecx, ecx
js 0x100f6b19
call fcn.100957c0
test al, al
je 0x100f6b19
mov byte [ebp - 4], 1
jmp 0x100f6b1d
mov byte [ebp - 4], 0
cmp byte [ebp - 2], 0
je 0x100f6b33
mov ecx, dword [esi + 0x7c]
test ecx, ecx
js 0x100f6b33
call fcn.100957c0
test al, al
jne 0x100f6b49
cmp byte [ebp - 7], 0
je 0x100f6b4f
mov ecx, dword [esi + 0x58]
test ecx, ecx
js 0x100f6b4f
call fcn.100957c0
test al, al
je 0x100f6b4f
mov byte [ebp - 0x2d], 1
jmp 0x100f6b53
mov byte [ebp - 0x2d], 0
mov al, byte [ebp - 2]
test al, al
je 0x100f6b76
mov ecx, dword [esi + 0x88]
test ecx, ecx
js 0x100f6b76
call fcn.100957c0
test al, al
je 0x100f6b73
mov byte [ebp - 7], 1
jmp 0x100f6b7e
mov al, byte [ebp - 2]
mov byte [ebp - 7], 0
test al, al
je 0x100f6b91
mov ecx, dword [esi + 0x84]
test ecx, ecx
js 0x100f6b91
call fcn.100957c0
test al, al
jne 0x100f6baa
cmp byte [ebp - 8], 0
je 0x100f6bb0
mov ecx, dword [esi + 0x88]
test ecx, ecx
js 0x100f6bb0
call fcn.100957c0
test al, al
je 0x100f6bb0
mov byte [ebp - 8], 1
jmp 0x100f6bb4
mov byte [ebp - 8], 0
mov ecx, dword [esi + 0x38]
test ecx, ecx
js 0x100f6bf7
call fcn.100957c0
test al, al
je 0x100f6bf7
cmp byte [ebp - 0xa], 0
je 0x100f6bd1
mov ecx, 0x200004
jmp 0x100f6be2
mov ecx, 0x200000
mov eax, 0x20000c
cmp byte [ebp - 9], 0
cmovne ecx, eax
mov eax, dword [ebp - 0x18]
lea edx, [edi + 0x3c]
or eax, ecx
mov ecx, edi
push eax
call fcn.100b3260
jmp 0x100f7078
mov ecx, dword [esi + 0x3c]
test ecx, ecx
js 0x100f6c1e
call fcn.100957c0
test al, al
je 0x100f6c1e
cmp byte [ebp - 0xa], 0
je 0x100f6c14
mov ecx, 0x200005
jmp 0x100f6be2
mov ecx, 0x200001
lea eax, [ecx + 0xc]
jmp 0x100f6bdb
mov ecx, dword [esi + 0x50]
test ecx, ecx
js 0x100f6c58
call fcn.100957c0
test al, al
je 0x100f6c58
mov ecx, dword [ebp - 0x18]
lea edx, [edi + 0x3c]
mov eax, ecx
or ecx, 0x200004
or eax, 0x200006
cmp byte [ebx + 0x100], 0
cmovne ecx, eax
push ecx
mov ecx, edi
call fcn.100b3260
jmp 0x100f7078
mov ecx, dword [esi + 0x54]
test ecx, ecx
js 0x100f6c92
call fcn.100957c0
test al, al
je 0x100f6c92
mov ecx, dword [ebp - 0x18]
lea edx, [edi + 0x3c]
mov eax, ecx
or ecx, 0x200005
or eax, 0x200007
cmp byte [ebx + 0x100], 0
cmovne ecx, eax
push ecx
mov ecx, edi
call fcn.100b3260
jmp 0x100f7078
mov ecx, dword [esi + 0x5c]
test ecx, ecx
js 0x100f6cba
call fcn.100957c0
test al, al
je 0x100f6cba
mov eax, dword [ebp - 0x18]
lea edx, [edi + 0x3c]
or eax, 0x200008
mov ecx, edi
push eax
call fcn.100b3260
jmp 0x100f7078
mov ecx, dword [esi + 0x60]
test ecx, ecx
js 0x100f6d3b
call fcn.100957c0
test al, al
je 0x100f6d3b
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
jne 0x100f6d23
cmp byte [ebp - 9], 0
je 0x100f6cdf
push 0x60000c
jmp 0x100f6d05
cmp byte [ebp - 0x11], 0
je 0x100f6d23
cmp byte [ebx + 0x103], 0
je 0x100f6d23
cmp byte [ebx + 0x102], 0
jne 0x100f6d23
cmp byte [ebx + 0x100], 0
jne 0x100f6d23
push 0x600004
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.100b3260
mov dword [edi + 0xe60], 0xbe99999a
add esp, 4
mov byte [edi + 0xe64], 1
mov eax, dword [ebp - 0x18]
lea edx, [edi + 0x3c]
or eax, 0x200009
mov ecx, edi
push eax
call fcn.100b3260
jmp 0x100f7078
mov ecx, dword [esi + 0x68]
test ecx, ecx
js 0x100f6d4b
call fcn.100957c0
test al, al
jne 0x100f6d5b
mov ecx, dword [esi + 0x70]
test ecx, ecx
js 0x100f6d64
call fcn.100957c0
test al, al
je 0x100f6d64
mov byte [ebp - 0x1c], 1
jmp 0x100f708c
mov ecx, dword [esi + 0x6c]
test ecx, ecx
js 0x100f6d7e
call fcn.100957c0
test al, al
je 0x100f6d7e
mov cl, 1
mov byte [ebp - 0x1c], cl
jmp 0x100f708f
mov al, byte [ebp - 7]
test al, al
jne 0x100f7059
cmp byte [ebp - 8], al
jne 0x100f7059
cmp byte [ebp - 2], al
je 0x100f6dc0
mov ecx, dword [esi + 0x74]
test ecx, ecx
js 0x100f6dc0
call fcn.100957c0
test al, al
je 0x100f6dc0
mov eax, dword [edi + 4]
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], eax
mov dword [edi + 0x3c], eax
mov byte [edi + 0x4b], 0
jmp 0x100f7085
mov al, byte [ebp - 0xb]
test al, al
jne 0x100f6f55
cmp byte [ebp - 4], al
jne 0x100f6f55
cmp byte [ebp - 0x2d], al
je 0x100f708c
mov eax, dword [esi + 0xd0]
test eax, eax
je 0x100f6e05
push dword [esi + 0xd8]
call eax
add esp, 4
mov dword [ebp - 0x10], eax
test eax, eax
je 0x100f708c
mov esi, dword [0x10309a38]
jmp 0x100f6e0d
mov eax, 0x10251fb4
mov dword [ebp - 0x10], eax
mov ecx, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100f6e12
sub ecx, edx
test esi, esi
je 0x100f6e25
inc dword [esi + 0x374]
lea eax, [ecx*2 + 2]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov esi, dword [ebp - 0x10]
add esp, 4
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], 0
cmp byte [esi], 0
je 0x100f6e95
xor ebx, ebx
mov edi, eax
nop dword [eax]
push 0
mov edx, esi
lea ecx, [ebp - 0x24]
call fcn.10090400
add esp, 4
add esi, eax
cmp dword [ebp - 0x24], 0
je 0x100f6e89
sub esp, 8
lea ecx, [ebp - 0x24]
xor edx, edx
call fcn.100b8610
add esp, 8
test al, al
je 0x100f6e84
mov ax, word [ebp - 0x24]
mov word [edi + ebx*2], ax
inc ebx
cmp byte [esi], 0
jne 0x100f6e50
mov edi, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x20]
xor ecx, ecx
mov word [eax + esi*2], cx
test esi, esi
jle 0x100f6f32
mov edx, dword [edi + 0x44]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x10], edx
mov edx, dword [edi + 0x40]
cmp edx, dword [edi + 0x44]
je 0x100f6ed3
cmp edx, ecx
jle 0x100f6ec0
mov dword [edi + 0x40], ecx
mov edx, ecx
cmp dword [edi + 0x44], ecx
jle 0x100f6ecb
mov dword [edi + 0x44], ecx
mov dword [ebp - 0x10], ecx
cmp edx, dword [ebp - 0x10]
jne 0x100f6ed3
mov dword [edi + 0x3c], edx
cmp dword [edi + 0x3c], ecx
jle 0x100f6edb
mov dword [edi + 0x3c], ecx
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.100f5f50
mov edx, dword [edi + 0x3c]
mov ecx, edi
push esi
push dword [ebp - 0x28]
call fcn.100b2d30
add esp, 8
test al, al
je 0x100f6f14
mov edx, dword [edi + 0x3c]
lea ecx, [edi + 0x54]
push esi
push 0
call fcn.100b4090
add esp, 8
mov byte [edi + 0x4b], 0
add dword [edi + 0x3c], esi
jmp 0x100f6f28
movzx eax, word [edi + 0xe52]
test ax, ax
je 0x100f6f28
dec eax
mov word [edi + 0xe52], ax
mov eax, dword [ebp - 0x28]
mov byte [edi + 0xe64], 1
test eax, eax
je 0x100f6f46
mov ecx, dword [0x10309a38]
test ecx, ecx
je 0x100f6f46
dec dword [ecx + 0x374]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
jmp 0x100f708c
cmp dword [ebx + 0xd4], 0
je 0x100f701a
mov ecx, dword [edi + 0x44]
mov eax, dword [edi + 0x40]
cmp eax, ecx
je 0x100f6f79
mov edx, ecx
cmovge ecx, eax
cmovl edx, eax
mov dword [ebp - 0x24], edx
jmp 0x100f6f83
mov ecx, dword [edi + 4]
mov dword [ebp - 0x24], 0
mov al, byte [ebp - 3]
mov byte [ebp - 3], al
mov al, byte [ebp - 6]
mov byte [ebp - 6], al
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x10], ecx
lea edx, [eax + ecx*2]
mov ecx, dword [ebp - 0x24]
lea ecx, [eax + ecx*2]
call fcn.100906c0
inc eax
mov dword [ebp - 0x2c], eax
test esi, esi
je 0x100f6fb1
inc dword [esi + 0x374]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov esi, dword [edi + 0x14]
add esp, 4
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x24]
lea ecx, [esi + ecx*2]
push ecx
lea ecx, [esi + eax*2]
mov esi, dword [ebp - 0x20]
push ecx
mov ecx, esi
call fcn.10090590
mov eax, dword [0x10309a38]
add esp, 8
mov ecx, dword [eax + 0xd4]
test ecx, ecx
je 0x100f6fff
push esi
push dword [eax + 0xd8]
call ecx
mov eax, dword [0x10309a38]
add esp, 8
test esi, esi
je 0x100f700d
test eax, eax
je 0x100f700d
dec dword [eax + 0x374]
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov al, byte [ebp - 0xb]
add esp, 4
test al, al
je 0x100f708c
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
jne 0x100f703a
mov eax, dword [edi + 4]
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], eax
mov dword [edi + 0x3c], eax
mov byte [edi + 0x4b], 0
mov byte [edi + 0xe64], 1
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
je 0x100f708c
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.100f5f50
mov byte [edi + 0x4b], 0
jmp 0x100f708c
movzx eax, al
lea edx, [edi + 0x3c]
xor eax, 1
mov ecx, edi
add eax, 0x20000a
push eax
call fcn.100b3260
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x44], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0xe60], 0xbe99999a
add esp, 4
mov byte [edi + 0xe64], 1
mov cl, byte [ebp - 1]
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
je 0x100f70a1
cmp byte [ebp - 5], 0
je 0x100f70a1
mov al, 1
jmp 0x100f70a3
xor al, al
or byte [ebp - 3], al
mov eax, dword [ebp - 0x38]
cmp dword [ebx + 0x19ec], eax
jne 0x100f71e5
test cl, cl
je 0x100f70f7
mov esi, dword [edi + 0x2c]
mov ecx, esi
mov eax, dword [ebp + 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100f70e1
test dl, dl
je 0x100f70dd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100f70e1
add eax, 2
add ecx, 2
test dl, dl
jne 0x100f70c1
xor eax, eax
jmp 0x100f70e6
sbb eax, eax
or eax, 1
test eax, eax
je 0x100f71c4
mov eax, dword [edi + 0x24]
dec eax
jmp 0x100f718d
mov eax, dword [edi + 0xc]
lea ecx, [edi + 0x18]
mov byte [edi + 0x30], 1
lea esi, [eax*4 + 1]
mov eax, dword [ecx + 4]
cmp esi, eax
jle 0x100f713c
test eax, eax
je 0x100f7122
cdq
sub eax, edx
lea edx, [edi + 0x18]
mov ecx, eax
sar ecx, 1
add ecx, dword [edx + 4]
jmp 0x100f712a
mov ecx, 8
lea edx, [edi + 0x18]
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
mov ecx, edx
push eax
call fcn.100a0940
lea ecx, [edi + 0x18]
mov dword [ecx], esi
mov edx, esi
mov ecx, dword [edi + 0x20]
push 0
push dword [edi + 0x14]
call fcn.10090590
mov esi, dword [edi + 0x20]
add esp, 8
mov ecx, dword [ebp + 0x10]
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100f7178
test dl, dl
je 0x100f7174
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100f7178
add eax, 2
add ecx, 2
test dl, dl
jne 0x100f7158
xor eax, eax
jmp 0x100f717d
sbb eax, eax
or eax, 1
mov cl, byte [ebp - 6]
mov byte [ebp - 6], cl
test eax, eax
je 0x100f71c4
mov eax, dword [edi + 8]
mov byte [ebp - 6], cl
test esi, esi
je 0x100f71c4
mov ecx, dword [ebp + 0x14]
inc eax
cmp eax, ecx
cmovl ecx, eax
mov dword [ebp + 0x14], ecx
cmp ecx, 1
jb 0x100f71c0
jbe 0x100f71b8
lea eax, [ecx - 1]
push eax
push esi
push dword [ebp + 0x10]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov ecx, dword [ebp + 0x14]
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov byte [ecx + eax - 1], 0
mov byte [ebp - 6], 1
mov eax, dword [ebp - 0x38]
mov dword [edi + 0xe68], 0
mov dword [edi + 0xe6c], 0
mov dword [edi + 0xe70], 0
cmp byte [ebp - 0x1c], 0
je 0x100f71fc
cmp dword [ebx + 0x19ec], eax
jne 0x100f71fc
xor edx, edx
xor ecx, ecx
call fcn.10092bf0
mov eax, dword [ebp + 8]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + eax], 0
jne 0x100f7206
xor edx, edx
test ecx, ecx
je 0x100f7227
movsx eax, byte [edx + eax]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
mov eax, dword [ebp + 8]
cmp edx, ecx
jb 0x100f7213
lea eax, [esi - 0x2df58e5a]
mov ecx, 0x10b0c610
mov dword [ebp - 0xb4], eax
lea eax, [ebp - 0xb4]
push eax
call fcn.100ec5f0
cmp byte [ebp - 5], 0
jne 0x100f7255
cmp byte [ebp - 3], 0
jne 0x100f7255
xorps xmm1, xmm1
jmp 0x100f725d
movss xmm1, dword [0x1025805c]
movss xmm0, dword [eax + 4]
lea esi, [eax + 4]
mov eax, dword [0x1031b004]
add eax, 0xe57b4e31
xor eax, 0x147cb0fe
movss xmm2, dword [eax + 4]
mulss xmm2, dword [0x10258118]
call fcn.10028e10
movss xmm6, dword [0x1025805c]
lea ecx, [ebp + 0x14]
xorps xmm4, xmm4
movss dword [esi], xmm0
comiss xmm0, xmm4
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0x3f800000
mov dword [ebp + 0x14], 0
mov dword [ebp - 0x10], 0xff
movss xmm5, dword [0x102582c4]
movss xmm7, dword [0x10257ff4]
cmovae ecx, esi
comiss xmm6, xmm0
cmovae eax, ecx
lea ecx, [ebp + 0x14]
movss xmm1, dword [eax]
lea eax, [ebp - 0x2c]
movaps xmm0, xmm1
movss dword [esi], xmm1
mulss xmm1, dword [0x102581b0]
mov dword [ebp + 0x14], 0
mulss xmm0, dword [0x102581c4]
addss xmm1, dword [0x10258238]
cvttss2si ebx, xmm0
mulss xmm1, dword [ebp - 0x84]
cvttss2si edx, xmm1
test edx, edx
mov dword [ebp - 0x2c], edx
cmovns ecx, eax
cmp edx, 0xff
lea eax, [ebp - 0x10]
cmovle eax, ecx
mov cl, byte [eax]
movzx eax, bl
movd xmm2, eax
movzx eax, cl
cvtdq2ps xmm2, xmm2
movd xmm3, eax
mulss xmm2, dword [0x10257f14]
cvtdq2ps xmm3, xmm3
comiss xmm4, xmm2
mulss xmm3, dword [0x10257f14]
jbe 0x100f7352
xor ecx, ecx
xorps xmm2, xmm2
jmp 0x100f7384
movaps xmm0, xmm2
movaps xmm1, xmm2
minss xmm0, xmm6
minss xmm1, xmm6
minss xmm2, xmm6
mulss xmm0, xmm5
mulss xmm1, xmm5
addss xmm0, xmm7
addss xmm1, xmm7
cvttss2si ecx, xmm0
cvttss2si eax, xmm1
shl ecx, 8
or ecx, eax
shl ecx, 8
mulss xmm2, xmm5
addss xmm2, xmm7
cvttss2si eax, xmm2
or ecx, eax
comiss xmm4, xmm3
jbe 0x100f739c
xorps xmm3, xmm3
jmp 0x100f73a0
minss xmm3, xmm6
mulss xmm3, xmm5
push 0xf
push ecx
mov dword [esp], 0x40800000
addss xmm3, xmm7
cvttss2si eax, xmm3
shl eax, 0x18
or eax, ecx
mov ecx, dword [0x10b0bba4]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.100aad30
cmp byte [ebp - 0x2e], 0
movss xmm7, dword [ebp - 0x54]
movss xmm2, dword [ebp - 0x48]
movaps xmm0, xmm7
movss xmm1, dword [ebp - 0x44]
addss xmm0, xmm2
movss dword [ebp - 0x18], xmm1
movss dword [ebp - 0x98], xmm1
movss dword [ebp - 0x9c], xmm2
movss dword [ebp - 0x68], xmm0
movss dword [ebp - 0x94], xmm0
movaps xmm0, xmm1
addss xmm0, dword [ebp - 0x50]
addss xmm1, dword [0x10258128]
movss dword [ebp - 0x50], xmm0
movss dword [ebp - 0x90], xmm0
movaps xmm0, xmm2
addss xmm0, dword [0x10258140]
movss dword [ebp - 0x10], xmm1
movss dword [ebp - 0x58], xmm1
movss dword [ebp - 0x54], xmm0
movss dword [ebp - 0x5c], xmm0
je 0x100f7451
mov esi, dword [edi + 0x20]
mov dword [ebp + 0x10], esi
jmp 0x100f7454
mov esi, dword [ebp + 0x10]
mov ch, byte [ebp - 5]
mov cl, byte [ebp - 3]
test ch, ch
jne 0x100f74e8
test cl, cl
jne 0x100f74e8
mov ebx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x38]
cmp dword [ebx + 0x19ec], eax
jne 0x100f747f
mov edx, dword [edi + 8]
add edx, esi
jmp 0x100f7490
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100f7484
sub ecx, edx
lea edx, [esi + ecx]
mov eax, edx
mov dword [ebp - 0x24], edx
sub eax, esi
cmp eax, 0x200000
jge 0x100f7d78
movss xmm1, dword [0x1025805c]
lea eax, [ebp - 0x9c]
push eax
push ecx
mov dword [esp], 0
xor ecx, ecx
push edx
push esi
call fcn.10090cf0
movss xmm2, dword [ebx + 0x18c4]
push eax
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0x34]
push dword [ebx + 0x18c0]
mov ecx, dword [eax + 0x284]
call fcn.100ab240
jmp 0x100f7d78
mov eax, dword [edi + 8]
mov ebx, 0xfffffc18
add eax, esi
mov dword [ebp - 0x20], 0
xor edx, edx
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x14]
xorps xmm4, xmm4
mov dword [ebp - 0x1c], 0
xorps xmm6, xmm6
mov dword [ebp - 0x28], ebx
xorps xmm5, xmm5
mov dword [ebp + 0x14], ebx
test ch, ch
je 0x100f7532
mov esi, dword [edi + 0x14]
or ebx, 0xffffffff
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x28], ebx
lea edx, [ebx + 2]
lea eax, [esi + eax*2]
mov dword [ebp - 0x20], eax
mov eax, esi
test cl, cl
je 0x100f7551
mov ecx, dword [edi + 0x44]
cmp dword [edi + 0x40], ecx
mov eax, dword [edi + 0x14]
cmovl ecx, dword [edi + 0x40]
inc edx
mov dword [ebp + 0x14], 0xffffffff
lea ecx, [eax + ecx*2]
mov dword [ebp - 0x1c], ecx
mov ecx, eax
xor esi, esi
movzx eax, word [eax]
test ax, ax
je 0x100f75a4
mov edi, dword [ebp - 0x28]
mov ebx, eax
cmp bx, 0xa
jne 0x100f758d
inc esi
cmp edi, 0xffffffff
jne 0x100f757a
cmp ecx, dword [ebp - 0x20]
jb 0x100f757a
dec edx
mov edi, esi
test edx, edx
jle 0x100f759b
cmp dword [ebp + 0x14], 0xffffffff
jne 0x100f758d
cmp ecx, dword [ebp - 0x1c]
jb 0x100f758d
dec edx
mov dword [ebp + 0x14], esi
test edx, edx
jle 0x100f759b
movzx eax, word [ecx + 2]
add ecx, 2
mov ebx, eax
test ax, ax
jne 0x100f7562
mov dword [ebp - 0x28], edi
mov edi, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x28]
mov edx, dword [edi + 0x14]
inc esi
cmp ebx, 0xffffffff
mov eax, esi
cmovne eax, ebx
mov ebx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov ecx, ebx
mov eax, dword [ebp + 0x14]
cmp eax, 0xffffffff
cmove eax, esi
mov dword [ebp + 0x14], eax
cmp ebx, edx
jbe 0x100f75d6
cmp word [ecx - 2], 0xa
je 0x100f75d6
add ecx, 0xfffffffe
cmp ecx, edx
ja 0x100f75c8
mov eax, dword [0x10309a38]
movaps xmm3, xmm4
movss dword [ebp - 0x28], xmm3
movaps xmm1, xmm4
mov esi, dword [eax + 0x18c0]
movss xmm2, dword [eax + 0x18c4]
divss xmm2, dword [esi + 0x10]
cmp ecx, ebx
jae 0x100f7651
nop dword [eax]
movzx eax, word [ecx]
add ecx, 2
mov edx, eax
cmp eax, 0xa
jne 0x100f7616
maxss xmm3, xmm1
movaps xmm1, xmm4
jmp 0x100f7638
cmp edx, 0xd
je 0x100f7638
mov edx, eax
cmp edx, dword [esi]
jge 0x100f762b
mov eax, dword [esi + 8]
movss xmm0, dword [eax + edx*4]
jmp 0x100f7630
movss xmm0, dword [esi + 0xc]
mulss xmm0, xmm2
addss xmm1, xmm0
cmp ecx, ebx
jb 0x100f7600
comiss xmm1, xmm3
mov edx, dword [edi + 0x14]
movss dword [ebp - 0x28], xmm3
jbe 0x100f7651
movaps xmm3, xmm1
movss dword [ebp - 0x28], xmm3
cmp dword [ebp + 0x14], 0
movd xmm0, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x64]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [ebx + 0x18c4]
movss dword [ebp - 0x20], xmm0
jl 0x100f7711
mov eax, dword [ebp - 0x1c]
mov ecx, eax
cmp eax, edx
jbe 0x100f7691
nop dword [eax]
cmp word [ecx - 2], 0xa
je 0x100f768e
add ecx, 0xfffffffe
cmp ecx, edx
ja 0x100f7680
mov eax, dword [ebp - 0x1c]
mov edx, dword [0x10309a38]
movaps xmm5, xmm4
movaps xmm1, xmm4
mov esi, dword [edx + 0x18c0]
movss xmm2, dword [edx + 0x18c4]
divss xmm2, dword [esi + 0x10]
cmp ecx, eax
jae 0x100f7701
mov edi, dword [ebp - 0x1c]
movzx eax, word [ecx]
add ecx, 2
mov edx, eax
cmp eax, 0xa
jne 0x100f76d0
maxss xmm1, xmm5
movaps xmm5, xmm1
movaps xmm1, xmm4
jmp 0x100f76f2
cmp edx, 0xd
je 0x100f76f2
mov edx, eax
cmp edx, dword [esi]
jge 0x100f76e5
mov eax, dword [esi + 8]
movss xmm0, dword [eax + edx*4]
jmp 0x100f76ea
movss xmm0, dword [esi + 0xc]
mulss xmm0, xmm2
addss xmm1, xmm0
cmp ecx, edi
jb 0x100f76b7
comiss xmm1, xmm5
mov edi, dword [ebp - 0x4c]
jbe 0x100f7701
movaps xmm5, xmm1
movd xmm6, dword [ebp + 0x14]
cvtdq2ps xmm6, xmm6
mulss xmm6, dword [ebx + 0x18c4]
cmp byte [ebp - 5], 0
je 0x100f776a
cmp byte [edi + 0xe64], 0
je 0x100f776a
movss xmm2, dword [edi + 0x38]
movaps xmm1, xmm7
comiss xmm2, xmm3
mulss xmm1, dword [0x10257fac]
movaps xmm0, xmm3
jbe 0x100f7746
subss xmm0, xmm1
maxss xmm0, xmm4
cvttss2si eax, xmm0
jmp 0x100f7757
subss xmm0, xmm7
comiss xmm0, xmm2
jb 0x100f7763
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x38], xmm0
mov byte [edi + 0xe64], 0
cmp byte [ebp - 3], 0
movss xmm7, dword [edi + 0x38]
movss dword [ebp - 0x2c], xmm7
je 0x100f7a2f
mov ecx, dword [edi + 0x40]
mov edx, dword [edi + 0x44]
mov eax, edx
mov esi, dword [edi + 0x14]
cmp ecx, edx
movss xmm0, dword [ebp - 0x84]
mulss xmm0, dword [0x102581b0]
cmovl eax, ecx
cmovge edx, ecx
mov dword [ebp - 0x3c], 0xff
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
lea esi, [esi + eax*2]
mov eax, dword [edi + 0x14]
lea eax, [eax + edx*2]
cvttss2si edx, xmm0
mov dword [ebp + 0x14], eax
lea eax, [ebp - 0xb8]
test edx, edx
mov dword [ebp - 0xb8], edx
cmovns ecx, eax
cmp edx, 0xff
lea eax, [ebp - 0x3c]
cmovle eax, ecx
movzx eax, byte [eax]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10257f14]
comiss xmm4, xmm0
jbe 0x100f77fb
movaps xmm0, xmm4
jmp 0x100f7803
minss xmm0, dword [0x1025805c]
mulss xmm0, dword [0x102582c4]
mov ecx, dword [ebp + 0x14]
addss xmm5, dword [ebp - 0x54]
addss xmm6, dword [ebp - 0x10]
addss xmm0, dword [0x10257ff4]
subss xmm5, xmm7
movss dword [ebp - 0x1c], xmm6
cvttss2si eax, xmm0
shl eax, 0x18
or eax, 0xd9d9d9
mov dword [ebp - 0x3c], eax
cmp esi, ecx
jae 0x100f7a2f
movss xmm1, dword [ebp - 0x50]
mov edi, eax
nop word [eax + eax]
movaps xmm0, xmm1
addss xmm0, dword [ebx + 0x18c4]
comiss xmm6, xmm0
ja 0x100f7a2c
movss xmm0, dword [ebp - 0x18]
comiss xmm0, xmm6
jbe 0x100f788f
cmp esi, ecx
jae 0x100f7a0e
mov ax, word [esi]
add esi, 2
cmp ax, 0xa
je 0x100f7a0e
cmp esi, ecx
jb 0x100f7876
jmp 0x100f7a2c
mov eax, dword [0x10309a38]
movaps xmm3, xmm4
movaps xmm1, xmm4
mov edx, dword [eax + 0x18c0]
movss xmm2, dword [eax + 0x18c4]
divss xmm2, dword [edx + 0x10]
cmp esi, ecx
jae 0x100f78f4
movzx eax, word [esi]
add esi, 2
mov ecx, eax
cmp eax, 0xa
je 0x100f78e7
cmp ecx, 0xd
je 0x100f78de
cmp ecx, dword [edx]
jge 0x100f78d1
mov eax, dword [edx + 8]
movss xmm0, dword [eax + ecx*4]
jmp 0x100f78d6
movss xmm0, dword [edx + 0xc]
mulss xmm0, xmm2
addss xmm1, xmm0
mov ecx, dword [ebp + 0x14]
cmp esi, ecx
jb 0x100f78b1
jmp 0x100f78f4
mov ecx, dword [ebp + 0x14]
movaps xmm3, xmm1
maxss xmm3, xmm4
movaps xmm1, xmm4
maxss xmm3, xmm1
comiss xmm4, xmm3
jb 0x100f792d
mov eax, dword [ebx + 0x18c0]
cmp dword [eax], 0x20
jle 0x100f7915
mov eax, dword [eax + 8]
movss xmm0, dword [eax + 0x80]
jmp 0x100f791a
movss xmm0, dword [eax + 0xc]
mulss xmm0, dword [0x10257ff4]
cvttss2si eax, xmm0
movd xmm3, eax
cvtdq2ps xmm3, xmm3
movss xmm0, dword [ebx + 0x18c4]
addss xmm3, xmm5
addss xmm0, dword [0x1025805c]
movss xmm4, dword [ebp - 0x18]
movaps xmm1, xmm6
maxss xmm5, dword [ebp - 0x60]
movaps xmm2, xmm6
addss xmm2, dword [0x102580a8]
minss xmm3, dword [ebp - 0x68]
subss xmm1, xmm0
movss dword [ebp - 0x48], xmm5
movss dword [ebp - 0x40], xmm3
maxss xmm4, xmm1
movss xmm1, dword [ebp - 0x50]
movaps xmm0, xmm1
minss xmm0, xmm2
movss dword [ebp - 0x44], xmm4
comiss xmm0, dword [ebp - 0x18]
movss dword [ebp - 0x3c], xmm0
jbe 0x100f7a0b
comiss xmm1, xmm4
jbe 0x100f7a0b
comiss xmm3, dword [ebp - 0x60]
jbe 0x100f7a0b
movss xmm0, dword [ebp - 0x68]
comiss xmm0, xmm5
jbe 0x100f7a0b
push 0xf
push ecx
mov dword [esp], 0
lea eax, [ebp - 0x40]
push edi
push eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0x284]
call fcn.100aad30
movss xmm0, dword [ebp - 0x94]
movss xmm1, dword [ebp - 0x90]
movss xmm6, dword [ebp - 0x1c]
movss xmm7, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0x14]
movss dword [ebp - 0x68], xmm0
movss xmm0, dword [ebp - 0x98]
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [ebp - 0x9c]
movss dword [ebp - 0x50], xmm1
movss dword [ebp - 0x60], xmm0
xorps xmm4, xmm4
movss xmm5, dword [ebp - 0x54]
subss xmm5, xmm7
addss xmm6, dword [ebx + 0x18c4]
movss dword [ebp - 0x1c], xmm6
cmp esi, ecx
jb 0x100f7850
mov edi, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x24]
mov eax, edx
mov esi, dword [ebp + 0x10]
sub eax, esi
cmp eax, 0x200000
jge 0x100f7b7c
mov eax, dword [0x10309a38]
movss xmm3, dword [0x1025805c]
movups xmm0, xmmword [eax + 0x15c0]
comiss xmm4, xmm0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xff
mulss xmm1, dword [eax + 0x1510]
movups xmmword [ebp - 0x78], xmm0
jbe 0x100f7a75
movaps xmm0, xmm4
jmp 0x100f7a79
minss xmm0, xmm3
movss xmm2, dword [0x102582c4]
movss xmm5, dword [0x10257ff4]
mulss xmm0, xmm2
addss xmm0, xmm5
cvttss2si ecx, xmm0
movss xmm0, dword [ebp - 0x74]
shl ecx, 0x10
comiss xmm4, xmm0
jbe 0x100f7aa7
movaps xmm0, xmm4
jmp 0x100f7aab
minss xmm0, xmm3
mulss xmm0, xmm2
addss xmm0, xmm5
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x70]
shl eax, 8
or ecx, eax
comiss xmm4, xmm0
jbe 0x100f7acb
movaps xmm0, xmm4
jmp 0x100f7acf
minss xmm0, xmm3
mulss xmm0, xmm2
addss xmm0, xmm5
cvttss2si eax, xmm0
or ecx, eax
comiss xmm4, xmm1
jbe 0x100f7ae7
movaps xmm1, xmm4
jmp 0x100f7aeb
minss xmm1, xmm3
movss xmm0, dword [ebp - 0x54]
lea eax, [ebp - 0x9c]
mulss xmm1, xmm2
subss xmm0, xmm7
push eax
movss xmm2, dword [ebx + 0x18c4]
push ecx
addss xmm1, xmm5
mov dword [esp], 0
push edx
push esi
mov esi, dword [ebp - 0x34]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x10]
cvttss2si eax, xmm1
movss dword [ebp - 0x3c], xmm0
shl eax, 0x18
or eax, ecx
mov ecx, dword [esi + 0x284]
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebx + 0x18c0]
call fcn.100ab240
movss xmm0, dword [ebp - 0x90]
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [ebp - 0x94]
movss dword [ebp - 0x68], xmm0
movss xmm0, dword [ebp - 0x98]
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [ebp - 0x9c]
movss dword [ebp - 0x60], xmm0
jmp 0x100f7b7f
mov esi, dword [ebp - 0x34]
cmp byte [ebp - 5], 0
je 0x100f7d78
movss xmm0, dword [ebx + 0x18]
addss xmm0, dword [edi + 0xe60]
movss dword [edi + 0xe60], xmm0
cmp byte [ebx + 0xb2], 0
movss dword [ebp + 0x14], xmm0
je 0x100f7bd7
xorps xmm1, xmm1
comiss xmm1, xmm0
jae 0x100f7bd7
fld dword [ebp + 0x14]
fld dword [0x10258068]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
movss xmm0, dword [0x1025802c]
fstp dword [ebp + 0x14]
comiss xmm0, dword [ebp + 0x14]
jae 0x100f7bd7
xor al, al
jmp 0x100f7bd9
mov al, 1
movss xmm5, dword [ebp - 0x20]
movss xmm3, dword [ebp - 0x28]
movss xmm7, dword [0x10257ff4]
movss xmm6, dword [0x1025805c]
addss xmm5, dword [ebp - 0x10]
addss xmm3, dword [ebp - 0x54]
movss dword [ebp - 0x20], xmm5
movaps xmm0, xmm5
movaps xmm2, xmm5
subss xmm3, dword [ebp - 0x2c]
subss xmm0, dword [ebx + 0x18c4]
subss xmm2, dword [0x10258074]
movss dword [ebp - 0x28], xmm3
movaps xmm1, xmm3
movss dword [ebp - 0x78], xmm3
addss xmm0, xmm7
movss dword [ebp - 0x6c], xmm2
addss xmm1, xmm6
movss dword [ebp - 0x74], xmm0
movss dword [ebp - 0x70], xmm1
test al, al
je 0x100f7d5c
comiss xmm2, dword [ebp - 0x18]
jbe 0x100f7d5c
movss xmm4, dword [ebp - 0x50]
comiss xmm4, xmm0
jbe 0x100f7d5c
comiss xmm1, dword [ebp - 0x60]
jbe 0x100f7d5c
movss xmm0, dword [ebp - 0x68]
comiss xmm0, xmm3
jbe 0x100f7d5c
mov eax, dword [0x10309a38]
xorps xmm4, xmm4
movups xmm1, xmmword [eax + 0x15c0]
comiss xmm4, xmm1
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xff
mulss xmm0, dword [eax + 0x1510]
movups xmmword [ebp - 0x48], xmm1
jbe 0x100f7ca5
xorps xmm1, xmm1
jmp 0x100f7ca9
minss xmm1, xmm6
movss xmm5, dword [0x102582c4]
mulss xmm1, xmm5
addss xmm1, xmm7
cvttss2si ecx, xmm1
movss xmm1, dword [ebp - 0x44]
shl ecx, 0x10
comiss xmm4, xmm1
jbe 0x100f7ccf
xorps xmm1, xmm1
jmp 0x100f7cd3
minss xmm1, xmm6
mulss xmm1, xmm5
addss xmm1, xmm7
cvttss2si eax, xmm1
movss xmm1, dword [ebp - 0x40]
shl eax, 8
or ecx, eax
comiss xmm4, xmm1
jbe 0x100f7cf3
xorps xmm1, xmm1
jmp 0x100f7cf7
minss xmm1, xmm6
mulss xmm1, xmm5
addss xmm1, xmm7
cvttss2si eax, xmm1
or ecx, eax
comiss xmm4, xmm0
jbe 0x100f7d0f
xorps xmm0, xmm0
jmp 0x100f7d13
minss xmm0, xmm6
mulss xmm0, xmm5
push ecx
mov dword [esp], 0x3f800000
movss dword [ebp - 0x40], xmm3
addss xmm0, xmm7
movss dword [ebp - 0x3c], xmm2
cvttss2si eax, xmm0
shl eax, 0x18
or eax, ecx
mov ecx, dword [esi + 0x284]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.100aaa10
movss xmm3, dword [ebp - 0x28]
movss xmm5, dword [ebp - 0x20]
movss xmm6, dword [0x1025805c]
subss xmm5, dword [ebx + 0x18c4]
subss xmm3, xmm6
movss dword [ebx + 0x2d28], xmm5
movss dword [ebx + 0x2d24], xmm3
mov edi, dword [ebp + 8]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x100f7d82
xor edx, edx
test ecx, ecx
je 0x100f7da1
nop
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100f7d90
lea eax, [ebp + 0x14]
mov dword [ebp + 0x14], esi
push eax
mov ecx, 0x10b0c610
call fcn.100ec5f0
movss xmm3, dword [ebp - 0x88]
lea ecx, [ebp - 0x78]
movss xmm2, dword [ebp - 0x8c]
mov esi, eax
mov eax, dword [ebp + 0x18]
movaps xmm1, xmm3
mov edx, dword [ebp - 0x38]
movaps xmm0, xmm2
movss dword [ebp - 0x78], xmm3
movss dword [ebp - 0x74], xmm2
addss xmm1, dword [eax]
addss xmm0, dword [eax + 4]
movss dword [ebp - 0x70], xmm1
movss dword [ebp - 0x6c], xmm0
call fcn.100930e0
mov ecx, dword [0x1031b004]
add esi, 4
add ecx, 0xe57b4e31
movzx eax, al
xor ecx, 0x147cb0fe
movss xmm0, dword [esi]
movd xmm1, eax
movss xmm2, dword [ecx + 4]
mulss xmm2, dword [0x10258118]
cvtdq2ps xmm1, xmm1
call fcn.10028e10
movss xmm6, dword [0x1025805c]
lea ecx, [ebp + 8]
xorps xmm4, xmm4
movss dword [esi], xmm0
comiss xmm0, xmm4
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], 0x3f800000
mov dword [ebp + 8], 0
mov bl, 0xd9
movss xmm5, dword [0x102582c4]
movss xmm7, dword [0x10257ff4]
cmovae ecx, esi
comiss xmm6, xmm0
cmovae eax, ecx
lea ecx, [ebp + 0x14]
movss xmm1, dword [eax]
movss dword [esi], xmm1
movaps xmm0, xmm1
mulss xmm1, dword [0x102581b0]
mov dword [ebp - 0x3c], 0xff
mulss xmm0, dword [0x102583e0]
mov dword [ebp + 0x14], 0
addss xmm1, dword [0x10258178]
cvttss2si eax, xmm0
mulss xmm1, dword [ebp - 0x84]
sub bl, al
lea eax, [ebp + 8]
cvttss2si edx, xmm1
test edx, edx
mov dword [ebp + 8], edx
cmovns ecx, eax
cmp edx, 0xff
lea eax, [ebp - 0x3c]
cmovle eax, ecx
mov cl, byte [eax]
movzx eax, bl
movd xmm2, eax
movzx eax, cl
cvtdq2ps xmm2, xmm2
movd xmm3, eax
mulss xmm2, dword [0x10257f14]
cvtdq2ps xmm3, xmm3
comiss xmm4, xmm2
mulss xmm3, dword [0x10257f14]
jbe 0x100f7efa
xor ecx, ecx
xorps xmm2, xmm2
jmp 0x100f7f2c
movaps xmm0, xmm2
movaps xmm1, xmm2
minss xmm0, xmm6
minss xmm1, xmm6
minss xmm2, xmm6
mulss xmm0, xmm5
mulss xmm1, xmm5
addss xmm0, xmm7
addss xmm1, xmm7
cvttss2si ecx, xmm0
cvttss2si eax, xmm1
shl ecx, 8
or ecx, eax
shl ecx, 8
mulss xmm2, xmm5
addss xmm2, xmm7
cvttss2si eax, xmm2
or ecx, eax
comiss xmm4, xmm3
jbe 0x100f7f44
xorps xmm3, xmm3
jmp 0x100f7f48
minss xmm3, xmm6
mov eax, dword [ebp + 0x18]
movss xmm0, dword [ebp - 0x88]
mulss xmm3, xmm5
push 0xf
addss xmm0, dword [eax]
push ecx
addss xmm3, xmm7
mov dword [esp], 0x40800000
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x8c]
addss xmm0, dword [eax + 4]
cvttss2si eax, xmm3
movss dword [ebp - 0x3c], xmm0
shl eax, 0x18
or eax, ecx
mov ecx, dword [0x10b0bba4]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xa8]
push eax
call fcn.100aad30
mov eax, dword [ebp - 0x64]
cmp byte [eax + 0x2d60], 0
je 0x100f7fbe
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x5c]
mov edx, dword [ebp + 0x10]
push eax
call fcn.1009f510
add esp, 4
movss xmm0, dword [ebp - 0xa0]
comiss xmm0, dword [0x10257eb8]
jbe 0x100f800d
movss xmm0, dword [ebp - 0x88]
xor edx, edx
addss xmm0, dword [0x1025814c]
mov ecx, edi
movss dword [ebp - 0x5c], xmm0
movss xmm0, dword [ebp - 0x8c]
addss xmm0, dword [0x10258164]
movss dword [ebp - 0x58], xmm0
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push 1
call fcn.10090e90
add esp, 0xc
mov bl, byte [ebp - 6]
mov edi, dword [0x10309a38]
test bl, bl
je 0x100f8030
mov eax, dword [edi + 0x19b0]
mov word [edi + 0x19fb], 0x101
or dword [eax + 0x11c], 4
mov eax, dword [edi + 0x1a9c]
mov edx, dword [edi + 0x1aa4]
lea esi, [eax + eax*4]
mov al, bl
mov ecx, dword [edx + esi*4 - 0x14]
movups xmm0, xmmword [edx + esi*4 - 0x10]
add ecx, 0x15c
add ecx, ecx
movups xmmword [edi + ecx*8], xmm0
dec dword [edi + 0x1a9c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0x20