Function at 0x10090770
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc4
push ebx
mov eax, ecx
push esi
mov esi, dword [0x10223950]
mov dword [ebp - 0xb0], eax
movss xmm1, dword [eax + 0x94]
push edi
mov eax, dword [esi + 0x19b0]
movss dword [ebp - 0x90], xmm1
mov dword [ebp - 0xc], esi
mov byte [eax + 0x8c], 1
mov edi, dword [esi + 0x19b0]
mov dword [ebp - 0x3c], edi
cmp byte [edi + 0x8f], 0
jne 0x10092787
movaps xmm0, xmm1
mov dword [ebp - 0x84], 0x3f800000
mulss xmm0, dword [0x10155c24]
lea eax, [ebp - 0x6c]
push eax
lea ecx, [esi + 0x1a9c]
mov dword [ebp - 0x80], 0x3f800000
mov dword [ebp - 0x7c], 0x3f800000
movss dword [ebp - 0x78], xmm0
movups xmm0, xmmword [esi + 0x15c0]
mov dword [ebp - 0x6c], 0
movups xmmword [ebp - 0x68], xmm0
call fcn.10019920
movups xmm0, xmmword [ebp - 0x84]
xor edx, edx
movups xmmword [esi + 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.10008f40
mov edx, dword [0x10223950]
mov ebx, eax
add esp, 4
mov dword [ebp - 0x18], ebx
cmp dword [edx + 0x19ec], ebx
jne 0x1009084d
mov dword [edx + 0x19f0], ebx
cmp dword [edx + 0x1a20], ebx
jne 0x1009085c
mov byte [edx + 0x1a24], 1
mov eax, dword [ebp + 8]
cmp eax, 0xffffffff
jae 0x100908d2
mov cl, byte [eax]
test cl, cl
je 0x1009087a
cmp cl, 0x23
jne 0x10090874
cmp byte [eax + 1], cl
je 0x1009087a
inc eax
cmp eax, 0xffffffff
jb 0x10090864
mov ecx, dword [ebp + 8]
cmp ecx, eax
je 0x100908d2
movss xmm2, dword [edx + 0x18c4]
push ecx
push eax
push ecx
push ecx
mov ecx, dword [edx + 0x18c0]
lea eax, [ebp - 0x58]
mov dword [esp], 0xbf800000
push eax
call fcn.10026ce0
movss xmm0, dword [ebp - 0x58]
addss xmm0, dword [0x10155c78]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0xb4], xmm0
movss xmm0, dword [ebp - 0x54]
movss dword [ebp - 0xbc], xmm0
jmp 0x100908dd
xorps xmm1, xmm1
movss dword [ebp - 0xb4], xmm1
mov eax, dword [ebp + 0x18]
lea ecx, [ebp - 0x58]
movss xmm1, dword [edi + 0xd8]
movss xmm0, dword [edi + 0xdc]
movss dword [ebp - 0x94], xmm1
movss xmm4, dword [eax]
movss xmm5, dword [eax + 4]
movaps xmm6, xmm4
mulss xmm6, dword [0x10155c24]
movaps xmm2, xmm5
addss xmm2, xmm0
movss dword [ebp - 0xc0], xmm1
movss dword [ebp - 0x98], xmm0
subss xmm6, dword [0x10155d68]
movss dword [ebp - 0xbc], xmm0
subss xmm4, xmm6
addss xmm4, xmm1
movss xmm1, dword [0x10155d50]
subss xmm2, xmm1
addss xmm0, xmm1
subss xmm5, xmm1
movaps xmm3, xmm4
movss dword [ebp - 0x68], xmm4
addss xmm3, xmm6
movss dword [ebp - 0x5c], xmm2
addss xmm2, dword [0x10155d90]
subss xmm6, xmm1
movss dword [ebp - 0x64], xmm0
movss dword [ebp - 0x84], xmm4
movss dword [ebp - 0x80], xmm0
subss xmm3, xmm1
movss dword [ebp - 0x44], xmm5
movss xmm1, dword [esi + 0x154c]
movss dword [ebp - 0x78], xmm2
subss xmm2, xmm0
movss dword [ebp - 0x74], xmm6
movss dword [ebp - 0x60], xmm3
movss dword [ebp - 0x7c], xmm3
subss xmm3, xmm4
movss dword [ebp - 0x54], xmm2
movss dword [ebp - 0x58], xmm3
call fcn.1000bf40
lea eax, [ebp - 0x68]
mov edx, ebx
push eax
lea ecx, [ebp - 0x84]
call fcn.1000c070
add esp, 4
test al, al
je 0x10092787
mov edx, ebx
lea ecx, [ebp - 0x68]
call fcn.1000c310
mov bh, al
mov byte [ebp - 4], bh
test bh, bh
je 0x100909f6
mov dword [esi + 0x1d38], 1
mov eax, dword [ebp - 0x18]
add esi, 0x1e08
xor ecx, ecx
mov dword [ebp - 0x50], esi
mov edi, esi
cmp dword [esi], eax
cmovne edi, ecx
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x30], edi
mov eax, dword [ecx + 0x174]
mov edx, dword [ecx + 0x17c]
lea eax, [eax + 1]
mov dword [ecx + 0x174], eax
and edx, 5
jne 0x10090a31
inc dword [ecx + 0x178]
mov ecx, dword [0x10223950]
mov edi, dword [ebp - 0x3c]
cmp dword [ecx + 0x1be4], edi
jne 0x10090a9a
cmp eax, dword [ecx + 0x1bec]
je 0x10090a65
test edx, edx
jne 0x10090a86
mov eax, dword [edi + 0x178]
cmp eax, dword [ecx + 0x1bf0]
jne 0x10090a86
mov eax, dword [ebp - 0x18]
mov dword [ecx + 0x1af0], eax
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0x1be4], edi
jne 0x10090ab7
mov eax, dword [ecx + 0x1bec]
cmp eax, dword [edi + 0x174]
jne 0x10090ab7
mov byte [ebp - 0xe], 1
mov al, 1
jmp 0x10090aa2
mov eax, dword [ebp - 0x18]
cmp dword [ecx + 0x19ec], eax
jne 0x10090a9a
xor edx, edx
xor ecx, ecx
call fcn.1000bda0
mov ecx, dword [ebp - 0xc]
xor al, al
mov byte [ebp - 0xe], al
mov byte [ebp - 0x11], 0
test bh, bh
je 0x10090ac3
cmp byte [ecx + 0x3d8], 0
je 0x10090ac3
mov dl, 1
jmp 0x10090ac5
mov byte [ebp - 0xe], 0
mov al, 1
mov byte [ebp - 0x11], 1
jmp 0x10090aa6
xor dl, dl
mov ecx, dword [ecx + 0x19ec]
mov edi, dword [ebp - 0x30]
mov byte [ebp - 0x10], dl
cmp ecx, dword [ebp - 0x18]
je 0x10090b15
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 0x18]
cmp dword [edi + 0x1aec], esi
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x50]
je 0x10090b0d
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 0x18]
cmp dword [edi + 0x1ae0], esi
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x50]
jne 0x10090b15
mov edi, dword [ebp - 0xc]
cmp dword [edi + 0x1b00], 3
mov edi, dword [ebp - 0x30]
jne 0x10090b15
mov byte [ebp - 0x28], 1
mov bl, 1
jmp 0x10090b1b
mov byte [ebp - 0x28], 0
xor bl, bl
mov byte [ebp - 5], bl
mov dword [ebp - 0x50], 1
test al, al
jne 0x10090b35
test dl, dl
jne 0x10090b35
test bl, bl
je 0x10090d2d
mov bl, 1
mov dword [ebp - 0x30], edi
mov byte [ebp - 0xd], bl
cmp ecx, dword [ebp - 0x18]
je 0x10090d2d
mov ecx, dword [ebp + 0x10]
mov edi, esi
mov dword [ebp - 0x30], edi
mov dword [edi + 0xe60], 0xbe99999a
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10090b60
mov ebx, dword [edi + 0x28]
lea eax, [edi + 0x24]
sub ecx, edx
lea esi, [ecx + 1]
cmp esi, ebx
jle 0x10090b9f
test ebx, ebx
je 0x10090b87
mov eax, ebx
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, ebx
jmp 0x10090b8c
mov ecx, 8
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
lea ecx, [edi + 0x24]
push eax
call fcn.10019ce0
lea eax, [edi + 0x24]
push esi
push dword [ebp + 0x10]
mov dword [eax], esi
push dword [edi + 0x2c]
call sub.VCRUNTIME140.dll_memcpy
mov ebx, dword [ebp + 0x14]
lea eax, [edi + 0xc]
mov esi, dword [eax + 4]
inc ebx
add esp, 0xc
cmp ebx, esi
jle 0x10090be7
test esi, esi
je 0x10090bcf
mov eax, esi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, esi
jmp 0x10090bd4
mov ecx, 8
cmp ecx, ebx
mov eax, ebx
cmovg eax, ecx
lea ecx, [edi + 0xc]
push eax
call fcn.10019d60
lea eax, [edi + 0xc]
mov dword [eax], ebx
mov ecx, dword [edi + 0x1c]
test ecx, ecx
jns 0x10090c09
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.10019ce0
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
dec eax
mov dword [edi + 0x18], 0
mov ebx, edx
mov ecx, dword [edi + 0x14]
mov esi, ecx
mov byte [edi + 0x30], 0
mov dword [ebp - 0x24], ecx
lea eax, [ecx + eax*2]
cmp ecx, eax
jae 0x10090c70
nop dword [eax]
cmp byte [ebx], 0
je 0x10090c6d
push 0
mov edx, ebx
lea ecx, [ebp - 0x38]
call fcn.10009280
add ebx, eax
add esp, 4
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x10090c6a
cmp eax, 0xffff
ja 0x10090c5a
mov word [esi], ax
add esi, 2
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x24]
dec eax
lea eax, [ecx + eax*2]
cmp esi, eax
jb 0x10090c30
jmp 0x10090c6d
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp + 0x10]
xor eax, eax
sub ebx, edx
mov word [esi], ax
sub esi, ecx
mov eax, dword [ebp - 0x18]
sar esi, 1
mov dword [edi + 4], esi
mov dword [edi + 8], ebx
cmp dword [edi], eax
jne 0x10090cac
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
mov dword [edi + 0x40], ecx
cmovl esi, dword [edi + 0x44]
mov dword [edi + 0x44], esi
jmp 0x10090d0b
mov edx, dword [ebp - 0x28]
cmp byte [ebp - 0xe], 0
movzx edx, dl
cmovne edx, dword [ebp - 0x50]
mov dword [edi], eax
mov dword [edi + 0x38], 0
mov dword [edi + 0xe52], 0x630000
mov dword [edi + 0xe58], 0
mov dword [edi + 0xe5c], 0x3e7
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x48], 0x10000
mov dword [edi + 0x50], 0
mov byte [edi + 0x4c], 1
mov dword [ebp - 0x28], edx
cmp byte [ebp - 0x11], 0
jne 0x10090d23
cmp byte [ebp - 0x10], 0
je 0x10090d27
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x100], 0
je 0x10090d27
mov byte [ebp - 0x28], 1
mov bl, byte [ebp - 0xd]
mov bh, byte [ebp - 4]
mov edx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x18]
mov eax, dword [edx + 0x19ec]
cmp eax, esi
je 0x10090d84
test bl, bl
je 0x10090d84
mov edx, dword [ebp - 0x3c]
mov ecx, esi
call fcn.1000bda0
call fcn.1000be80
mov ecx, edx
call fcn.10013b70
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x1a0c]
or dword [edx + 0x1a00], 3
or dword [edx + 0x1a04], 2
or dword [edx + 0x1a08], 0x180
mov dword [edx + 0x1a0c], eax
mov eax, dword [edx + 0x19ec]
mov ecx, eax
cmp eax, esi
jne 0x10090dc5
test edi, edi
jne 0x10090da6
xor edx, edx
xor ecx, ecx
call fcn.1000bda0
mov edx, dword [ebp - 0xc]
mov ecx, dword [edx + 0x19ec]
mov eax, ecx
cmp eax, esi
jne 0x10090dc5
cmp byte [edx + 0x3d8], 0
mov byte [ebp - 0x20], 0
je 0x10090dc1
xor al, al
test bl, bl
movzx eax, al
cmove eax, dword [ebp - 0x50]
mov dword [ebp - 0x20], eax
mov bl, 1
jmp 0x10090dca
xor bl, bl
mov byte [ebp - 0x20], bl
mov byte [ebp - 4], bl
test edi, edi
je 0x10090de3
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
je 0x10090de3
test bl, bl
je 0x10090de7
mov byte [ebp - 3], 1
jmp 0x10090df7
test bl, bl
jne 0x10090def
mov byte [ebp - 3], 0
cmp ecx, esi
jne 0x10090e01
mov byte [ebp - 3], 0
test edi, edi
je 0x10090e01
cmp byte [edi + 0x30], 0
mov byte [ebp - 0x2a], 1
jne 0x10090e05
mov byte [ebp - 0x2a], 0
movss xmm0, dword [ebp - 0x68]
movss dword [ebp - 0x70], xmm0
cmp ecx, esi
jne 0x100910e0
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
mov cl, byte [edx + 0xf0]
movss xmm2, dword [edx + 0x18c4]
test cl, cl
mulss xmm2, dword [0x10155c24]
sete al
mov dword [edx + 0x2f84], 1
cmp byte [ebp - 0x28], 0
mov byte [edx + 0x19f9], al
movss xmm5, dword [edx + 0xe8]
mov bl, byte [edx + 0xb1]
subss xmm5, xmm0
subss xmm5, dword [edx + 0x1548]
addss xmm5, dword [edi + 0x38]
jne 0x10090fe5
test bh, bh
je 0x10090ea5
mov al, byte [edx + 0x3e2]
test bl, bl
jne 0x10090f0d
test al, al
jne 0x10090fe5
cmp byte [edx + 0x3d8], 0
mov al, byte [edi + 0xe65]
je 0x10090f5f
test al, al
jne 0x10090f5f
test bh, bh
je 0x10091000
cmp byte [edi + 0x4c], al
je 0x10090ee4
push 0
mov edx, edi
lea ecx, [ebp - 0x8c]
call fcn.1002a830
movss xmm2, dword [ebp - 0x80]
add esp, 4
movaps xmm1, xmm5
mov ecx, edi
call fcn.1002ab30
mov edx, dword [ebp - 0xc]
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 0x10091000
test al, al
je 0x10090ea5
push 0x20000c
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.1002af10
add esp, 4
mov byte [edi + 0xe64], 1
lea edx, [edi + 0x3c]
mov dword [edi + 0xe60], 0xbe99999a
mov ecx, edi
push 0x60000d
call fcn.1002af10
mov edx, dword [ebp - 0xc]
add esp, 4
mov byte [edi + 0xe64], 1
mov dword [edi + 0xe60], 0xbe99999a
jmp 0x10091000
test cl, cl
je 0x10091000
test al, al
jne 0x10091000
movss xmm0, dword [edx + 0x378]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10090f94
movss xmm0, dword [edx + 0x37c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10091000
cmp byte [edi + 0x4c], 0
je 0x10090fb1
push 0
mov edx, edi
lea ecx, [ebp - 0x8c]
call fcn.1002a830
movss xmm2, dword [ebp - 0x80]
add esp, 4
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
jne 0x10090fbf
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x40], eax
movaps xmm1, xmm5
mov ecx, edi
call fcn.1002ab30
mov edx, dword [ebp - 0xc]
mov dword [edi + 0x44], eax
mov dword [edi + 0x3c], eax
mov dword [edi + 0xe60], 0xbe99999a
mov byte [edi + 0xe64], 1
jmp 0x10091000
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
cmp byte [edi + 0xe65], 0
je 0x10091019
cmp byte [edx + 0xf0], 0
jne 0x10091019
mov byte [edi + 0xe65], 0
cmp byte [edx + 0x100], 0
je 0x1009102b
cmp byte [edx + 0x102], 0
je 0x10091038
test bl, bl
je 0x1009103c
cmp byte [edx + 0x103], 0
je 0x1009103c
mov al, 1
jmp 0x1009103e
xor al, al
cmp dword [edx + 0x1500], 0
lea ebx, [edx + 0x1500]
jle 0x100910e0
test al, al
jne 0x100910b8
cmp byte [ebp - 5], al
jne 0x100910b8
xor esi, esi
nop dword [eax]
mov eax, dword [edx + 0x1508]
movzx eax, word [eax + esi*2]
mov dword [ebp - 0x24], eax
cmp eax, 9
jne 0x1009107b
cmp byte [edx + 0x101], 0
jne 0x100910b3
sub esp, 8
lea ecx, [ebp - 0x24]
xor edx, edx
call fcn.1002fdc0
add esp, 8
test al, al
je 0x100910b0
push dword [ebp - 0x24]
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.1002af10
add esp, 4
mov byte [edi + 0xe64], 1
mov dword [edi + 0xe60], 0xbe99999a
mov edx, dword [ebp - 0xc]
inc esi
cmp esi, dword [ebx]
jl 0x10091060
mov ecx, dword [ebx + 4]
test ecx, ecx
jns 0x100910d7
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
mov ecx, ebx
call fcn.10019d60
mov edx, dword [ebp - 0xc]
mov dword [ebx], 0
mov eax, dword [edx + 0x19ec]
xor cl, cl
mov byte [ebp - 2], cl
mov byte [ebp - 1], cl
cmp eax, dword [ebp - 0x18]
jne 0x100917e0
mov byte [ebp - 1], cl
cmp byte [edx + 0x19f8], cl
jne 0x1009182d
mov byte [ebp - 1], cl
cmp byte [ebp - 0x20], cl
jne 0x1009182d
mov dl, byte [edx + 0x101]
xor esi, esi
test dl, dl
mov eax, 0x400000
cmovne esi, eax
mov eax, dword [ebp - 0xc]
mov ch, byte [eax + 0xb1]
mov bl, byte [eax + 0x100]
mov byte [ebp - 0x45], ch
mov byte [ebp - 0xe], bl
test ch, ch
je 0x1009115d
cmp byte [eax + 0x103], cl
je 0x10091150
test bl, bl
jne 0x10091150
mov eax, 1
jmp 0x10091154
xor eax, eax
mov cl, bl
test eax, eax
je 0x1009117f
mov eax, dword [ebp - 0xc]
jmp 0x1009116c
test bl, bl
je 0x1009117d
cmp byte [eax + 0x103], 0
jne 0x1009117d
mov cl, bl
cmp byte [eax + 0x102], 0
jne 0x1009117f
test dl, dl
jne 0x1009117f
mov ah, 1
jmp 0x10091181
mov cl, bl
xor ah, ah
mov byte [ebp - 1], ah
mov al, cl
test ch, ch
je 0x100911b6
mov edi, dword [ebp - 0xc]
cmp byte [edi + 0x103], 0
mov edi, dword [ebp - 0x30]
je 0x100911b6
test dl, dl
je 0x100911b6
mov al, bl
test bl, bl
mov ebx, dword [ebp - 0xc]
jne 0x100911b9
xor al, al
cmp byte [ebx + 0x102], al
jne 0x100911b9
mov byte [ebp - 5], 1
jmp 0x100911c1
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 5], 0
test ch, ch
je 0x1009123c
cmp byte [ebx + 0x103], 0
mov cl, byte [ebx + 0x102]
mov byte [ebp - 0xd], cl
je 0x10091243
test al, al
jne 0x10091243
test cl, cl
jne 0x10091243
mov byte [ebp - 0x10], 1
mov byte [ebp - 0x12], 0
test dl, dl
je 0x100911ff
test al, al
jne 0x100911ff
cmp byte [ebx + 0x102], al
jne 0x100911ff
mov byte [ebp - 0xf], 1
cmp byte [ebx + 0x103], al
je 0x10091203
mov byte [ebp - 0xf], 0
mov ebx, dword [0x10223950]
test ah, ah
je 0x10091220
mov ecx, dword [ebx + 0x80]
test ecx, ecx
js 0x10091220
call fcn.1000e8a0
test al, al
jne 0x10091236
cmp byte [ebp - 0xf], 0
je 0x10091265
mov ecx, dword [ebx + 0x5c]
test ecx, ecx
js 0x10091265
call fcn.1000e8a0
test al, al
je 0x10091265
mov byte [ebp - 0x11], 1
jmp 0x10091269
mov byte [ebp - 0xd], al
mov byte [ebp - 5], 0
mov byte [ebp - 0x10], 0
test al, al
je 0x100911df
test dl, dl
jne 0x100911df
cmp byte [ebx + 0x102], dl
jne 0x100911df
cmp byte [ebx + 0x103], dl
jne 0x100911df
mov byte [ebp - 0x12], 1
jmp 0x100911ff
mov byte [ebp - 0x11], 0
cmp byte [ebp - 1], 0
je 0x1009127f
mov ecx, dword [ebx + 0x78]
test ecx, ecx
js 0x1009127f
call fcn.1000e8a0
test al, al
jne 0x10091295
cmp byte [ebp - 0x12], 0
je 0x1009129b
mov ecx, dword [ebx + 0x58]
test ecx, ecx
js 0x1009129b
call fcn.1000e8a0
test al, al
je 0x1009129b
mov byte [ebp - 0x29], 1
jmp 0x1009129f
mov byte [ebp - 0x29], 0
cmp byte [ebp - 1], 0
je 0x100912b5
mov ecx, dword [ebx + 0x7c]
test ecx, ecx
js 0x100912b5
call fcn.1000e8a0
test al, al
jne 0x100912cb
cmp byte [ebp - 0xf], 0
je 0x100912d1
mov ecx, dword [ebx + 0x58]
test ecx, ecx
js 0x100912d1
call fcn.1000e8a0
test al, al
je 0x100912d1
mov byte [ebp - 0xf], 1
jmp 0x100912d5
mov byte [ebp - 0xf], 0
mov al, byte [ebp - 1]
test al, al
je 0x100912f8
mov ecx, dword [ebx + 0x88]
test ecx, ecx
js 0x100912f8
call fcn.1000e8a0
test al, al
je 0x100912f5
mov byte [ebp - 0x12], 1
jmp 0x10091300
mov al, byte [ebp - 1]
mov byte [ebp - 0x12], 0
test al, al
je 0x10091313
mov ecx, dword [ebx + 0x84]
test ecx, ecx
js 0x10091313
call fcn.1000e8a0
test al, al
jne 0x1009132c
cmp byte [ebp - 5], 0
je 0x10091332
mov ecx, dword [ebx + 0x88]
test ecx, ecx
js 0x10091332
call fcn.1000e8a0
test al, al
je 0x10091332
mov byte [ebp - 5], 1
jmp 0x10091336
mov byte [ebp - 5], 0
mov ecx, dword [ebx + 0x38]
test ecx, ecx
js 0x10091386
call fcn.1000e8a0
test al, al
je 0x10091386
cmp byte [ebp - 0x10], 0
je 0x10091363
mov eax, 0x200004
lea edx, [edi + 0x3c]
or esi, eax
mov ecx, edi
push esi
call fcn.1002af10
jmp 0x100917a5
cmp byte [ebp - 0xd], 0
lea edx, [edi + 0x3c]
mov ecx, 0x20000c
mov eax, 0x200000
cmovne eax, ecx
mov ecx, edi
or esi, eax
push esi
call fcn.1002af10
jmp 0x100917a5
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
js 0x100913d6
call fcn.1000e8a0
test al, al
je 0x100913d6
cmp byte [ebp - 0x10], 0
je 0x100913b3
mov eax, 0x200005
lea edx, [edi + 0x3c]
or esi, eax
mov ecx, edi
push esi
call fcn.1002af10
jmp 0x100917a5
cmp byte [ebp - 0xd], 0
lea edx, [edi + 0x3c]
mov ecx, 0x20000d
mov eax, 0x200001
cmovne eax, ecx
mov ecx, edi
or esi, eax
push esi
call fcn.1002af10
jmp 0x100917a5
mov ecx, dword [ebx + 0x50]
test ecx, ecx
js 0x1009140a
call fcn.1000e8a0
test al, al
je 0x1009140a
mov eax, esi
lea edx, [edi + 0x3c]
or eax, 0x200006
or esi, 0x200004
cmp byte [ebp - 0xe], 0
mov ecx, edi
cmovne esi, eax
push esi
call fcn.1002af10
jmp 0x100917a5
mov ecx, dword [ebx + 0x54]
test ecx, ecx
js 0x1009143e
call fcn.1000e8a0
test al, al
je 0x1009143e
mov eax, esi
lea edx, [edi + 0x3c]
or eax, 0x200007
or esi, 0x200005
cmp byte [ebp - 0xe], 0
mov ecx, edi
cmovne esi, eax
push esi
call fcn.1002af10
jmp 0x100917a5
mov ecx, dword [ebx + 0x5c]
test ecx, ecx
js 0x10091464
call fcn.1000e8a0
test al, al
je 0x10091464
or esi, 0x200008
lea edx, [edi + 0x3c]
push esi
mov ecx, edi
call fcn.1002af10
jmp 0x100917a5
mov ecx, dword [ebx + 0x60]
test ecx, ecx
js 0x100914e3
call fcn.1000e8a0
test al, al
je 0x100914e3
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
jne 0x100914cd
cmp byte [ebp - 0xd], 0
je 0x10091489
push 0x60000c
jmp 0x100914af
cmp byte [ebp - 0x45], 0
je 0x100914cd
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x103], 0
je 0x100914cd
cmp byte [eax + 0x102], 0
jne 0x100914cd
cmp byte [ebp - 0xe], 0
jne 0x100914cd
push 0x600004
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.1002af10
mov dword [edi + 0xe60], 0xbe99999a
add esp, 4
mov byte [edi + 0xe64], 1
or esi, 0x200009
lea edx, [edi + 0x3c]
push esi
mov ecx, edi
call fcn.1002af10
jmp 0x100917a5
mov ecx, dword [ebx + 0x68]
test ecx, ecx
js 0x100914f3
call fcn.1000e8a0
test al, al
jne 0x10091503
mov ecx, dword [ebx + 0x70]
test ecx, ecx
js 0x1009150c
call fcn.1000e8a0
test al, al
je 0x1009150c
mov byte [ebp - 0x20], 1
jmp 0x100917b9
mov ecx, dword [ebx + 0x6c]
test ecx, ecx
js 0x1009152a
call fcn.1000e8a0
test al, al
je 0x1009152a
mov cl, 1
mov byte [ebp - 1], 0
mov byte [ebp - 0x20], cl
jmp 0x100917c0
mov al, byte [ebp - 0x12]
test al, al
jne 0x10091786
cmp byte [ebp - 5], al
jne 0x10091786
cmp byte [ebp - 1], al
je 0x1009156c
mov ecx, dword [ebx + 0x74]
test ecx, ecx
js 0x1009156c
call fcn.1000e8a0
test al, al
je 0x1009156c
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 0x100917b2
mov al, byte [ebp - 0x11]
test al, al
jne 0x1009167f
cmp byte [ebp - 0x29], al
jne 0x1009167f
mov byte [ebp - 1], al
cmp byte [ebp - 0xf], al
je 0x100917bd
mov eax, dword [ebx + 0xd0]
test eax, eax
je 0x100915b7
push dword [ebx + 0xd8]
call eax
mov esi, eax
mov byte [ebp - 1], 0
add esp, 4
test esi, esi
je 0x100917bd
mov ebx, dword [0x10223950]
jmp 0x100915bc
mov esi, 0x1014f4a5
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100915c1
sub ecx, edx
test ebx, ebx
je 0x100915d4
inc dword [ebx + 0x374]
push dword [0x10223948]
lea eax, [ecx*2 + 2]
push eax
call fcn.100086c0
xor ebx, ebx
mov dword [ebp - 0x1c], eax
add esp, 8
cmp byte [esi], bl
je 0x10091634
mov edi, eax
push 0
mov edx, esi
lea ecx, [ebp - 0x34]
call fcn.10009280
add esp, 4
add esi, eax
cmp dword [ebp - 0x34], 0
je 0x1009162e
sub esp, 8
lea ecx, [ebp - 0x34]
xor edx, edx
call fcn.1002fdc0
add esp, 8
test al, al
je 0x10091629
mov ax, word [ebp - 0x34]
mov word [edi + ebx*2], ax
inc ebx
cmp byte [esi], 0
jne 0x100915f5
mov edi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov word [eax + ebx*2], cx
test ebx, ebx
jle 0x10091657
push ebx
push eax
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.100905d0
mov eax, dword [ebp - 0x1c]
add esp, 8
mov byte [edi + 0xe64], 1
test eax, eax
je 0x1009166b
mov ecx, dword [0x10223950]
test ecx, ecx
je 0x1009166b
dec dword [ecx + 0x374]
push dword [0x10223948]
push eax
call fcn.100086e0
add esp, 8
jmp 0x100917b9
mov ecx, dword [ebp - 0xc]
mov byte [ebp - 1], 0
cmp dword [ecx + 0xd4], 0
je 0x10091747
mov ecx, dword [edi + 0x44]
mov eax, dword [edi + 0x40]
cmp eax, ecx
je 0x100916ab
mov edx, ecx
mov byte [ebp - 1], 0
cmovge edx, eax
cmovl ecx, eax
jmp 0x100916b3
mov edx, dword [edi + 4]
xor ecx, ecx
mov byte [ebp - 1], cl
mov al, byte [ebp - 3]
mov byte [ebp - 3], al
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x24], edx
lea edx, [eax + edx*2]
lea ecx, [eax + ecx*2]
call fcn.10009550
inc eax
mov dword [ebp - 0x40], eax
test ebx, ebx
je 0x100916db
inc dword [ebx + 0x374]
push dword [0x10223948]
push eax
call fcn.100086c0
mov esi, dword [edi + 0x14]
mov ebx, eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x40]
lea ecx, [esi + ecx*2]
push ecx
mov ecx, dword [ebp - 0x38]
lea ecx, [esi + ecx*2]
push ecx
mov ecx, ebx
call fcn.10009420
mov eax, dword [0x10223950]
add esp, 0x10
mov ecx, dword [eax + 0xd4]
test ecx, ecx
je 0x10091727
push ebx
push dword [eax + 0xd8]
call ecx
mov eax, dword [0x10223950]
add esp, 8
test ebx, ebx
je 0x10091735
test eax, eax
je 0x10091735
dec dword [eax + 0x374]
push dword [0x10223948]
push ebx
call fcn.100086e0
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x100917bd
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
jne 0x10091767
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 0x100917bd
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.10090540
mov byte [edi + 0x4b], 0
jmp 0x100917bd
movzx eax, al
lea edx, [edi + 0x3c]
xor eax, 1
mov ecx, edi
add eax, 0x20000a
push eax
call fcn.1002af10
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 byte [ebp - 1], 0
mov cl, byte [ebp - 2]
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
je 0x100917d2
cmp byte [ebp - 4], 0
je 0x100917d2
mov al, 1
jmp 0x100917d4
xor al, al
or byte [ebp - 3], al
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x19ec]
mov edx, dword [ebp - 0x18]
cmp eax, edx
jne 0x1009190e
test cl, cl
je 0x1009182d
mov esi, dword [edi + 0x2c]
mov ecx, esi
mov eax, dword [ebp + 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10091817
test dl, dl
je 0x10091813
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10091817
add eax, 2
add ecx, 2
test dl, dl
jne 0x100917f7
xor eax, eax
jmp 0x1009181c
sbb eax, eax
or eax, 1
test eax, eax
je 0x100918ed
mov eax, dword [edi + 0x24]
dec eax
jmp 0x100918bc
mov eax, dword [edi + 0xc]
lea ecx, [edi + 0x18]
mov byte [edi + 0x30], 1
mov ebx, dword [ecx + 4]
lea esi, [eax*4 + 1]
cmp esi, ebx
jle 0x1009186e
test ebx, ebx
je 0x10091856
mov eax, ebx
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, ebx
jmp 0x1009185b
mov ecx, 8
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
lea ecx, [edi + 0x18]
push eax
call fcn.10019ce0
lea ecx, [edi + 0x18]
mov dword [ecx], esi
mov edx, esi
mov ecx, dword [edi + 0x20]
push 0
push dword [edi + 0x14]
call fcn.10009420
mov esi, dword [edi + 0x20]
add esp, 8
mov ecx, dword [ebp + 0x10]
mov eax, esi
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100918b0
test dl, dl
je 0x100918ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100918b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10091890
xor eax, eax
jmp 0x100918b5
sbb eax, eax
or eax, 1
test eax, eax
je 0x100918ed
mov eax, dword [edi + 8]
test esi, esi
je 0x100918ed
mov ebx, dword [ebp + 0x14]
inc eax
cmp eax, ebx
cmovl ebx, eax
cmp ebx, 1
jb 0x100918e9
jbe 0x100918e1
lea eax, [ebx - 1]
push eax
push esi
push dword [ebp + 0x10]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov byte [ebx + eax - 1], 0
mov byte [ebp - 1], 1
mov edx, dword [ebp - 0x18]
mov dword [edi + 0xe68], 0
mov dword [edi + 0xe6c], 0
mov dword [edi + 0xe70], 0
cmp byte [ebp - 0x20], 0
je 0x10091928
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x19ec], edx
jne 0x10091928
xor edx, edx
xor ecx, ecx
call fcn.1000bda0
mov esi, dword [ebp + 8]
xor ecx, ecx
mov bl, byte [esi]
test bl, bl
je 0x10091947
inc ecx
mov edx, ecx
cmp byte [ecx + esi], 0
jne 0x10091933
mov al, bl
sub al, 0x41
cmp al, 0x19
ja 0x10091947
add bl, 0x20
test ecx, ecx
jne 0x10091952
mov esi, 0x84222325
jmp 0x1009196d
push ecx
lea eax, [ecx - 1]
movsx ecx, bl
push eax
lea edx, [esi + 1]
xor ecx, 0x8601b7df
call fcn.1005b3a0
add esp, 8
mov esi, eax
xor ecx, ecx
nop
mov edx, ecx
inc ecx
cmp byte [ecx + str.frame], 0
jne 0x10091970
test ecx, ecx
jne 0x10091987
mov eax, 0x84222325
jmp 0x1009199b
push ecx
push edx
mov edx, 0x10155281
mov ecx, 0x8601b7b9
call fcn.1005b3a0
add esp, 8
add eax, esi
mov esi, dword [ebp - 0xb0]
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0xb8]
push eax
lea ecx, [esi + 0x40]
call fcn.10086c10
cmp byte [ebp - 4], 0
mov edx, eax
mov bl, byte [ebp - 3]
jne 0x100919d4
test bl, bl
jne 0x100919d4
movss xmm6, dword [0x10155c80]
xorps xmm1, xmm1
jmp 0x100919df
movss xmm6, dword [0x10155c80]
movaps xmm1, xmm6
movss xmm2, dword [0x102231c0]
xorps xmm5, xmm5
mulss xmm2, dword [0x10155d30]
movss xmm0, dword [edx + 4]
call fcn.10083fc0
movaps xmm1, xmm0
comiss xmm1, xmm6
jbe 0x10091a09
movaps xmm1, xmm6
jmp 0x10091a11
comiss xmm5, xmm1
jbe 0x10091a11
xorps xmm1, xmm1
movaps xmm0, xmm1
movss dword [edx + 4], xmm1
mulss xmm0, dword [0x10155dc8]
mulss xmm1, dword [0x10155dd8]
addss xmm0, dword [0x10155e50]
cvttss2si edx, xmm1
mulss xmm0, dword [ebp - 0x90]
cvttss2si eax, xmm0
cmp eax, 0xff
jle 0x10091a4d
or cl, 0xff
jmp 0x10091a5d
test eax, eax
movzx ecx, al
mov dword [ebp + 0x14], 0
cmovs ecx, dword [ebp + 0x14]
movss xmm4, dword [0x10155eec]
movss xmm7, dword [0x10155c24]
movzx eax, dl
movd xmm1, eax
movzx eax, cl
cvtdq2ps xmm1, xmm1
movd xmm3, eax
mulss xmm1, dword [0x10155b60]
cvtdq2ps xmm3, xmm3
comiss xmm5, xmm1
mulss xmm3, dword [0x10155b60]
jbe 0x10091a9d
xorps xmm2, xmm2
xor ecx, ecx
jmp 0x10091ad2
movaps xmm0, xmm1
mov byte [ebp - 3], bl
movaps xmm2, xmm1
minss xmm0, xmm6
minss xmm1, xmm6
minss xmm2, xmm6
mulss xmm0, xmm4
mulss xmm1, xmm4
addss xmm0, xmm7
addss xmm1, xmm7
cvttss2si ecx, xmm0
cvttss2si eax, xmm1
shl ecx, 8
or ecx, eax
shl ecx, 8
mulss xmm2, xmm4
addss xmm2, xmm7
cvttss2si eax, xmm2
or ecx, eax
comiss xmm5, xmm3
jbe 0x10091aea
xorps xmm3, xmm3
jmp 0x10091aee
minss xmm3, xmm6
mulss xmm3, xmm4
push 0xf
push ecx
mov dword [esp], 0x40800000
addss xmm3, xmm7
cvttss2si eax, xmm3
shl eax, 0x18
or eax, ecx
mov ecx, dword [esi + 4]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.10023720
cmp byte [ebp - 0x2a], 0
movss xmm2, dword [ebp - 0x68]
movss xmm1, dword [ebp - 0x74]
movss xmm0, dword [ebp - 0x64]
addss xmm1, xmm2
movaps xmm7, xmm0
movss dword [ebp - 0x20], xmm0
addss xmm7, dword [ebp - 0x44]
movss dword [ebp - 0xa8], xmm0
addss xmm0, dword [0x10155d40]
movss dword [ebp - 0x34], xmm1
movss dword [ebp - 0xa4], xmm1
movaps xmm1, xmm2
addss xmm1, dword [0x10155d54]
movss dword [ebp - 0xac], xmm2
movss dword [ebp - 0x38], xmm7
movss dword [ebp - 0xa0], xmm7
movss dword [ebp - 0x28], xmm0
movss dword [ebp - 0x4c], xmm1
movss dword [ebp - 0x58], xmm1
movss dword [ebp - 0x54], xmm0
je 0x10091b99
mov edx, dword [edi + 0x20]
mov dword [ebp + 0x10], edx
jmp 0x10091b9c
mov edx, dword [ebp + 0x10]
mov cl, byte [ebp - 4]
test cl, cl
jne 0x10091c29
test bl, bl
jne 0x10091c29
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
cmp dword [esi + 0x19ec], eax
jne 0x10091bc0
mov edi, dword [edi + 8]
add edi, edx
jmp 0x10091bd4
mov ecx, edx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10091bc5
sub ecx, edx
mov edx, dword [ebp + 0x10]
lea edi, [edx + ecx]
mov eax, edi
sub eax, edx
cmp eax, 0x200000
jge 0x100924cf
movss xmm1, dword [0x10155c80]
lea eax, [ebp - 0xac]
push eax
push ecx
mov dword [esp], 0
xor ecx, ecx
push edi
push edx
call fcn.10009b20
mov ecx, dword [ebp - 0x3c]
movss xmm2, dword [esi + 0x18c4]
push eax
lea eax, [ebp - 0x58]
mov ecx, dword [ecx + 0x284]
push eax
push dword [esi + 0x18c0]
call fcn.10023c10
jmp 0x100924cf
mov eax, dword [edi + 8]
mov ebx, 0xfffffc18
mov dword [ebp - 0x5c], eax
xorps xmm6, xmm6
add eax, edx
mov dword [ebp - 0x40], 0
xor edx, edx
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x14]
xorps xmm5, xmm5
mov dword [ebp - 0x44], 0
xorps xmm4, xmm4
mov dword [ebp - 0x1c], ebx
mov dword [ebp + 0x14], ebx
test cl, cl
je 0x10091c77
mov ebx, dword [edi + 0x14]
mov eax, dword [edi + 0x3c]
lea eax, [ebx + eax*2]
or ebx, 0xffffffff
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x1c], ebx
lea edx, [ebx + 2]
cmp byte [ebp - 3], 0
je 0x10091c98
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 - 0x44], ecx
mov ecx, eax
xor esi, esi
movzx eax, word [eax]
test ax, ax
je 0x10091cf2
mov edi, dword [ebp - 0x1c]
mov ebx, eax
nop dword [eax]
cmp bx, 0xa
jne 0x10091cdb
inc esi
cmp edi, 0xffffffff
jne 0x10091cc8
cmp ecx, dword [ebp - 0x40]
jb 0x10091cc8
dec edx
mov edi, esi
test edx, edx
jle 0x10091ce9
cmp dword [ebp + 0x14], 0xffffffff
jne 0x10091cdb
cmp ecx, dword [ebp - 0x44]
jb 0x10091cdb
dec edx
mov dword [ebp + 0x14], esi
test edx, edx
jle 0x10091ce9
movzx eax, word [ecx + 2]
add ecx, 2
mov ebx, eax
test ax, ax
jne 0x10091cb0
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [edi + 0x14]
inc esi
cmp ebx, 0xffffffff
mov eax, esi
cmovne eax, ebx
mov ebx, dword [ebp - 0x40]
mov dword [ebp - 0x9c], eax
mov ecx, ebx
mov eax, dword [ebp + 0x14]
cmp eax, 0xffffffff
cmove eax, esi
mov dword [ebp + 0x14], eax
cmp ebx, edx
jbe 0x10091d2e
nop dword [eax]
cmp word [ecx - 2], 0xa
je 0x10091d2e
add ecx, 0xfffffffe
cmp ecx, edx
ja 0x10091d20
mov eax, dword [0x10223950]
movaps xmm0, xmm6
movss dword [ebp - 0x1c], xmm0
movaps xmm1, xmm6
mov esi, dword [eax + 0x18c0]
movss xmm3, dword [eax + 0x18c4]
divss xmm3, dword [esi + 0x10]
cmp ecx, ebx
jae 0x10091d9e
movzx eax, word [ecx]
add ecx, 2
mov edx, eax
cmp eax, 0xa
jne 0x10091d70
maxss xmm0, xmm1
movaps xmm1, xmm6
movss dword [ebp - 0x1c], xmm0
jmp 0x10091d97
cmp edx, 0xd
je 0x10091d97
mov edx, eax
cmp edx, dword [esi]
jge 0x10091d85
mov eax, dword [esi + 8]
movss xmm0, dword [eax + edx*4]
jmp 0x10091d8a
movss xmm0, dword [esi + 0xc]
mulss xmm0, xmm3
addss xmm1, xmm0
movss xmm0, dword [ebp - 0x1c]
cmp ecx, ebx
jb 0x10091d55
mov edx, dword [edi + 0x14]
mov eax, dword [ebp - 0xc]
maxss xmm0, xmm1
movd xmm1, dword [ebp - 0x9c]
mov ebx, dword [ebp + 0x14]
cvtdq2ps xmm1, xmm1
movss xmm2, dword [eax + 0x18c4]
mulss xmm1, xmm2
movss dword [ebp - 0x1c], xmm0
movss dword [ebp - 0x40], xmm1
test ebx, ebx
js 0x10091e53
mov eax, dword [ebp - 0x44]
mov ecx, eax
cmp eax, edx
jbe 0x10091df1
nop word [eax + eax]
cmp word [ecx - 2], 0xa
je 0x10091dee
add ecx, 0xfffffffe
cmp ecx, edx
ja 0x10091de0
mov eax, dword [ebp - 0x44]
movaps xmm4, xmm6
movaps xmm1, xmm6
cmp ecx, eax
jae 0x10091e44
mov edi, dword [ebp - 0x44]
nop
movzx eax, word [ecx]
add ecx, 2
mov edx, eax
cmp eax, 0xa
jne 0x10091e16
maxss xmm4, xmm1
movaps xmm1, xmm6
jmp 0x10091e38
cmp edx, 0xd
je 0x10091e38
mov edx, eax
cmp edx, dword [esi]
jge 0x10091e2b
mov eax, dword [esi + 8]
movss xmm0, dword [eax + edx*4]
jmp 0x10091e30
movss xmm0, dword [esi + 0xc]
mulss xmm0, xmm3
addss xmm1, xmm0
cmp ecx, edi
jb 0x10091e00
movss xmm0, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x30]
movd xmm5, ebx
maxss xmm4, xmm1
cvtdq2ps xmm5, xmm5
mulss xmm5, xmm2
cmp byte [ebp - 4], 0
je 0x10091eae
cmp byte [edi + 0xe64], 0
je 0x10091eae
movss xmm3, dword [ebp - 0x74]
movss xmm2, dword [edi + 0x38]
movaps xmm1, xmm3
comiss xmm2, xmm0
mulss xmm1, dword [0x10155be4]
jbe 0x10091e8a
subss xmm0, xmm1
maxss xmm0, xmm6
cvttss2si eax, xmm0
jmp 0x10091e9b
subss xmm0, xmm3
comiss xmm0, xmm2
jb 0x10091ea7
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 xmm6, dword [edi + 0x38]
movss dword [ebp + 0x14], xmm6
je 0x10092162
mov ecx, dword [edi + 0x40]
mov edx, dword [edi + 0x44]
mov eax, edx
movss xmm0, dword [ebp - 0x90]
cmp ecx, edx
mulss xmm0, dword [0x10155dc8]
mov ebx, dword [edi + 0x14]
cmovl eax, ecx
cmovge edx, ecx
cvttss2si ecx, xmm0
lea esi, [ebx + eax*2]
lea ebx, [ebx + edx*2]
cmp ecx, 0xff
jle 0x10091efb
or al, 0xff
jmp 0x10091f05
xor edx, edx
movzx eax, cl
test ecx, ecx
cmovs eax, edx
movzx eax, al
xorps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10155b60]
comiss xmm1, xmm0
jbe 0x10091f24
xorps xmm0, xmm0
jmp 0x10091f2c
minss xmm0, dword [0x10155c80]
mulss xmm0, dword [0x10155eec]
movss xmm3, dword [ebp - 0x4c]
addss xmm3, xmm4
movss xmm4, dword [ebp - 0x28]
addss xmm0, dword [0x10155c24]
subss xmm3, xmm6
movaps xmm6, xmm4
cvttss2si eax, xmm0
addss xmm6, xmm5
shl eax, 0x18
or eax, 0xd9d9d9
mov dword [ebp - 0x9c], eax
movss dword [ebp - 0x74], xmm6
cmp esi, ebx
jae 0x100921ab
mov ecx, dword [ebp - 0xc]
mov edi, eax
movss xmm4, dword [ecx + 0x18c4]
movaps xmm1, xmm4
movaps xmm0, xmm7
addss xmm0, xmm1
comiss xmm6, xmm0
ja 0x10092155
movss xmm0, dword [ebp - 0x20]
comiss xmm0, xmm6
jbe 0x10091fbe
cmp esi, ebx
jae 0x1009212f
movzx eax, word [esi]
add esi, 2
cmp eax, 0xa
je 0x1009212f
cmp esi, ebx
jb 0x10091fa6
jmp 0x10092155
mov eax, dword [0x10223950]
xorps xmm0, xmm0
xorps xmm5, xmm5
xorps xmm1, xmm1
mov edx, dword [eax + 0x18c0]
movss xmm2, dword [eax + 0x18c4]
divss xmm2, dword [edx + 0x10]
cmp esi, ebx
jae 0x1009201a
movzx eax, word [esi]
add esi, 2
mov ecx, eax
cmp eax, 0xa
je 0x1009203b
cmp ecx, 0xd
je 0x10092010
cmp ecx, dword [edx]
jge 0x10092003
mov eax, dword [edx + 8]
movss xmm0, dword [eax + ecx*4]
jmp 0x10092008
movss xmm0, dword [edx + 0xc]
mulss xmm0, xmm2
addss xmm1, xmm0
cmp esi, ebx
jb 0x10091fe3
xorps xmm0, xmm0
mov ecx, dword [ebp - 0xc]
maxss xmm5, xmm1
comiss xmm0, xmm5
jb 0x10092062
mov eax, dword [ecx + 0x18c0]
cmp dword [eax], 0x20
jle 0x1009204a
mov eax, dword [eax + 8]
movss xmm0, dword [eax + 0x80]
jmp 0x1009204f
movaps xmm5, xmm1
xorps xmm0, xmm0
maxss xmm5, xmm0
xorps xmm1, xmm1
jmp 0x10092017
movss xmm0, dword [eax + 0xc]
mulss xmm0, dword [0x10155c24]
cvttss2si eax, xmm0
movd xmm5, eax
cvtdq2ps xmm5, xmm5
addss xmm4, dword [0x10155c80]
movss xmm2, dword [ebp - 0x20]
addss xmm5, xmm3
movaps xmm0, xmm6
movaps xmm1, xmm6
addss xmm1, dword [0x10155ccc]
subss xmm0, xmm4
movss xmm4, dword [ebp - 0x70]
maxss xmm4, xmm3
movss xmm3, dword [ebp - 0x34]
minss xmm3, xmm5
maxss xmm2, xmm0
movaps xmm0, xmm7
minss xmm0, xmm1
movss dword [ebp - 0x84], xmm4
movss dword [ebp - 0x7c], xmm3
movss dword [ebp - 0x80], xmm2
comiss xmm0, dword [ebp - 0x20]
movss dword [ebp - 0x78], xmm0
jbe 0x1009212f
comiss xmm7, xmm2
jbe 0x1009212f
comiss xmm3, dword [ebp - 0x70]
jbe 0x1009212f
movss xmm0, dword [ebp - 0x34]
comiss xmm0, xmm4
jbe 0x1009212f
push 0xf
push ecx
mov dword [esp], 0
lea eax, [ebp - 0x7c]
push edi
push eax
lea eax, [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x284]
call fcn.10023720
movss xmm0, dword [ebp - 0xa4]
movss xmm7, dword [ebp - 0xa0]
movss xmm6, dword [ebp - 0x74]
mov ecx, dword [ebp - 0xc]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0xa8]
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [ebp - 0xac]
movss dword [ebp - 0x70], xmm0
movss xmm4, dword [ecx + 0x18c4]
movss xmm3, dword [ebp - 0x4c]
addss xmm6, xmm4
movaps xmm1, xmm4
subss xmm3, dword [ebp + 0x14]
movss dword [ebp - 0x74], xmm6
cmp esi, ebx
jb 0x10091f84
movss xmm6, dword [ebp + 0x14]
mov edi, dword [ebp - 0x30]
movss dword [ebp - 0x38], xmm7
movss xmm4, dword [ebp - 0x28]
cmp dword [ebp - 0x5c], 0x200000
jge 0x100922bb
mov eax, dword [0x10223950]
xorps xmm3, xmm3
movss xmm5, dword [0x10155c80]
movups xmm0, xmmword [eax + 0x15c0]
comiss xmm3, xmm0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xff
mulss xmm1, dword [eax + 0x1510]
movups xmmword [ebp - 0x84], xmm0
jbe 0x100921b2
xorps xmm0, xmm0
jmp 0x100921b6
movss xmm6, dword [ebp + 0x14]
jmp 0x10092167
minss xmm0, xmm5
movss xmm2, dword [0x10155eec]
movss xmm7, dword [0x10155c24]
mulss xmm0, xmm2
addss xmm0, xmm7
cvttss2si ecx, xmm0
movss xmm0, dword [ebp - 0x80]
shl ecx, 0x10
comiss xmm3, xmm0
jbe 0x100921e4
xorps xmm0, xmm0
jmp 0x100921e8
minss xmm0, xmm5
mulss xmm0, xmm2
addss xmm0, xmm7
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x7c]
shl eax, 8
or ecx, eax
comiss xmm3, xmm0
jbe 0x10092208
xorps xmm0, xmm0
jmp 0x1009220c
minss xmm0, xmm5
mulss xmm0, xmm2
addss xmm0, xmm7
cvttss2si eax, xmm0
or ecx, eax
comiss xmm3, xmm1
jbe 0x10092224
xorps xmm1, xmm1
jmp 0x10092228
minss xmm1, xmm5
movss xmm0, dword [ebp - 0x4c]
lea eax, [ebp - 0xac]
mov esi, dword [ebp - 0xc]
subss xmm0, xmm6
mov ebx, dword [ebp - 0x3c]
mulss xmm1, xmm2
push eax
movss xmm2, dword [esi + 0x18c4]
push ecx
addss xmm1, xmm7
mov dword [esp], 0
push dword [ebp - 0x24]
movss dword [ebp - 0x60], xmm0
push dword [ebp + 0x10]
movss dword [ebp - 0x5c], xmm4
cvttss2si eax, xmm1
shl eax, 0x18
or eax, ecx
mov ecx, dword [ebx + 0x284]
push eax
lea eax, [ebp - 0x60]
push eax
push dword [esi + 0x18c0]
call fcn.10023c10
movss xmm0, dword [ebp - 0xa0]
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0xa4]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0xa8]
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [ebp - 0xac]
movss dword [ebp - 0x70], xmm0
jmp 0x100922c1
mov esi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x3c]
cmp byte [ebp - 4], 0
je 0x100924cc
movss xmm0, dword [esi + 0x18]
addss xmm0, dword [edi + 0xe60]
movss dword [edi + 0xe60], xmm0
cmp byte [esi + 0xb2], 0
movss dword [ebp - 0x5c], xmm0
je 0x10092319
xorps xmm1, xmm1
comiss xmm1, xmm0
jae 0x10092319
fld dword [ebp - 0x5c]
fld dword [0x10155c98]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
movss xmm0, dword [0x10155c60]
fstp dword [ebp - 0x5c]
comiss xmm0, dword [ebp - 0x5c]
jae 0x10092319
xor al, al
jmp 0x1009231b
mov al, 1
movss xmm6, dword [ebp - 0x28]
movss xmm5, dword [ebp - 0x4c]
movss xmm0, dword [esi + 0x18c4]
movss xmm7, dword [0x10155c80]
addss xmm6, dword [ebp - 0x40]
addss xmm5, dword [ebp - 0x1c]
movss dword [ebp - 0x28], xmm6
movaps xmm1, xmm6
subss xmm1, xmm0
movaps xmm3, xmm6
subss xmm5, dword [ebp + 0x14]
subss xmm3, dword [0x10155cac]
addss xmm1, dword [0x10155c24]
movss dword [ebp - 0x4c], xmm5
movaps xmm2, xmm5
movss dword [ebp - 0x84], xmm5
addss xmm2, xmm7
movss dword [ebp - 0x78], xmm3
movss dword [ebp - 0x80], xmm1
movss dword [ebp - 0x7c], xmm2
test al, al
je 0x100924b4
comiss xmm3, dword [ebp - 0x20]
jbe 0x100924b4
movss xmm4, dword [ebp - 0x38]
comiss xmm4, xmm1
jbe 0x100924b4
comiss xmm2, dword [ebp - 0x70]
jbe 0x100924b4
movss xmm1, dword [ebp - 0x34]
comiss xmm1, xmm5
jbe 0x100924b4
mov eax, dword [0x10223950]
xorps xmm4, xmm4
movups xmm0, xmmword [eax + 0x15c0]
comiss xmm4, xmm0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xff
mulss xmm1, dword [eax + 0x1510]
movups xmmword [ebp - 0x68], xmm0
jbe 0x100923ea
xorps xmm0, xmm0
jmp 0x100923ee
minss xmm0, xmm7
movss xmm2, dword [0x10155eec]
movss xmm6, dword [0x10155c24]
mulss xmm0, xmm2
addss xmm0, xmm6
cvttss2si ecx, xmm0
movss xmm0, dword [ebp - 0x64]
shl ecx, 0x10
comiss xmm4, xmm0
jbe 0x1009241c
xorps xmm0, xmm0
jmp 0x10092420
minss xmm0, xmm7
mulss xmm0, xmm2
addss xmm0, xmm6
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x60]
shl eax, 8
or ecx, eax
comiss xmm4, xmm0
jbe 0x10092440
xorps xmm0, xmm0
jmp 0x10092444
minss xmm0, xmm7
mulss xmm0, xmm2
addss xmm0, xmm6
cvttss2si eax, xmm0
or ecx, eax
comiss xmm4, xmm1
jbe 0x1009245c
xorps xmm1, xmm1
jmp 0x10092460
minss xmm1, xmm7
mulss xmm1, xmm2
push ecx
mov dword [esp], 0x3f800000
movss dword [ebp - 0x60], xmm5
addss xmm1, xmm6
movss dword [ebp - 0x5c], xmm3
cvttss2si eax, xmm1
shl eax, 0x18
or eax, ecx
mov ecx, dword [ebx + 0x284]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.10023530
movss xmm0, dword [esi + 0x18c4]
movss xmm5, dword [ebp - 0x4c]
movss xmm6, dword [ebp - 0x28]
movss xmm7, dword [0x10155c80]
subss xmm5, xmm7
subss xmm6, xmm0
movss dword [esi + 0x2d24], xmm5
movss dword [esi + 0x2d28], xmm6
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp + 8]
xor ecx, ecx
mov bl, byte [esi]
test bl, bl
je 0x100924f4
nop word [eax + eax]
inc ecx
mov edx, ecx
cmp byte [ecx + esi], 0
jne 0x100924e0
mov al, bl
sub al, 0x41
cmp al, 0x19
ja 0x100924f4
add bl, 0x20
test ecx, ecx
jne 0x100924ff
mov eax, 0x84222325
jmp 0x10092518
push ecx
lea eax, [ecx - 1]
movsx ecx, bl
push eax
lea edx, [esi + 1]
xor ecx, 0x8601b7df
call fcn.1005b3a0
add esp, 8
mov ebx, dword [ebp - 0xb0]
mov dword [ebp + 0x14], eax
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebx + 0x40]
call fcn.10086c10
movss xmm3, dword [ebp - 0x94]
lea ecx, [ebp - 0x84]
movss xmm2, dword [ebp - 0x98]
mov esi, eax
mov eax, dword [ebp + 0x18]
movaps xmm1, xmm3
mov edx, dword [ebp - 0x18]
movaps xmm0, xmm2
movss dword [ebp - 0x84], xmm3
movss dword [ebp - 0x80], xmm2
addss xmm1, dword [eax]
addss xmm0, dword [eax + 4]
movss dword [ebp - 0x7c], xmm1
movss dword [ebp - 0x78], xmm0
call fcn.1000c310
movss xmm2, dword [0x102231c0]
mulss xmm2, dword [0x10155d30]
movzx eax, al
movss xmm0, dword [esi + 4]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
call fcn.10083fc0
movss xmm6, dword [0x10155c80]
movaps xmm1, xmm0
comiss xmm1, xmm6
xorps xmm5, xmm5
jbe 0x100925b2
movaps xmm1, xmm6
jmp 0x100925ba
comiss xmm5, xmm1
jbe 0x100925ba
xorps xmm1, xmm1
movaps xmm0, xmm1
movss dword [esi + 4], xmm1
mulss xmm0, dword [0x10155dc8]
mov dl, 0xd9
mulss xmm1, dword [0x10155ff4]
addss xmm0, dword [0x10155d8c]
cvttss2si eax, xmm1
mulss xmm0, dword [ebp - 0x90]
sub dl, al
cvttss2si eax, xmm0
cmp eax, 0xff
jle 0x100925fa
or cl, 0xff
jmp 0x10092604
xor esi, esi
movzx ecx, al
test eax, eax
cmovs ecx, esi
movss xmm4, dword [0x10155eec]
movss xmm7, dword [0x10155c24]
movzx eax, dl
movd xmm1, eax
movzx eax, cl
cvtdq2ps xmm1, xmm1
movd xmm2, eax
mulss xmm1, dword [0x10155b60]
cvtdq2ps xmm2, xmm2
comiss xmm5, xmm1
mulss xmm2, dword [0x10155b60]
jbe 0x10092644
xorps xmm3, xmm3
xor ecx, ecx
jmp 0x10092676
movaps xmm0, xmm1
movaps xmm3, xmm1
minss xmm0, xmm6
minss xmm1, xmm6
minss xmm3, xmm6
mulss xmm0, xmm4
mulss xmm1, xmm4
addss xmm0, xmm7
addss xmm1, xmm7
cvttss2si ecx, xmm0
cvttss2si eax, xmm1
shl ecx, 8
or ecx, eax
shl ecx, 8
mulss xmm3, xmm4
addss xmm3, xmm7
cvttss2si eax, xmm3
or ecx, eax
comiss xmm5, xmm2
jbe 0x1009268e
xorps xmm2, xmm2
jmp 0x10092692
minss xmm2, xmm6
mov eax, dword [ebp + 0x18]
movss xmm0, dword [ebp - 0x94]
mulss xmm2, xmm4
push 0xf
addss xmm0, dword [eax]
push ecx
addss xmm2, xmm7
mov dword [esp], 0x40800000
movss dword [ebp - 0x60], xmm0
movss xmm0, dword [ebp - 0x98]
addss xmm0, dword [eax + 4]
cvttss2si eax, xmm2
movss dword [ebp - 0x5c], xmm0
shl eax, 0x18
or eax, ecx
mov ecx, dword [ebx + 4]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0xc0]
push eax
call fcn.10023720
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x2d60], 0
je 0x10092702
mov edx, dword [ebp + 0x10]
lea ecx, [ebp - 0x58]
push edi
call fcn.10018aa0
add esp, 4
movss xmm0, dword [ebp - 0xb4]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x10092751
movss xmm0, dword [ebp - 0x94]
xor edx, edx
addss xmm0, dword [0x10155d5c]
mov ecx, dword [ebp + 8]
movss dword [ebp - 0x58], xmm0
movss xmm0, dword [ebp - 0x98]
addss xmm0, dword [0x10155d78]
movss dword [ebp - 0x54], xmm0
push dword [ebp - 0x54]
push dword [ebp - 0x58]
push 1
call fcn.10009c00
add esp, 0xc
mov bl, byte [ebp - 1]
test bl, bl
je 0x10092774
mov edx, dword [0x10223950]
mov word [edx + 0x19fb], 0x101
mov edx, dword [edx + 0x19b0]
or dword [edx + 0x11c], 4
mov ecx, dword [ebp - 0x50]
call fcn.10014000
mov al, bl
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