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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x114
mov eax, dword [0x1022d00c]
xor eax, esp
mov dword [esp + 0x110], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [0x1022d548]
push edi
mov edi, ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
call fcn.100093e4
test eax, eax
mov dword [esp + 0x50], eax
mov ebx, eax
sete byte [esp + 0x11]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x34], ebx
test eax, eax
jne 0x1000bb2d
mov edx, dword [esp + 0x14]
mov ecx, edi
call fcn.1000968e
mov ebx, eax
mov dword [esp + 0x48], ebx
mov dword [esp + 0x34], ebx
mov edx, dword [esp + 0x14]
mov eax, 0xc0200
mov ecx, edx
and ecx, eax
cmp ecx, eax
jne 0x1000bb45
or edx, 6
mov dword [esp + 0x14], edx
mov eax, dword [ebx + 0x270]
lea ecx, [esi + 0x3f10]
mov edi, dword [esi + 0x3eb0]
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x4c], edi
cmp dword [ecx], eax
jne 0x1000bb6e
cmp byte [esi + 0x3ec1], al
je 0x1000bb6e
inc eax
mov byte [ebx + 0xe7], al
lea eax, [edi - 1]
cmp dword [ebx + 0x270], eax
setl ch
mov byte [esp + 0x1b], ch
test edx, 0x4000000
je 0x1000bbb6
imul edx, dword [esi + 0x48c4], 0x28
mov eax, dword [ebx + 0xf8]
add edx, dword [esi + 0x48c0]
cmp ebx, dword [edx + 4]
setne cl
cmp eax, dword [edx]
mov edx, dword [esp + 0x14]
setne al
or cl, al
or ch, cl
mov byte [esp + 0x1b], ch
mov al, byte [ebx + 0xe5]
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x13], al
cmp ecx, edi
je 0x1000bc38
push edx
mov dl, byte [esp + 0x15]
mov ecx, ebx
call fcn.100094dc
mov al, byte [esp + 0x1f]
mov byte [ebx + 0xe5], al
pop ecx
test al, al
je 0x1000bbf2
xor eax, eax
mov ecx, ebx
inc eax
push eax
push 8
pop edx
call fcn.10009355
pop ecx
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0x10], eax
xor eax, eax
mov dword [ebx + 0xc], ecx
mov dword [ebx + 0x270], edi
movsd xmm0, qword [esi + 0x3ea8]
cvtpd2ps xmm0, xmm0
movss dword [ebx + 0x278], xmm0
mov word [ebx + 0xf0], ax
mov ax, word [esi + 0x3f28]
mov word [ebx + 0xf2], ax
inc dword [esi + 0x3f28]
jmp 0x1000bc3f
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x14], eax
test dword [esi + 0x47e8], 0x200
je 0x1000bc5f
push dword [esi + 0x47f8]
mov edx, dword [esi + 0x4848]
mov ecx, ebx
call fcn.1001cbb8
pop ecx
cmp dword [esp + 0x30], edi
je 0x1000bd13
cmp dword [ebx + 0x3c0], 0
jne 0x1000bc8f
cmp dword [ebx + 0x3b8], 0
jne 0x1000bc8f
mov ecx, ebx
xor dl, dl
call fcn.1001cf40
test al, al
je 0x1000bc94
xor eax, eax
inc eax
mov cl, al
jmp 0x1000bc96
xor eax, eax
lea edx, [eax + 1]
xor cl, cl
mov al, byte [ebx + 0x39d]
mov byte [esp + 0x12], al
test dl, dl
jne 0x1000bcb2
test cl, cl
jne 0x1000bcb2
and al, 0xf8
mov byte [ebx + 0x39d], al
jmp 0x1000bd13
mov edx, dword [esp + 0x5c]
mov ecx, ebx
call fcn.1001d04d
mov al, byte [ebx + 0x39d]
xor ecx, ecx
mov edx, dword [ebx + 0xc]
inc ecx
mov dword [esp + 0x14], edx
test cl, al
je 0x1000bcde
and dword [esi + 0x47e8], 0xffffffef
mov al, byte [ebx + 0x39d]
test al, 4
je 0x1000bd17
mov al, byte [esp + 0x12]
test al, 4
jne 0x1000bd17
test al, 2
je 0x1000bd17
cmp byte [ebx + 0xe5], 0
jne 0x1000bd17
cmp byte [esp + 0x13], 0
jne 0x1000bd17
xor eax, eax
mov ecx, ebx
inc eax
push eax
push 8
pop edx
mov byte [ebx + 0xe5], al
call fcn.10009355
pop ecx
mov edx, dword [esp + 0x14]
xor eax, eax
inc eax
test byte [ebx + 0x39d], al
je 0x1000bd33
mov eax, dword [ebx + 0x3b8]
mov ecx, dword [eax + 0x70]
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x1000bd52
mov eax, dword [esi + 0x3f10]
test eax, eax
jne 0x1000bd41
xor ecx, ecx
jmp 0x1000bd4e
imul ecx, eax, 0x54
mov eax, dword [esi + 0x3f18]
mov ecx, dword [eax + ecx - 0x54]
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x30], edi
je 0x1000bd67
mov eax, edx
and eax, 0x5000000
neg eax
sbb eax, eax
and eax, ecx
jmp 0x1000bd6d
mov eax, dword [ebx + 0x338]
lea ecx, [ebx + 0x11c]
mov dword [esp + 0x28], eax
cmp dword [ecx], 0
jne 0x1000bd85
lea eax, [ebx + 8]
push eax
call fcn.1001eca9
lea ecx, [esp + 0x7c]
mov dword [esi + 0x3f34], ebx
call fcn.1000143a
mov edx, dword [esp + 0x1c]
lea edi, [esp + 0xb8]
xor eax, eax
add esi, 0x47ac
stosd dword es:[edi], eax
push 0xf
pop ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [edx + 0x3f34]
lea edi, [esp + 0x7c]
mov dword [esp + 0x78], ebx
rep movsd dword es:[edi], dword [esi]
mov ax, word [eax + 0x11c]
lea edi, [edx + 0x3f10]
mov word [esp + 0xb8], ax
mov ax, word [edx + 0x4870]
mov word [esp + 0xba], ax
mov ax, word [edx + 0x487c]
mov esi, dword [edi + 4]
mov word [esp + 0xbc], ax
mov ax, word [edx + 0x4888]
mov word [esp + 0xbe], ax
mov ax, word [edx + 0x4894]
mov word [esp + 0xc0], ax
mov ax, word [edx + 0x48ac]
mov word [esp + 0xc2], ax
mov ax, word [edx + 0x48a0]
mov word [esp + 0xc4], ax
lea eax, [edx + 0x48c4]
mov dword [esp + 0x20], eax
mov ax, word [eax]
mov word [esp + 0xc6], ax
mov ax, word [edx + 0x5b7c]
mov word [esp + 0xc8], ax
mov eax, dword [edi]
cmp eax, esi
jne 0x1000be84
lea ecx, [eax + 1]
test esi, esi
je 0x1000be6e
mov eax, esi
cdq
sub eax, edx
sar eax, 1
add eax, esi
jmp 0x1000be71
push 8
pop eax
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, edi
call fcn.1001f5eb
mov eax, dword [edi]
mov edx, dword [esp + 0x1c]
mov edi, dword [edi + 8]
lea esi, [esp + 0x78]
imul eax, eax, 0x54
push 0x15
pop ecx
add edi, eax
mov eax, dword [esp + 0x14]
rep movsd dword es:[edi], dword [esi]
inc dword [edx + 0x3f10]
test eax, 0x10000000
je 0x1000beac
inc dword [edx + 0x48dc]
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x4c]
je 0x1000bece
push dword [esp + 0x28]
mov edx, eax
mov ecx, ebx
call fcn.1000b99e
mov eax, dword [esp + 0x28]
pop ecx
mov dword [ebx + 0x33c], eax
mov esi, dword [0x1022d548]
lea eax, [esp + 0xe0]
mov edi, dword [ebx + 8]
push eax
mov dword [esp + 0xe4], edi
lea ecx, [esi + 0x4894]
call fcn.1001eca9
mov dword [esi + 0x4788], edi
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov eax, dword [esi + 0x4788]
mov dword [ebx + 0x390], eax
xor eax, eax
mov dword [esi + 0x3f34], eax
test edi, 0x4000000
je 0x1000bf52
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
imul esi, dword [edx], 0x28
add esi, dword [ecx + 0x48c0]
mov ecx, edx
push esi
mov dword [esi + 4], ebx
mov eax, dword [eax + 0x180]
mov dword [esi + 0xc], eax
call fcn.1001ecf0
mov eax, dword [esi]
mov esi, dword [esp + 0x1c]
mov dword [ebx + 0xf8], eax
xor eax, eax
xor ecx, ecx
mov byte [esp + 0x13], al
inc ecx
mov byte [esp + 0x12], al
mov byte [esp + 0x1a], al
test byte [esi + 0x47e8], cl
je 0x1000c00d
mov ecx, dword [esi + 0x47ec]
movsx eax, byte [ebx + 0x108]
and eax, ecx
setne byte [esp + 0x13]
test ecx, eax
je 0x1000bffc
movss xmm1, dword [esi + 0x4808]
movss xmm0, dword [esi + 0x4804]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
comiss xmm0, dword [0x10227a94]
jbe 0x1000bffc
mov eax, dword [esi + 0x47fc]
mov ecx, dword [esi + 0x4800]
mov dword [ebx + 0x10c], eax
mov dword [ebx + 0x110], ecx
mov eax, dword [esi + 0x4804]
mov ecx, dword [esi + 0x4808]
mov dword [ebx + 0x114], eax
mov dword [ebx + 0x118], ecx
movzx ecx, byte [ebx + 0x108]
mov eax, dword [ebx + 0x108]
and ecx, 0xf1
and eax, 0xffffff00
or ecx, eax
mov dword [ebx + 0x108], ecx
jmp 0x1000c00b
push ecx
lea edx, [esi + 0x47fc]
mov ecx, ebx
call fcn.1000e545
pop ecx
xor eax, eax
mov ecx, dword [esi + 0x47e8]
xorps xmm1, xmm1
test cl, 2
je 0x1000c079
movsx ecx, byte [ebx + 0x109]
lea edx, [esi + 0x480c]
and ecx, dword [esi + 0x47f0]
je 0x1000c042
movss xmm0, dword [edx]
comiss xmm0, xmm1
jbe 0x1000c042
xor ecx, ecx
inc ecx
mov byte [esp + 0x12], cl
jmp 0x1000c04d
mov byte [esp + 0x12], al
test ecx, ecx
je 0x1000c05e
xor ecx, ecx
inc ecx
movss xmm0, dword [esi + 0x4810]
comiss xmm0, xmm1
mov byte [esp + 0x1a], cl
ja 0x1000c062
mov byte [esp + 0x1a], al
push dword [esi + 0x47f0]
mov ecx, ebx
call fcn.1000e687
pop ecx
mov ecx, dword [esi + 0x47e8]
xorps xmm1, xmm1
test cl, cl
jns 0x1000c0b5
movss xmm0, dword [esi + 0x481c]
comiss xmm0, xmm1
jb 0x1000c099
movss dword [ebx + 0xbc], xmm0
and dword [ebx + 0xc4], 0
movss xmm0, dword [esi + 0x4820]
comiss xmm0, xmm1
jb 0x1000c0b5
movss dword [ebx + 0xc0], xmm0
and dword [ebx + 0xc8], 0
test byte [esi + 0x47e8], 4
je 0x1000c0d2
mov eax, dword [esi + 0x4814]
mov ecx, dword [esi + 0x4818]
mov dword [ebx + 0x6c], eax
mov dword [ebx + 0x70], ecx
jmp 0x1000c0e6
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x4c]
je 0x1000c0e6
movss dword [ebx + 0x6c], xmm1
movss dword [ebx + 0x70], xmm1
mov eax, dword [esi + 0x47e8]
test eax, 0x400
je 0x1000c10f
push 7
add esi, 0x484c
lea edi, [ebx + 0x14]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov eax, dword [esi + 0x47e8]
test al, 8
je 0x1000c12d
push dword [esi + 0x47f4]
mov dl, byte [esi + 0x4825]
mov ecx, ebx
call fcn.1000e76b
mov eax, dword [esi + 0x47e8]
pop ecx
test al, 0x20
je 0x1000c13a
xor edx, edx
mov ecx, ebx
call fcn.1000df9f
cmp byte [ebx + 0xe5], 0
je 0x1000c150
push 0
push 8
pop edx
mov ecx, ebx
call fcn.10009355
pop ecx
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x4c]
je 0x1000da8c
xor ecx, ecx
mov eax, edi
and eax, 0x3000000
inc ecx
cmp dword [esp + 0x5c], 0
mov dword [esp + 0x44], eax
mov al, byte [ebx + 0x105]
mov byte [ebx + 0xdf], cl
mov byte [esp + 0x2f], al
setne al
mov byte [ebx + 0xe9], al
mov dword [ebx + 0x248], 0xff7fffff
mov dword [ebx + 0x24c], 0xff7fffff
push ecx
mov dword [ebx + 0x250], 0x7f7fffff
lea ecx, [ebx + 0x11c]
mov dword [ebx + 0x254], 0x7f7fffff
call fcn.1001f1d5
mov ecx, dword [ebx + 0x2a4]
call fcn.10025d68
or dword [ebx + 0x1cc], 0xffffffff
test edi, 0x20000000
je 0x1000c1fb
push ecx
push ecx
mov ecx, dword [ebx + 0x2a4]
add ecx, 0x78
call fcn.1002823f
mov ecx, dword [ebx + 0x2a4]
xor eax, eax
inc eax
push eax
push ecx
add ecx, 0x78
call fcn.1002858c
cmp byte [ebx + 0x39c], 0
je 0x1000c20b
mov ecx, ebx
call fcn.10006204
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x1000c217
cmp dword [eax + 0x48], ebx
je 0x1000c23c
xor eax, eax
inc eax
test byte [ebx + 0x39d], al
jne 0x1000c23c
cmp dword [esi + 0x4aa8], 0
je 0x1000c2cd
test dword [ebx + 0xc], 0x80000
jne 0x1000c2cd
cmp dword [esp + 0x50], 0
je 0x1000c2cd
mov edi, dword [esp + 0x60]
mov eax, edi
mov ecx, dword [ebx + 4]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1000c270
test dl, dl
je 0x1000c26c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1000c270
add eax, 2
add ecx, 2
test dl, dl
jne 0x1000c250
xor eax, eax
jmp 0x1000c277
sbb eax, eax
xor ecx, ecx
inc ecx
or eax, ecx
test eax, eax
je 0x1000c2cd
mov ecx, dword [ebx + 0x9c]
mov edx, edi
mov dword [esp + 0x20], ecx
lea edi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x1000c28a
sub edx, edi
lea edi, [edx + 1]
cmp ecx, edi
jae 0x1000c2af
mov ecx, dword [ebx + 4]
call fcn.10006825
mov ecx, edi
call fcn.1000680d
mov dword [esp + 0x20], edi
jmp 0x1000c2b2
mov eax, dword [ebx + 4]
push edi
push dword [esp + 0x64]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov dword [ebx + 4], eax
add esp, 0xc
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x9c], eax
lea edi, [ebx + 0x64]
mov ecx, ebx
lea edx, [ebx + 0x5c]
push edi
call fcn.10009908
mov al, byte [ebx + 0x104]
pop ecx
test al, al
jle 0x1000c2ee
dec al
mov byte [ebx + 0x104], al
mov al, byte [ebx + 0x105]
test al, al
jle 0x1000c300
dec al
mov byte [ebx + 0x105], al
mov al, byte [ebx + 0x106]
test al, al
jle 0x1000c312
dec al
mov byte [ebx + 0x106], al
cmp dword [esp + 0x50], 0
mov cl, byte [esp + 0x12]
mov dl, byte [esp + 0x1a]
jne 0x1000c332
test cl, cl
je 0x1000c329
test dl, dl
jne 0x1000c332
xor eax, eax
inc eax
mov byte [ebx + 0x105], al
cmp byte [esp + 0x1b], 0
je 0x1000c37d
mov eax, dword [esp + 0x14]
test eax, 0x6000000
je 0x1000c37d
mov byte [ebx + 0x105], 1
test al, 0x40
je 0x1000c37d
test cl, cl
jne 0x1000c35b
and dword [ebx + 0x54], 0
and dword [ebx + 0x4c], 0
test dl, dl
jne 0x1000c367
and dword [ebx + 0x58], 0
and dword [ebx + 0x50], 0
xorps xmm0, xmm0
movss dword [edi], xmm0
movss dword [edi + 4], xmm0
movss dword [ebx + 0x5c], xmm0
movss dword [ebx + 0x60], xmm0
mov ecx, ebx
call fcn.1001779e
mov edx, dword [ebx + 0x30]
call fcn.10016ae8
test dword [esi + 8], 0x8000
je 0x1000c39f
mov eax, dword [ebx + 0x30]
movss xmm0, dword [eax + 0x28]
jmp 0x1000c3a7
movss xmm0, dword [0x10227b1c]
mov ecx, ebx
movss dword [ebx + 0x29c], xmm0
call fcn.100061b4
mov edx, dword [ebx + 0xc]
xor ecx, ecx
inc ecx
mov dword [esp + 0x14], edx
test byte [ebx + 0x39d], cl
jne 0x1000c3de
test edx, 0x1000000
je 0x1000c3de
mov eax, dword [esi + 0x385c]
mov dword [ebx + 0x80], eax
jmp 0x1000c408
test edx, 0x6000000
je 0x1000c3f8
test edx, 0x8000000
jne 0x1000c3f8
movss xmm0, dword [esi + 0x3864]
jmp 0x1000c400
movss xmm0, dword [esi + 0x3840]
movss dword [ebx + 0x80], xmm0
test byte [ebx + 0x39d], cl
jne 0x1000c453
mov eax, edx
and eax, 0x5010000
cmp eax, 0x1000000
jne 0x1000c453
movss xmm0, dword [ebx + 0x80]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1000c453
test edx, 0x400
je 0x1000c444
movss xmm0, dword [esi + 0x3838]
jmp 0x1000c447
xorps xmm0, xmm0
movss dword [ebx + 0x74], xmm1
movss dword [ebx + 0x78], xmm0
jmp 0x1000c468
mov ecx, dword [esi + 0x3838]
mov eax, dword [esi + 0x3834]
mov dword [ebx + 0x74], eax
mov dword [ebx + 0x78], ecx
xor ecx, ecx
inc ecx
movss xmm0, dword [ebx + 0x74]
maxss xmm0, dword [esi + 0x3878]
maxss xmm0, dword [esi + 0x4868]
movss dword [ebx + 0x18c], xmm0
mov eax, dword [esi + 0x486c]
mov dword [ebx + 0x190], eax
mov al, byte [esp + 0x11]
mov byte [esp + 0x40], al
test dl, 0x21
jne 0x1000c53e
test byte [ebx + 0x39d], cl
jne 0x1000c53e
lea eax, [esp + 0xe4]
mov ecx, ebx
push eax
call fcn.100026fb
cmp dword [esi + 0x3f38], ebx
jne 0x1000c508
xor eax, eax
cmp dword [esi + 0x3f6c], eax
jne 0x1000c508
cmp dword [esi + 0x3f70], eax
jne 0x1000c508
inc eax
lea edx, [esp + 0xec]
push eax
lea ecx, [esp + 0xe8]
call fcn.1000f0ee
xor edx, edx
inc edx
pop ecx
test al, al
je 0x1000c50b
push 2
pop eax
cmp word [esi + 0x3712], ax
jne 0x1000c50b
mov byte [ebx + 0xe3], dl
jmp 0x1000c50b
xor edx, edx
inc edx
cmp byte [ebx + 0xe3], 0
je 0x1000c545
mov cl, byte [ebx + 0xe2]
test cl, cl
sete al
test cl, cl
mov byte [ebx + 0xe2], al
mov ecx, ebx
mov eax, dword [esp + 0x40]
movzx eax, al
cmovne eax, edx
mov dword [esp + 0x40], eax
call fcn.10016148
jmp 0x1000c545
mov byte [ebx + 0xe2], 0
mov byte [ebx + 0xe3], 0
xor eax, eax
movss xmm0, dword [ebx + 0xd4]
inc eax
movss dword [esp + 0x74], xmm0
movss xmm0, dword [ebx + 0xd8]
and dword [ebx + 0x84], 0
and dword [ebx + 0x8c], 0
movss dword [esp + 0x54], xmm0
test byte [ebx + 0xc], al
je 0x1000c583
xorps xmm2, xmm2
jmp 0x1000c59f
mov eax, dword [ebx]
mov ecx, ebx
movss xmm1, dword [eax + 0x386c]
call fcn.100026ce
addss xmm1, xmm1
movaps xmm2, xmm0
addss xmm2, xmm1
mov ecx, ebx
call fcn.1000274d
addss xmm0, xmm2
mov edx, ebx
push edi
lea ecx, [esp + 0xf8]
movss dword [ebx + 0x88], xmm0
xorps xmm0, xmm0
and dword [ebx + 0x90], 0
movss dword [ebx + 0xd4], xmm0
movss dword [ebx + 0xd8], xmm0
call fcn.10009a31
test byte [esp + 0x18], 0x40
pop ecx
je 0x1000c62a
cmp byte [ebx + 0xe2], 0
jne 0x1000c62a
xor eax, eax
inc eax
cmp byte [esp + 0x12], 0
jne 0x1000c608
movss xmm0, dword [esp + 0xf4]
movss dword [ebx + 0x54], xmm0
mov byte [esp + 0x11], al
cmp byte [esp + 0x1a], 0
jne 0x1000c6ca
movss xmm0, dword [esp + 0xf8]
movss dword [ebx + 0x58], xmm0
mov byte [esp + 0x40], al
jmp 0x1000c6ca
mov al, byte [ebx + 0xfc]
test al, al
jg 0x1000c641
cmp byte [ebx + 0xfd], 0
jle 0x1000c6ca
cmp byte [esp + 0x12], 0
jne 0x1000c67c
test al, al
jle 0x1000c67c
cmp byte [ebx + 0xff], 0
je 0x1000c665
movss xmm0, dword [ebx + 0x54]
maxss xmm0, dword [esp + 0xf4]
jmp 0x1000c66e
movss xmm0, dword [esp + 0xf4]
xor eax, eax
movss dword [ebx + 0x54], xmm0
inc eax
mov byte [esp + 0x11], al
jmp 0x1000c67f
xor eax, eax
inc eax
cmp byte [esp + 0x1a], 0
jne 0x1000c6ba
cmp byte [ebx + 0xfd], 0
jle 0x1000c6ba
cmp byte [ebx + 0xff], 0
je 0x1000c6a8
movss xmm0, dword [ebx + 0x58]
maxss xmm0, dword [esp + 0xf8]
jmp 0x1000c6b1
movss xmm0, dword [esp + 0xf8]
movss dword [ebx + 0x58], xmm0
mov byte [esp + 0x40], al
cmp byte [ebx + 0xe2], 0
jne 0x1000c6ca
mov ecx, ebx
call fcn.10016148
lea eax, [ebx + 0x54]
mov edx, ebx
push eax
lea ecx, [esp + 0x3c]
call fcn.10009744
mov edi, eax
pop ecx
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [ebx + 0x54], ecx
mov dword [ebx + 0x58], edx
cmp byte [ebx + 0xe2], 0
je 0x1000c72a
test dword [esp + 0x14], 0x1000000
jne 0x1000c72a
lea eax, [esp + 0xe4]
mov ecx, ebx
push eax
call fcn.100026fb
movss xmm0, dword [eax + 8]
subss xmm0, dword [eax]
movss dword [esp + 0x38], xmm0
movss xmm0, dword [eax + 0xc]
subss xmm0, dword [eax + 4]
movss dword [esp + 0x3c], xmm0
jmp 0x1000c737
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
cmp byte [esp + 0x1b], 0
lea ecx, [esp + 0x38]
mov eax, dword [ecx]
lea edi, [ebx + 0x4c]
mov ecx, dword [ecx + 4]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x14]
je 0x1000c78f
or dword [ebx + 0x100], 0xffffffff
test ecx, 0x4000000
je 0x1000c78f
test ecx, 0x8000000
jne 0x1000c78f
cmp byte [esp + 0x13], 0
jne 0x1000c78f
lea eax, [esi + 0x48c4]
imul edx, dword [eax], 0x28
mov eax, dword [eax + 8]
mov ecx, dword [edx + eax - 0x10]
mov eax, dword [edx + eax - 0xc]
mov dword [ebx + 0x44], ecx
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0x48], eax
mov eax, ecx
and eax, 0x1000000
mov dword [esp + 0x20], eax
je 0x1000c7f6
mov ecx, dword [esp + 0x28]
add ecx, 0x1b8
mov ax, word [ecx]
mov word [ebx + 0xf0], ax
lea eax, [esp + 0x34]
push eax
call fcn.1001f0bd
mov ecx, dword [esp + 0x14]
mov al, byte [esp + 0x13]
mov edx, dword [esp + 0x44]
test ecx, 0x4000000
jne 0x1000c7fe
test al, al
jne 0x1000c7fe
cmp edx, 0x3000000
je 0x1000c7fe
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x128]
mov ecx, dword [ecx + 0x12c]
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x48], ecx
mov ecx, dword [esp + 0x14]
jmp 0x1000c7fa
mov edx, dword [esp + 0x44]
mov al, byte [esp + 0x13]
movss xmm1, dword [ebx + 0x10c]
ucomiss xmm1, dword [0x10227c30]
lahf
test ah, 0x44
jnp 0x1000c861
cmp byte [ebx + 0x105], 0
jne 0x1000c861
movss xmm0, dword [edi]
lea edx, [esp + 0x38]
mulss xmm0, dword [ebx + 0x114]
mov ecx, ebx
push 0
subss xmm1, xmm0
movss xmm0, dword [ebx + 0x110]
movss dword [esp + 0x3c], xmm1
movss xmm1, dword [edi + 4]
mulss xmm1, dword [ebx + 0x118]
subss xmm0, xmm1
movss dword [esp + 0x40], xmm0
call fcn.1000e545
pop ecx
jmp 0x1000c8a5
test ecx, 0x10000000
jne 0x1000c88f
test ecx, 0x4000000
je 0x1000c87b
test al, al
jne 0x1000c87b
cmp byte [esp + 0x2f], al
jg 0x1000c88f
test ecx, 0x2000000
je 0x1000c8a5
test al, al
jne 0x1000c8a5
cmp edx, 0x3000000
je 0x1000c8a5
mov edx, ebx
lea ecx, [esp + 0x38]
call fcn.10012432
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebx + 0x44], ecx
mov dword [ebx + 0x48], eax
cmp dword [ebx + 0x40], 0
jl 0x1000c956
cmp byte [ebx + 0xde], 0
jne 0x1000c95f
mov eax, dword [ebx + 0x30]
test dword [eax + 4], 0x1000
jne 0x1000c956
movss xmm5, dword [ebx + 0x48]
lea ecx, [ebx + 0x44]
movss xmm0, dword [ecx]
movaps xmm3, xmm5
comiss xmm0, dword [eax + 8]
movss xmm2, dword [eax + 8]
movaps xmm1, xmm0
movss xmm4, dword [eax + 0xc]
addss xmm1, dword [edi]
addss xmm3, dword [ebx + 0x50]
addss xmm2, dword [eax + 0x10]
addss xmm4, dword [eax + 0x14]
jb 0x1000c911
comiss xmm5, dword [eax + 0xc]
jb 0x1000c911
comiss xmm2, xmm1
jb 0x1000c911
comiss xmm4, xmm3
jae 0x1000c956
mov edx, dword [ebx + 8]
push 0x20
push edi
push ecx
mov ecx, ebx
call fcn.1001749a
add esp, 0xc
mov dword [ebx + 0x30], eax
mov edx, eax
call fcn.10016ae8
test dword [esi + 8], 0x8000
je 0x1000c93f
mov eax, dword [ebx + 0x30]
movss xmm0, dword [eax + 0x28]
jmp 0x1000c947
movss xmm0, dword [0x10227b1c]
mov ecx, ebx
movss dword [ebx + 0x29c], xmm0
call fcn.100061b4
cmp byte [ebx + 0xde], 0
je 0x1000c96a
mov edx, dword [esp + 0x24]
mov ecx, ebx
call fcn.10017b7d
cmp byte [esp + 0x13], 0
mov eax, dword [ebx + 0x30]
movss xmm6, dword [esi + 0x38ec]
movss xmm7, dword [esi + 0x38e8]
maxss xmm6, dword [esi + 0x38f4]
movss xmm0, dword [eax + 8]
movss xmm1, dword [eax + 0xc]
movaps xmm4, xmm0
movss xmm3, dword [eax + 0x18]
movaps xmm5, xmm1
movss xmm2, dword [eax + 0x1c]
addss xmm3, dword [eax + 0x20]
addss xmm2, dword [eax + 0x24]
maxss xmm7, dword [esi + 0x38f0]
addss xmm4, dword [eax + 0x10]
addss xmm5, dword [eax + 0x14]
mov edx, dword [esp + 0x20]
movss dword [esp + 0x34], xmm0
subss xmm2, xmm6
movss dword [esp + 0xe4], xmm0
subss xmm3, xmm7
movss dword [esp + 0x24], xmm1
movaps xmm0, xmm6
addss xmm0, dword [eax + 0x1c]
movss dword [esp + 0xe8], xmm1
movaps xmm1, xmm7
addss xmm1, dword [eax + 0x18]
movss dword [esp + 0xec], xmm4
movss dword [esp + 0xf0], xmm5
movss dword [esp + 0x100], xmm0
movss dword [esp + 0x104], xmm3
movss dword [esp + 0xfc], xmm1
movss dword [esp + 0x108], xmm2
jne 0x1000cad8
test edx, edx
jne 0x1000cad8
cmp byte [ebx + 0xde], dl
jne 0x1000ca65
subss xmm4, dword [esp + 0x34]
xorps xmm0, xmm0
comiss xmm4, xmm0
jbe 0x1000cad8
subss xmm5, dword [esp + 0x24]
comiss xmm5, xmm0
jbe 0x1000cad8
jmp 0x1000cac6
cmp dword [esi + 0x3814], 0
jle 0x1000cad8
mov ecx, dword [ebx + 0x30]
call fcn.10017f1d
movaps xmm1, xmm7
movaps xmm0, xmm6
addss xmm1, dword [eax + 0x10]
addss xmm0, dword [eax + 0x14]
movss dword [esp + 0xfc], xmm1
movss dword [esp + 0x100], xmm0
movss xmm1, dword [eax + 0x10]
movss xmm0, dword [eax + 0x14]
addss xmm1, dword [eax + 0x18]
addss xmm0, dword [eax + 0x1c]
subss xmm1, xmm7
subss xmm0, xmm6
movss dword [esp + 0x104], xmm1
movss dword [esp + 0x108], xmm0
lea edx, [esp + 0xfc]
mov ecx, ebx
call fcn.1000a8bf
mov edx, dword [esp + 0x20]
cvttss2si eax, dword [ebx + 0x44]
movd xmm1, eax
cvttss2si eax, dword [ebx + 0x48]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x44], xmm1
movss dword [ebx + 0x48], xmm0
cmp byte [ebx + 0xde], 0
jne 0x1000cb45
xor eax, eax
inc eax
test byte [ebx + 0x39d], al
jne 0x1000cb45
test edx, edx
je 0x1000cb1c
movss xmm0, dword [esi + 0x3858]
jmp 0x1000cb3e
mov eax, dword [esp + 0x14]
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x1000cb36
movss xmm0, dword [esi + 0x3860]
jmp 0x1000cb3e
movss xmm0, dword [esi + 0x383c]
movss dword [ebx + 0x7c], xmm0
jmp 0x1000cb49
and dword [ebx + 0x7c], 0
xor cl, cl
mov dword [esp + 0x24], ecx
cmp byte [esp + 0x1b], cl
je 0x1000cb91
mov eax, dword [esp + 0x14]
test eax, 0x1000
jne 0x1000cb91
test eax, 0x4000000
je 0x1000cb70
xor edx, edx
inc edx
mov byte [esp + 0x24], dl
jmp 0x1000cb94
test byte [ebx + 0x39d], 1
jne 0x1000cb7d
test edx, edx
jne 0x1000cb91
push 1
test eax, 0x2000000
movzx ecx, cl
pop edx
cmove ecx, edx
mov dword [esp + 0x24], ecx
jmp 0x1000cb94
xor edx, edx
inc edx
cmp dword [ebx + 0x3bc], 0
jne 0x1000cba9
test byte [ebx + 0x39d], dl
je 0x1000cba9
xor cl, cl
jmp 0x1000cbab
mov cl, dl
or dword [esp + 0xe0], 0xffffffff
lea edi, [esp + 0x10c]
movss xmm2, dword [esi + 0x3c9c]
xor eax, eax
stosd dword es:[edi], eax
movaps xmm1, xmm2
mulss xmm2, dword [0x10227ac0]
mov byte [esp + 0x34], cl
mulss xmm1, dword [0x10227b20]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
movss xmm0, dword [ebx + 0x7c]
addss xmm0, dword [0x10227b1c]
cmp byte [esi + 0x52], al
mov esi, dword [esp + 0x48]
setne al
inc eax
mov dword [esp + 0x38], eax
addss xmm2, xmm0
maxss xmm1, xmm2
cvttss2si ebx, xmm1
test cl, cl
je 0x1000cc4f
cmp byte [esi + 0xe2], 0
jne 0x1000cc4f
lea ecx, [esp + 0xfc]
push ecx
lea ecx, [esp + 0x110]
push ecx
push eax
lea eax, [esp + 0xec]
mov ecx, esi
push eax
lea edx, [esp + 0x104]
call fcn.10009d71
add esp, 0x10
test al, al
je 0x1000cc4f
xor edx, edx
inc edx
mov byte [esp + 0x40], dl
mov byte [esp + 0x11], dl
mov al, byte [esp + 0xe0]
mov byte [esi + 0xea], al
cmp byte [esi + 0xde], 0
je 0x1000ccd6
mov edi, dword [esi + 0x30]
cmp byte [edi + 0x45], 0
jne 0x1000cc7d
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x48]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov edi, dword [esi + 0x30]
cmp byte [edi + 0x46], 0
jne 0x1000cc92
mov eax, dword [esi + 0x4c]
mov edx, dword [esi + 0x50]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
mov edi, dword [esi + 0x30]
mov ecx, edi
call fcn.1000170e
mov ecx, dword [esi + 0x30]
movss xmm0, dword [ecx + 8]
movss xmm1, dword [ecx + 0xc]
movss dword [esp + 0xe4], xmm0
addss xmm0, dword [ecx + 0x10]
movss dword [esp + 0xe8], xmm1
addss xmm1, dword [ecx + 0x14]
movss dword [esp + 0xec], xmm0
movss dword [esp + 0xf0], xmm1
jmp 0x1000ccd9
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
cmp byte [esi + 0xe2], 0
jne 0x1000cea1
cmp dword [esp + 0x50], 0
lea eax, [esp + 0x54]
movss xmm0, dword [esi + 0x90]
movss xmm2, dword [esi + 0x210]
movss xmm3, dword [esi + 0x214]
addss xmm0, dword [esi + 0x88]
subss xmm2, dword [esi + 0x208]
subss xmm3, dword [esi + 0x20c]
movss xmm4, dword [esi + 0x58]
movss xmm5, dword [esi + 0x54]
subss xmm4, xmm0
addss xmm2, dword [esp + 0x74]
addss xmm3, dword [esp + 0x54]
jne 0x1000cd53
and dword [esp + 0x54], 0
and dword [esp + 0x58], 0
jmp 0x1000cd7b
movss xmm0, dword [esi + 0x74]
movss xmm1, dword [esi + 0x78]
addss xmm0, xmm0
addss xmm1, xmm1
addss xmm0, dword [esi + 0x5c]
addss xmm1, dword [esi + 0x60]
movss dword [esp + 0x54], xmm0
movss dword [esp + 0x58], xmm1
cmp byte [esp + 0x11], 0
movss xmm6, dword [eax]
movss xmm1, dword [eax + 4]
jne 0x1000cd8e
movaps xmm5, xmm2
cmp byte [esp + 0x40], 0
jne 0x1000cd98
movaps xmm4, xmm3
mov eax, dword [esp + 0x14]
test eax, 0x4000
jne 0x1000cdb2
comiss xmm1, xmm4
jbe 0x1000cdac
test al, 8
je 0x1000cdb2
xor edx, edx
mov cl, dl
jmp 0x1000cdb7
xor ecx, ecx
inc ecx
xor edx, edx
mov byte [esi + 0xdd], cl
test eax, 0x8000
jne 0x1000cdf8
test cl, cl
je 0x1000cdd6
mov ecx, dword [esp + 0x1c]
movss xmm0, dword [ecx + 0x38a0]
jmp 0x1000cdd9
xorps xmm0, xmm0
subss xmm5, xmm0
comiss xmm6, xmm5
jbe 0x1000cdf2
and eax, 0x808
cmp eax, 0x800
mov eax, dword [esp + 0x14]
je 0x1000cdf8
mov byte [esp + 0x11], dl
jmp 0x1000cdff
xor ecx, ecx
inc ecx
mov byte [esp + 0x11], cl
mov cl, byte [esp + 0x11]
mov byte [esi + 0xdc], cl
test cl, cl
mov ecx, dword [esp + 0x1c]
je 0x1000ce38
cmp byte [esi + 0xdd], 0
jne 0x1000ce40
comiss xmm1, xmm4
jbe 0x1000ce28
test al, 8
jne 0x1000ce28
xor eax, eax
inc eax
jmp 0x1000ce2a
mov al, dl
mov byte [esi + 0xdd], al
mov al, byte [esi + 0xdc]
jmp 0x1000ce3c
mov al, byte [esp + 0x11]
test al, al
je 0x1000ce4a
movss xmm1, dword [ecx + 0x38a0]
jmp 0x1000ce4d
xorps xmm1, xmm1
cmp byte [esi + 0xdd], 0
xorps xmm0, xmm0
je 0x1000ce61
movss xmm0, dword [ecx + 0x38a0]
movss dword [esi + 0xd4], xmm0
movss dword [esi + 0xd8], xmm1
movss xmm0, dword [esi + 0xd4]
addss xmm0, dword [esi + 0x8c]
movss dword [esi + 0x8c], xmm0
movss xmm0, dword [esi + 0xd8]
addss xmm0, dword [esi + 0x90]
movss dword [esi + 0x90], xmm0
mov eax, dword [esp + 0x14]
and eax, 0x5000000
cmp eax, 0x1000000
jne 0x1000cec7
cmp dword [esp + 0x44], 0x3000000
je 0x1000cec7
mov esi, dword [esp + 0x28]
add esi, 0x248
jmp 0x1000cece
lea esi, [esp + 0xe4]
lea edi, [esp + 0x64]
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0xd0]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x4c]
mov ecx, esi
movss xmm4, dword [esi + 0x44]
movss xmm5, dword [esi + 0x48]
movaps xmm3, xmm4
addss xmm3, dword [esi + 0x4c]
movaps xmm2, xmm5
addss xmm2, dword [esi + 0x50]
call fcn.100026fb
movss dword [esi + 0x1f8], xmm4
xor edx, edx
movss dword [esi + 0x1fc], xmm5
inc edx
movss dword [esi + 0x200], xmm3
movss dword [esi + 0x204], xmm2
test byte [esi + 0x39d], dl
je 0x1000cf5d
test byte [esi + 0xc], dl
je 0x1000cf38
xorps xmm0, xmm0
jmp 0x1000cf51
mov eax, dword [esi]
mov ecx, esi
movss xmm1, dword [eax + 0x386c]
call fcn.100026ce
addss xmm1, xmm1
addss xmm0, xmm1
addss xmm0, xmm5
movss dword [esi + 0x1fc], xmm0
movss xmm0, dword [esi + 0x1fc]
movaps xmm1, xmm4
movss xmm3, dword [esp + 0x64]
movss xmm4, dword [esp + 0x68]
maxss xmm1, xmm3
maxss xmm0, xmm4
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov eax, ecx
and eax, 0x401
movss dword [esi + 0x1f8], xmm1
movss dword [esi + 0x1fc], xmm0
movaps xmm0, xmm2
movss xmm1, dword [esi + 0x200]
minss xmm0, dword [esp + 0x70]
minss xmm1, dword [esp + 0x6c]
movss dword [esi + 0x204], xmm0
movss dword [esi + 0x200], xmm1
movss xmm0, dword [esi + 0x44]
addss xmm0, dword [esi + 0x84]
movss dword [esi + 0x208], xmm0
movss xmm0, dword [esi + 0x88]
addss xmm0, dword [esi + 0x48]
movss dword [esi + 0x20c], xmm0
movss xmm0, dword [esi + 0x4c]
addss xmm0, dword [esi + 0x44]
subss xmm0, dword [esi + 0x8c]
movss dword [esi + 0x210], xmm0
movss xmm0, dword [esi + 0x50]
addss xmm0, dword [esi + 0x48]
subss xmm0, dword [esi + 0x90]
movss dword [esi + 0x214], xmm0
cmp eax, edx
jne 0x1000d02e
movss xmm5, dword [esi + 0x80]
jmp 0x1000d036
movss xmm5, dword [edi + 0x3874]
movss xmm0, dword [esi + 0x74]
movss xmm2, dword [0x10227ad8]
mulss xmm0, xmm2
cvttss2si eax, xmm0
movss xmm0, dword [esi + 0x208]
addss xmm0, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
maxss xmm1, dword [esi + 0x80]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x218], xmm0
movss xmm0, dword [esi + 0x20c]
addss xmm0, xmm2
addss xmm0, xmm5
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x21c], xmm0
movss xmm0, dword [esi + 0x74]
mulss xmm0, xmm2
movss xmm1, dword [esi + 0x210]
addss xmm1, xmm2
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
maxss xmm0, dword [esi + 0x80]
subss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x220], xmm0
movss xmm0, dword [esi + 0x214]
addss xmm0, xmm2
subss xmm0, dword [esi + 0x80]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x224], xmm0
movss xmm0, dword [esi + 0x21c]
comiss xmm4, xmm0
jbe 0x1000d118
movaps xmm1, xmm4
jmp 0x1000d122
movss xmm1, dword [esp + 0x70]
minss xmm1, xmm0
movss xmm2, dword [esi + 0x218]
comiss xmm3, xmm2
jbe 0x1000d134
movaps xmm0, xmm3
jmp 0x1000d13e
movss xmm0, dword [esp + 0x6c]
minss xmm0, xmm2
movss dword [esi + 0x218], xmm0
movss dword [esi + 0x21c], xmm1
movss xmm0, dword [esi + 0x224]
comiss xmm4, xmm0
ja 0x1000d165
movss xmm4, dword [esp + 0x70]
minss xmm4, xmm0
movss xmm0, dword [esi + 0x220]
comiss xmm3, xmm0
ja 0x1000d17c
movss xmm3, dword [esp + 0x6c]
minss xmm3, xmm0
movss dword [esi + 0x220], xmm3
xorps xmm2, xmm2
movss dword [esi + 0x224], xmm4
movss xmm0, dword [esi + 0x4c]
comiss xmm0, xmm2
jbe 0x1000d1ab
test ecx, 0x2000040
jne 0x1000d1ab
mulss xmm0, dword [0x10227ae4]
jmp 0x1000d1bb
movss xmm0, dword [edi + 0x3c9c]
mulss xmm0, dword [0x10227bac]
cvttss2si eax, xmm0
mov edx, esi
lea ecx, [esp + 0x54]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x27c], xmm0
movss xmm1, dword [esi + 0x74]
movss xmm0, dword [esi + 0x210]
addss xmm1, xmm1
subss xmm0, dword [esi + 0x208]
addss xmm1, dword [esi + 0x5c]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [esi + 0xb4], xmm0
movss xmm1, dword [esi + 0x78]
movss xmm0, dword [esi + 0x214]
addss xmm1, xmm1
subss xmm0, dword [esi + 0x20c]
addss xmm1, dword [esi + 0x60]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [esi + 0xb8], xmm0
call fcn.1001132a
movss xmm0, dword [0x10227c30]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0xac], ecx
mov dword [esi + 0xb0], eax
movss dword [esi + 0xbc], xmm0
movss dword [esi + 0xc0], xmm0
and dword [esi + 0x98], 0
and dword [esi + 0x94], 0
mov eax, dword [edi + 0x3c98]
mov ecx, dword [esi + 0x2a4]
mov eax, dword [eax + 0x30]
push dword [eax + 4]
call fcn.100261d9
push 0
lea edx, [esp + 0x70]
lea ecx, [esp + 0x68]
call fcn.10007e3b
mov al, byte [esi + 0x39d]
pop ecx
xor ecx, ecx
inc ecx
test cl, al
je 0x1000d2ae
test al, 4
je 0x1000d40a
xor edx, edx
mov byte [esp + 0x12], dl
cmp dword [esp + 0x20], edx
je 0x1000d378
test dword [esp + 0x14], 0x4000000
jne 0x1000d378
cmp dword [esp + 0x44], 0x3000000
je 0x1000d378
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x1b8]
cmp ecx, 2
jl 0x1000d340
mov eax, dword [eax + 0x1c0]
mov eax, dword [eax + ecx*4 - 8]
test eax, eax
je 0x1000d340
movss xmm0, dword [eax + 0x48]
addss xmm0, dword [eax + 0x50]
movss xmm3, dword [esi + 0x44]
movss xmm1, dword [esi + 0x48]
movss xmm2, dword [eax + 0x44]
addss xmm3, dword [esi + 0x4c]
comiss xmm0, dword [esi + 0x48]
addss xmm1, dword [esi + 0x50]
addss xmm2, dword [eax + 0x4c]
jbe 0x1000d340
comiss xmm1, dword [eax + 0x48]
jbe 0x1000d340
comiss xmm2, dword [esi + 0x44]
jbe 0x1000d340
comiss xmm3, dword [eax + 0x44]
jbe 0x1000d340
xor eax, eax
inc eax
mov byte [esp + 0x11], al
jmp 0x1000d344
mov byte [esp + 0x11], dl
mov eax, dword [esi + 0x2a4]
imul ecx, dword [eax], 0x28
mov eax, dword [eax + 8]
cmp dword [ecx + eax - 0xc], edx
jne 0x1000d378
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x2a4]
cmp dword [eax + 0x18], edx
je 0x1000d378
cmp byte [esp + 0x11], dl
jne 0x1000d378
xor ecx, ecx
mov dword [esi + 0x2a4], eax
inc ecx
mov byte [esp + 0x12], cl
mov ecx, dword [edi + 0x4aa0]
test ecx, ecx
jne 0x1000d388
mov ecx, dword [edi + 0x4934]
cmp byte [esp + 0x24], dl
jne 0x1000d3b8
test ecx, ecx
je 0x1000d3b2
mov eax, dword [esi + 0x34c]
cmp eax, dword [ecx + 0x34c]
je 0x1000d3b8
mov eax, dword [esi + 0x3b8]
test eax, eax
je 0x1000d3b2
cmp eax, dword [ecx + 0x3b8]
je 0x1000d3b8
mov byte [esp + 0x20], dl
jmp 0x1000d3bf
xor eax, eax
inc eax
mov byte [esp + 0x20], al
movd xmm0, ebx
lea eax, [esp + 0x10c]
mov ebx, dword [esp + 0x48]
lea edx, [esp + 0xd0]
push ecx
cvtdq2ps xmm0, xmm0
mov ecx, ebx
movss dword [esp], xmm0
push eax
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0x30]
call fcn.1000ac57
add esp, 0x14
cmp byte [esp + 0x12], 0
je 0x1000d40e
lea eax, [ebx + 0x2a8]
mov dword [ebx + 0x2a4], eax
jmp 0x1000d40e
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x14]
xor eax, eax
movss xmm3, dword [ebx + 0x6c]
mov edx, ecx
shr edx, 3
inc eax
not dl
xorps xmm4, xmm4
and dl, al
ucomiss xmm3, xmm4
lahf
test ah, 0x44
jp 0x1000d471
mov eax, ecx
and eax, 0x808
cmp eax, 0x800
jne 0x1000d444
movss xmm3, dword [ebx + 0x5c]
jmp 0x1000d447
xorps xmm3, xmm3
movss xmm0, dword [ebx + 0x74]
movss xmm1, dword [ebx + 0x4c]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [ebx + 0x8c]
addss xmm0, dword [ebx + 0x84]
subss xmm1, xmm0
maxss xmm3, xmm1
movss xmm2, dword [ebx + 0x70]
ucomiss xmm2, xmm4
lahf
test ah, 0x44
jp 0x1000d4b7
test dl, dl
je 0x1000d48a
movss xmm2, dword [ebx + 0x60]
jmp 0x1000d48d
xorps xmm2, xmm2
movss xmm0, dword [ebx + 0x78]
movss xmm1, dword [ebx + 0x50]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [ebx + 0x90]
addss xmm0, dword [ebx + 0x88]
subss xmm1, xmm0
maxss xmm2, xmm1
movss xmm1, dword [ebx + 0x74]
lea esi, [ebx + 0x228]
maxss xmm1, dword [ebx + 0x80]
movss xmm0, dword [ebx + 0x208]
lea edi, [ebx + 0x238]
subss xmm0, dword [ebx + 0xac]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi], xmm0
movss xmm1, dword [ebx + 0x78]
movss xmm0, dword [ebx + 0x20c]
subss xmm0, dword [ebx + 0xb0]
maxss xmm1, dword [ebx + 0x80]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x22c], xmm0
addss xmm3, dword [esi]
movss dword [ebx + 0x230], xmm3
addss xmm2, dword [ebx + 0x22c]
movss dword [ebx + 0x234], xmm2
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movss xmm0, dword [ebx + 0x44]
subss xmm0, dword [ebx + 0xac]
addss xmm0, dword [ebx + 0x74]
addss xmm0, dword [ebx + 0x84]
movss dword [ebx + 0x258], xmm0
movss xmm0, dword [ebx + 0x48]
subss xmm0, dword [ebx + 0xb0]
addss xmm0, dword [ebx + 0x78]
addss xmm0, dword [ebx + 0x88]
movss dword [ebx + 0x25c], xmm0
movss xmm1, dword [ebx + 0x6c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x1000d5bf
movss xmm0, dword [ebx + 0x74]
movss xmm1, dword [ebx + 0x4c]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [ebx + 0x8c]
addss xmm0, dword [ebx + 0x84]
subss xmm1, xmm0
addss xmm1, dword [ebx + 0x258]
movss dword [ebx + 0x260], xmm1
movss xmm1, dword [ebx + 0x70]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x1000d603
movss xmm0, dword [ebx + 0x78]
movss xmm1, dword [ebx + 0x50]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [ebx + 0x90]
addss xmm0, dword [ebx + 0x88]
subss xmm1, xmm0
addss xmm1, dword [ebx + 0x25c]
mov esi, dword [esp + 0x1c]
xor edx, edx
inc edx
movss dword [ebx + 0x264], xmm1
movss xmm0, dword [ebx + 0x74]
addss xmm0, dword [ebx + 0x84]
subss xmm0, dword [ebx + 0xac]
movss dword [ebx + 0x16c], xmm0
and dword [ebx + 0x174], 0
and dword [ebx + 0x170], 0
movss xmm3, dword [ebx + 0x44]
movss xmm0, dword [ebx + 0x74]
movss xmm2, dword [ebx + 0x78]
cvtps2pd xmm0, xmm0
cvtps2pd xmm3, xmm3
cvtps2pd xmm2, xmm2
addsd xmm3, xmm0
movss xmm0, dword [ebx + 0xac]
cvtps2pd xmm0, xmm0
subsd xmm3, xmm0
movss xmm0, dword [ebx + 0x84]
cvtps2pd xmm0, xmm0
addsd xmm3, xmm0
movss xmm0, dword [ebx + 0x48]
cvtps2pd xmm0, xmm0
addsd xmm3, qword [0x10227a88]
addsd xmm2, xmm0
movss xmm0, dword [ebx + 0xb0]
cvtps2pd xmm0, xmm0
cvtpd2ps xmm1, xmm3
subsd xmm2, xmm0
movss xmm0, dword [ebx + 0x88]
movss dword [ebx + 0x138], xmm1
cvtps2pd xmm0, xmm0
addsd xmm2, xmm0
cvtpd2ps xmm0, xmm2
movss dword [ebx + 0x13c], xmm0
movss xmm0, dword [ebx + 0x138]
cvtps2pd xmm0, xmm0
subsd xmm3, xmm0
movss xmm0, dword [ebx + 0x13c]
cvtps2pd xmm0, xmm0
cvtpd2ps xmm1, xmm3
subsd xmm2, xmm0
movss dword [ebx + 0x178], xmm1
cvtpd2ps xmm0, xmm2
movss dword [ebx + 0x17c], xmm0
mov eax, dword [ebx + 0x138]
mov ecx, dword [ebx + 0x13c]
mov dword [ebx + 0x128], eax
mov dword [ebx + 0x12c], ecx
mov eax, dword [ebx + 0x138]
mov ecx, dword [ebx + 0x13c]
mov dword [ebx + 0x130], eax
mov dword [ebx + 0x134], ecx
mov eax, dword [ebx + 0x138]
mov ecx, dword [ebx + 0x13c]
mov dword [ebx + 0x140], eax
mov dword [ebx + 0x144], ecx
mov eax, dword [ebx + 0x138]
mov ecx, dword [ebx + 0x13c]
mov dword [ebx + 0x148], eax
mov dword [ebx + 0x14c], ecx
xor ecx, ecx
movups xmmword [ebx + 0x150], xmm4
and dword [ebx + 0x164], 0
and dword [ebx + 0x160], 0
mov word [ebx + 0x168], cx
mov dword [ebx + 0x180], ecx
mov ax, word [ebx + 0x186]
mov word [ebx + 0x184], ax
xor eax, eax
mov word [ebx + 0x186], ax
mov byte [ebx + 0x188], dl
mov byte [ebx + 0x189], cl
movss xmm0, dword [ebx + 0xb8]
comiss xmm0, xmm4
seta al
mov byte [ebx + 0x18a], al
mov byte [ebx + 0x18b], cl
lea edi, [ebx + 0x194]
movss xmm0, dword [esi + 0x3878]
cmp byte [esp + 0x1b], cl
je 0x1000d7da
mov dword [edi + 0x12], ecx
mov dword [edi + 0x16], ecx
cvttss2si eax, xmm0
push edx
mov ecx, edi
mov word [edi + 8], ax
call fcn.1003992a
xor ecx, ecx
mov dword [edi + 0x12], ecx
mov dword [edi + 0x16], ecx
mov eax, dword [edi + 4]
mov dword [edi + 4], ecx
mov dword [edi], eax
mov dword [ebx + 0x1b0], ecx
mov dword [ebx + 0x1b4], ecx
push ecx
lea ecx, [ebx + 0x1b8]
call fcn.1001f138
lea eax, [ebx + 0x280]
xor edx, edx
mov dword [ebx + 0x1c4], eax
xor ecx, ecx
mov eax, dword [esp + 0x28]
inc edx
mov dword [ebx + 0x1c8], ecx
mov dword [ebx + 0x1d0], edx
test eax, eax
je 0x1000d83f
mov eax, dword [eax + 0x1d0]
jmp 0x1000d841
mov eax, edx
mov dword [ebx + 0x1d4], eax
lea edi, [ebx + 0x1e0]
mov eax, dword [ebx + 0x27c]
mov dword [ebx + 0x1d8], eax
mov dword [ebx + 0x1dc], 0xbf800000
cmp dword [edi + 4], ecx
jge 0x1000d87a
push ecx
mov ecx, edi
call fcn.1001f720
push eax
mov ecx, edi
call fcn.1001f0ef
xor ecx, ecx
mov dword [edi], ecx
lea edi, [ebx + 0x1ec]
cmp dword [edi + 4], ecx
jge 0x1000d899
push ecx
mov ecx, edi
call fcn.1001f720
push eax
mov ecx, edi
call fcn.1001f0ef
xor ecx, ecx
mov dword [edi], ecx
mov al, byte [ebx + 0xfc]
test al, al
jle 0x1000d8ad
dec al
mov byte [ebx + 0xfc], al
mov al, byte [ebx + 0xfd]
test al, al
jle 0x1000d8bf
dec al
mov byte [ebx + 0xfd], al
cmp byte [esp + 0x24], 0
je 0x1000d8e5
push 2
pop eax
mov edx, eax
mov ecx, ebx
call fcn.1000df9f
cmp ebx, dword [esi + 0x4934]
jne 0x1000d8e3
xor dl, dl
mov ecx, ebx
call fcn.10013264
xor ecx, ecx
mov edi, dword [esp + 0x5c]
test edi, edi
je 0x1000d92a
mov edx, dword [ebx + 0x30]
cmp byte [edx + 0x47], 0
je 0x1000d92a
mov eax, dword [0x1022d548]
mov eax, dword [eax + 0x48e8]
cmp edx, dword [eax]
je 0x1000d92a
test dword [esi + 0x5c88], 0x100
je 0x1000d922
push dword [ebx + 4]
push str._viewport__Window__s_closed_by_PlatformRequestClose_n
call fcn.1001e266
pop ecx
pop ecx
xor ecx, ecx
mov byte [edi], cl
mov byte [esi + 0x4ab4], cl
xor eax, eax
inc eax
test byte [esp + 0x14], al
jne 0x1000d9a8
test byte [ebx + 0x39d], al
jne 0x1000d9a8
movss xmm1, dword [ebx + 0x80]
lea edx, [esp + 0xe4]
movss xmm0, dword [esp + 0xd0]
mov ecx, ebx
addss xmm0, xmm1
push edi
push dword [esp + 0x64]
movss dword [esp + 0xec], xmm0
movss xmm0, dword [esp + 0xdc]
movss dword [esp + 0xf0], xmm0
movss xmm0, dword [esp + 0xe0]
subss xmm0, xmm1
movss dword [esp + 0xf4], xmm0
movss xmm0, dword [esp + 0xe4]
movss dword [esp + 0xf8], xmm0
call fcn.1000b599
pop ecx
pop ecx
xor eax, eax
mov dword [ebx + 0x268], eax
test byte [esi + 8], 0x40
je 0x1000da19
mov edi, 0x200000
cmp dword [esi + 0x3f40], ebx
jne 0x1000d9e0
mov al, byte [esi + 0x45]
cmp al, byte [esi + 0xde5]
jne 0x1000d9e0
mov eax, dword [ebx + 0x348]
test dword [eax + 0xc], edi
jne 0x1000d9e0
mov ecx, ebx
call fcn.1001d2d7
cmp byte [esi + 0x4acc], 0
je 0x1000da19
test dword [esp + 0x14], edi
jne 0x1000da19
mov eax, dword [esi + 0x3f40]
test eax, eax
je 0x1000da01
cmp dword [eax + 0x348], ebx
je 0x1000da19
cmp ebx, dword [ebx + 0x348]
jne 0x1000da19
test dword [ebx + 0xc], 0x20000000
jne 0x1000da19
mov ecx, ebx
call fcn.1001d3a4
xor eax, eax
inc eax
test byte [ebx + 0x39d], al
je 0x1000da32
mov ecx, dword [ebx + 0x3c4]
lea edx, [ebx + 0x3c8]
jmp 0x1000da56
push 0
lea edx, [esp + 0xdc]
lea ecx, [esp + 0xd4]
call fcn.1000f0ee
pop ecx
xor ecx, ecx
lea edx, [esp + 0xd0]
test al, al
setne cl
mov eax, dword [ebx + 0xa0]
push edx
mov edx, dword [esi + 0x478c]
push ecx
mov ecx, eax
call fcn.100067cc
mov eax, dword [esi + 0x4790]
add esp, 8
test eax, eax
je 0x1000da9b
cmp dword [ebx + 8], eax
je 0x1000da85
cmp dword [ebx + 0xa0], eax
jne 0x1000da9b
call fcn.1001e31a
jmp 0x1000da9b
mov edx, dword [ebx + 0x30]
call fcn.10016ae8
mov ecx, ebx
call fcn.100061b4
mov edx, dword [esp + 0x14]
test edx, 0x20000000
jne 0x1000dac1
xor eax, eax
lea edx, [ebx + 0x220]
inc eax
lea ecx, [ebx + 0x218]
push eax
call fcn.10007e3b
mov edx, dword [esp + 0x18]
pop ecx
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov byte [ebx + 0xe1], cl
inc word [ebx + 0xec]
mov dword [esi + 0x47e8], ecx
cmp eax, dword [esp + 0x4c]
je 0x1000dc7a
mov al, byte [ebx + 0x39d]
test al, 1
je 0x1000db14
test al, 4
jne 0x1000db14
mov eax, dword [ebx + 0x274]
cmp eax, dword [esi + 0x3eb0]
jne 0x1000db0b
xor eax, eax
inc eax
mov byte [ebx + 0x105], al
jmp 0x1000db14
xor eax, eax
inc eax
mov byte [ebx + 0x104], al
test edx, 0x1000000
je 0x1000dbd9
test dl, 0x40
jne 0x1000db9d
cmp byte [ebx + 0xfc], cl
jg 0x1000db9d
cmp byte [ebx + 0xfd], cl
jg 0x1000db9d
test edx, 0x800000
je 0x1000db64
cmp byte [esi + 0x4970], cl
je 0x1000db64
mov eax, dword [esi + 0x4934]
test eax, eax
je 0x1000db64
mov eax, dword [eax + 0x350]
cmp eax, dword [ebx + 0x350]
jne 0x1000db64
xor edx, edx
inc edx
mov al, dl
jmp 0x1000db69
xor edx, edx
mov al, cl
inc edx
cmp byte [esi + 0x5c54], cl
jne 0x1000db9d
test al, al
jne 0x1000db9d
movss xmm0, dword [ebx + 0x1f8]
comiss xmm0, dword [ebx + 0x200]
jae 0x1000db97
movss xmm0, dword [ebx + 0x1fc]
comiss xmm0, dword [ebx + 0x204]
jb 0x1000db9d
mov byte [ebx + 0x104], dl
mov eax, dword [esp + 0x28]
test eax, eax
je 0x1000dbd9
cmp byte [eax + 0xe2], cl
jne 0x1000dbb5
cmp byte [eax + 0x104], cl
jle 0x1000dbc6
xor edx, edx
inc edx
mov byte [ebx + 0x104], dl
cmp byte [eax + 0xe2], cl
jne 0x1000dbce
cmp byte [eax + 0x105], cl
jle 0x1000dbd9
xor eax, eax
inc eax
mov byte [ebx + 0x105], al
jmp 0x1000dbdc
xor eax, eax
inc eax
xorps xmm0, xmm0
comiss xmm0, dword [esi + 0x382c]
jb 0x1000dbee
mov byte [ebx + 0x104], al
cmp byte [ebx + 0x104], cl
jg 0x1000dc0c
cmp byte [ebx + 0x105], cl
jg 0x1000dc0c
mov dl, cl
cmp byte [ebx + 0x106], cl
jg 0x1000dc0e
mov al, cl
jmp 0x1000dc0e
mov dl, al
mov byte [ebx + 0xe6], al
mov al, byte [ebx + 0x107]
test al, al
jle 0x1000dc2d
dec al
mov byte [ebx + 0x107], al
or dword [ebx + 0xc], 0xc0200
cmp byte [ebx + 0xe2], cl
jne 0x1000dc41
cmp byte [ebx + 0xdf], cl
je 0x1000dc41
test dl, dl
je 0x1000dc62
cmp byte [ebx + 0xfc], cl
jg 0x1000dc62
cmp byte [ebx + 0xfd], cl
jg 0x1000dc62
cmp byte [ebx + 0x105], cl
movzx eax, cl
push 1
pop ecx
cmovle eax, ecx
mov cl, al
mov byte [ebx + 0xe4], cl
test cl, cl
je 0x1000dc7a
mov ax, word [ebx + 0x184]
mov word [ebx + 0x186], ax
cmp byte [ebx + 0xe7], 0
jne 0x1000dccd
cmp byte [esi + 0x6c], 0
je 0x1000dc90
cmp dword [esp + 0x50], 0
je 0x1000dca5
cmp byte [esi + 0x6d], 0
je 0x1000dccd
movsx eax, byte [esi + 0x5caa]
cmp eax, dword [esi + 0x3f10]
jne 0x1000dccd
mov al, byte [ebx + 0xfc]
test al, al
jle 0x1000dcb7
inc al
mov byte [ebx + 0xfc], al
mov al, byte [ebx + 0xfd]
test al, al
jle 0x1000dcc9
inc al
mov byte [ebx + 0xfd], al
xor al, al
jmp 0x1000dcd7
cmp byte [ebx + 0xe4], 0
sete al
mov ecx, dword [esp + 0x11c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1004676c
mov esp, ebp
pop ebp
ret