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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xf8
push esi
push edi
mov edi, dword [0x100c68f8]
mov dword [esp + 0x40], edx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x38], edi
mov eax, dword [edi + 0x1a20]
mov byte [eax + 0x78], 1
mov esi, dword [edi + 0x1a20]
mov dword [esp + 0x1c], esi
cmp byte [esi + 0x7b], 0
jne 0x1002689a
mov edx, dword [ebp + 0x10]
mov eax, edx
shr eax, 0xe
mov ecx, edx
not al
shr ecx, 0x14
and eax, 0xffffff01
and ecx, 0xffffff01
mov dword [esp + 0xc], eax
mov eax, edx
shr eax, 0xf
and eax, 0xffffff01
mov dword [esp + 0x24], ecx
mov dword [esp + 0x68], eax
mov eax, edx
shr eax, 0x10
not al
and eax, 0xffffff01
mov dword [esp + 0x3c], eax
test cl, cl
je 0x100266f2
call fcn.1002cd88
push ecx
push dword [esp + 0xe0]
mov ecx, esi
call fcn.1001704f
movss xmm0, dword [0x1004c78c]
mov edx, dword [esp + 0xdc]
push ecx
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0xe8]
mov dword [esp], 0xbf800000
xor eax, eax
push 1
push eax
movss dword [esp + 0xa4], xmm0
call fcn.1001c50d
add esp, 0xc
cmp byte [esp + 0x24], 0
je 0x10026757
mov eax, dword [0x100c68f8]
movss xmm3, dword [eax + 0x1938]
mulss xmm3, dword [0x1004c694]
jmp 0x10026760
movss xmm3, dword [esp + 0xe8]
call fcn.100213cd
movss xmm1, dword [edi + 0x1548]
lea ecx, [esp + 0x88]
mov eax, dword [ebp + 0xc]
movaps xmm2, xmm1
addss xmm2, xmm1
movaps xmm1, xmm0
push dword [eax + 4]
push dword [eax]
addss xmm2, xmm3
call fcn.10017f70
movss xmm0, dword [esp + 0x90]
xorps xmm3, xmm3
movss xmm1, dword [esp + 0x94]
addss xmm1, dword [esi + 0xcc]
movss xmm2, dword [esp + 0xec]
comiss xmm2, xmm3
mov edx, dword [esi + 0xc8]
mov eax, dword [esi + 0xcc]
pop ecx
pop ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
movss dword [esp + 0x54], xmm0
addss xmm0, dword [esi + 0xc8]
movss dword [esp + 0x84], xmm1
movss dword [esp + 0x80], xmm0
jbe 0x100267fa
addss xmm2, dword [edi + 0x155c]
jmp 0x100267fd
xorps xmm2, xmm2
cmp byte [esp + 0x24], 0
addss xmm0, xmm2
mov ecx, dword [esi + 0xcc]
addss xmm1, xmm3
mov eax, ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], eax
mov dword [esp + 0x4c], esi
movss dword [esp + 0xb4], xmm0
movss dword [esp + 0xb8], xmm1
je 0x100268de
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x78]
push eax
mov edx, esi
lea ecx, [esp + 0xb0]
call fcn.10017c5b
movss xmm0, dword [esp + 0x84]
lea edx, [esp + 0x74]
subss xmm0, dword [esp + 0x7c]
mov ecx, esi
movss dword [esp + 0x74], xmm0
movss xmm0, dword [esp + 0x88]
subss xmm0, dword [esp + 0x80]
movss dword [esp + 0x78], xmm0
call fcn.1001d3fc
pop ecx
test al, al
jne 0x100268a2
call fcn.1001d277
call fcn.1002ce99
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x100c68f8]
movss xmm0, dword [esp + 0x88]
mov eax, dword [ecx + 0x1a20]
mov byte [eax + 0x78], 1
mov ecx, dword [ecx + 0x1a20]
mov dword [esp + 0x4c], ecx
subss xmm0, dword [ecx + 0x6c]
mov eax, dword [ecx + 0x134]
or dword [ecx + 0x13c], eax
movss dword [esp + 0x54], xmm0
jmp 0x1002692d
subss xmm1, dword [esp + 0xb0]
subss xmm0, dword [esp + 0xac]
lea ecx, [esp + 0x70]
movss dword [esp + 0x74], xmm1
movss xmm1, dword [edi + 0x1548]
movss dword [esp + 0x70], xmm0
call fcn.100173b2
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x78]
push eax
mov edx, esi
lea ecx, [esp + 0xb0]
call fcn.10017c5b
pop ecx
test al, al
je 0x1002689a
mov edx, esi
lea ecx, [esp + 0x78]
call fcn.10017dc7
mov byte [esp + 0x16], al
test al, al
je 0x1002694a
mov dword [edi + 0x1cfc], 1
cmp byte [esp + 0x68], 0
je 0x100269c8
mov esi, dword [edi + 0x1934]
mov ecx, esi
push 0x2a
call fcn.100405fb
mov ecx, dword [esi]
mov edi, eax
mov eax, dword [esp + 0x38]
mov dword [eax + 0x2be4], ecx
mov ecx, dword [esi + 4]
lea esi, [eax + 0x2be4]
mov dword [esi + 4], ecx
mov ecx, dword [eax + 0x1934]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x38]
mov dword [esi + 8], edx
mov eax, dword [eax + 0x1934]
mov eax, dword [eax + 0x48]
mov dword [esi + 0x48], eax
mov eax, dword [ecx + 0x1934]
mov eax, dword [eax + 0x4c]
mov dword [esi + 0x4c], eax
mov eax, dword [ecx + 0x1934]
mov ecx, esi
mov eax, dword [eax + 0x44]
mov dword [esi + 0x44], eax
mov dword [esi + 0x34], edi
mov eax, dword [edi + 4]
mov dword [esi + 0x38], eax
call fcn.10021481
mov edi, dword [esp + 0x38]
mov eax, dword [ebp + 0x10]
lea esi, [edi + 0x1d80]
mov edx, dword [esp + 0x18]
and eax, 0x440
mov ecx, dword [esp + 0x1c]
neg eax
mov dword [esp + 0x28], esi
sbb al, al
inc al
movzx eax, al
push eax
call fcn.10017ea5
mov dl, al
mov byte [esp + 0x3b], dl
pop ecx
test dl, dl
je 0x10026a60
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x360]
cmp ecx, dword [eax + 0x368]
jne 0x10026a60
mov byte [esp + 0x13], 1
xor ecx, ecx
mov byte [esp + 0x17], cl
cmp byte [esp + 0x16], 0
je 0x10026a2e
cmp byte [edi + 0x3e8], 0
mov byte [esp + 9], 1
jne 0x10026a32
mov byte [esp + 9], cl
cmp byte [esp + 0x24], 0
je 0x10026a77
cmp dword [edi + 0x1a3c], ecx
jne 0x10026a77
mov eax, dword [esp + 0x18]
cmp dword [esi], eax
jne 0x10026a77
push ecx
push ecx
mov ecx, dword [esp + 0x54]
call fcn.100170a6
cmp dword [edi + 0x1a40], eax
jne 0x10026a75
mov cl, 1
jmp 0x10026a77
xor ecx, ecx
mov byte [esp + 0x13], cl
test dl, dl
je 0x10026a15
mov byte [esp + 0x17], 1
mov byte [esp + 0x13], cl
jmp 0x10026a19
xor ecx, ecx
mov eax, dword [edi + 0x1a3c]
mov edx, dword [esp + 0x18]
cmp eax, edx
je 0x10026aac
cmp dword [edi + 0x1b30], edx
je 0x10026a9e
cmp dword [edi + 0x1b24], edx
jne 0x10026aac
cmp dword [edi + 0x1b40], 3
jne 0x10026aac
mov dl, 1
xor ch, ch
mov byte [esp + 8], dl
mov byte [esp + 0xa], ch
jmp 0x10026abe
xor edx, edx
mov ch, dl
mov byte [esp + 8], dl
mov byte [esp + 0xa], ch
cmp eax, dword [esp + 0x18]
je 0x10026ad4
test byte [ebp + 0x10], 0x10
jne 0x10026ac8
test dl, dl
je 0x10026ad4
cmp byte [esp + 0x24], 0
mov byte [esp + 0xb], 1
je 0x10026ad9
mov byte [esp + 0xb], 0
cmp byte [esp + 0x37], 0
mov byte [esp + 0x23], ch
mov byte [esp + 0x36], dl
mov dword [esp + 0x48], 0x80
jne 0x10026b15
cmp byte [esp + 9], 0
jne 0x10026b15
test cl, cl
jne 0x10026b15
test dl, dl
jne 0x10026b15
cmp byte [edi + 0x3e8], cl
je 0x10026ca1
mov byte [esp + 0xa], 1
jmp 0x10026ca1
cmp eax, dword [esp + 0x18]
je 0x10026c71
mov edi, dword [ebp + 8]
lea ecx, [esi + 4]
mov eax, dword [esi + 0x2c]
inc edi
push edi
mov dword [esp + 0x64], eax
call fcn.1002e1db
push edi
lea ecx, [esi + 0x10]
call fcn.1002e128
push dword [esi + 0x10]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x44]
mov edx, edi
mov ecx, dword [esi + 0x18]
call fcn.10015f38
mov edx, dword [esi + 4]
xor eax, eax
pop ecx
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
push eax
push ecx
mov ecx, dword [esi + 0xc]
push edi
call fcn.10016291
mov ecx, dword [esp + 0x38]
mov edx, eax
mov eax, dword [esp + 0x24]
sub ecx, edi
add esp, 0xc
mov dword [esi + 0x2c], edx
mov dword [esi + 0x28], ecx
mov dword [esi + 0xe5c], 0xbe99999a
cmp dword [esi], eax
jne 0x10026bcb
cmp dword [esp + 0x60], edx
jne 0x10026bcb
cmp dword [esi + 0x38], edx
mov eax, edx
cmovl eax, dword [esi + 0x38]
cmp dword [esi + 0x3c], edx
mov dword [esi + 0x38], eax
mov eax, edx
cmovl eax, dword [esi + 0x3c]
cmp dword [esi + 0x40], edx
mov dword [esi + 0x3c], eax
cmovl edx, dword [esi + 0x40]
mov ah, byte [esp + 0xa]
mov dword [esi + 0x40], edx
mov dl, byte [esp + 8]
mov byte [esp + 8], dl
mov edx, dword [esp + 0x24]
mov byte [esp + 0xa], ah
jmp 0x10026c43
and dword [esi + 0x34], 0
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [esi], eax
xor eax, eax
and dword [esi + 0x4c], ecx
mov word [esi + 0xe4e], ax
push 0x63
pop eax
mov word [esi + 0xe50], ax
mov al, dl
xor al, 1
mov dword [esi + 0xe54], ecx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x40], ecx
mov dword [esi + 0x38], ecx
mov cl, byte [esp + 0x36]
mov byte [esi + 0x48], al
mov al, byte [esp + 0x23]
mov dword [esi + 0xe58], 0x3e7
mov dword [esi + 0x44], 0x10000
mov byte [esp + 8], cl
mov byte [esp + 0xa], al
test dl, dl
jne 0x10026c43
mov byte [esp + 8], cl
mov byte [esp + 0xa], al
cmp byte [esp + 0x13], dl
je 0x10026c43
mov byte [esp + 0xb], 1
mov byte [esp + 8], cl
mov byte [esp + 0xa], al
test dword [ebp + 0x10], 0x2000
je 0x10026c50
mov byte [esi + 0x44], 1
mov edi, dword [esp + 0x38]
test dl, dl
jne 0x10026c71
cmp byte [esp + 0x17], dl
jne 0x10026c6c
cmp byte [esp + 9], dl
je 0x10026c71
cmp byte [edi + 0xf1], dl
je 0x10026c71
mov byte [esp + 0xb], 1
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
call fcn.100171ca
call fcn.10017256
mov ecx, edx
call fcn.100211b1
cmp byte [esp + 0x24], 0
jne 0x10026ca1
mov eax, dword [esp + 0x48]
test byte [ebp + 0x10], al
jne 0x10026ca1
or dword [edi + 0x1a50], 0xc
mov eax, dword [esp + 0x18]
xor edx, edx
mov byte [esp + 0x23], dl
mov byte [esp + 0x17], dl
cmp dword [edi + 0x1a3c], eax
jne 0x10026fbd
cmp byte [esp + 0xc], dl
jne 0x10026d2a
cmp byte [edi + 0x1a49], dl
jne 0x10026d2a
mov eax, dword [ebp + 8]
lea ecx, [esi + 4]
inc eax
push eax
call fcn.1002e1db
mov edx, dword [esi + 4]
xor eax, eax
mov esi, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
push eax
push ecx
push dword [esp + 0x48]
mov ecx, dword [esi + 0xc]
call fcn.10016291
mov ecx, dword [esp + 0x38]
mov edx, eax
sub ecx, dword [esp + 0x4c]
add esp, 0xc
cmp dword [esi + 0x38], edx
mov dword [esi + 0x28], ecx
mov ecx, edx
cmovl ecx, dword [esi + 0x38]
cmp dword [esi + 0x3c], edx
mov dword [esi + 0x2c], edx
cmovl eax, dword [esi + 0x3c]
cmp dword [esi + 0x40], edx
mov dword [esi + 0x38], ecx
cmovl edx, dword [esi + 0x40]
mov dword [esi + 0x40], edx
xor edx, edx
mov dword [esi + 0x3c], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x30], eax
cmp byte [edi + 0xe0], 0
mov dword [edi + 0x2ec0], 1
sete al
cmp byte [esp + 0x24], 0
mov byte [edi + 0x1a4a], al
movss xmm5, dword [edi + 0xd8]
subss xmm5, dword [esp + 0x78]
subss xmm5, dword [edi + 0x1544]
addss xmm5, dword [esi + 0x34]
je 0x10026d8a
mov eax, dword [esp + 0x4c]
movss xmm2, dword [edi + 0xdc]
subss xmm2, dword [eax + 0xcc]
subss xmm2, dword [edi + 0x1548]
jmp 0x10026d9a
movss xmm2, dword [edi + 0x1938]
mulss xmm2, dword [0x1004c5d4]
cmp byte [esp + 0xb], 0
mov al, byte [edi + 0xbc]
mov byte [esp + 9], al
jne 0x10026ee6
mov cl, byte [esp + 0x16]
test cl, cl
je 0x10026dc7
test al, al
jne 0x10026e2b
cmp byte [edi + 0x3ed], al
jne 0x10026ee6
cmp byte [edi + 0x3e8], 0
je 0x10026e54
cmp byte [esi + 0xe61], 0
jne 0x10026e54
test cl, cl
je 0x10026f00
cmp byte [esi + 0x48], 0
je 0x10026e04
push edx
mov edx, esi
lea ecx, [esp + 0xb0]
call fcn.1002546b
movss xmm2, dword [esp + 0xbc]
pop ecx
movaps xmm1, xmm5
mov ecx, esi
call fcn.10025677
xor edx, edx
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov byte [esi + 0x47], dl
mov dword [esi + 0xe5c], 0xbe99999a
jmp 0x10026efc
cmp byte [edi + 0x3ed], 0
je 0x10026dc7
mov eax, 0x1000c
mov ecx, esi
push eax
call fcn.100264c0
push 0x3000d
mov ecx, esi
call fcn.100264c0
xor edx, edx
jmp 0x10026efc
cmp byte [edi + 0xe0], 0
je 0x10026f00
cmp byte [esi + 0xe61], 0
jne 0x10026f09
movss xmm0, dword [edi + 0x384]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10026e93
movss xmm0, dword [edi + 0x388]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10026f00
cmp byte [esi + 0x48], 0
je 0x10026eb2
push edx
mov edx, esi
lea ecx, [esp + 0xb0]
call fcn.1002546b
movss xmm2, dword [esp + 0xbc]
pop ecx
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x40]
jne 0x10026ec0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x3c], eax
movaps xmm1, xmm5
mov ecx, esi
call fcn.10025677
mov dword [esi + 0x40], eax
mov dword [esi + 0x38], eax
mov dword [esi + 0xe5c], 0xbe99999a
mov byte [esi + 0xe60], 1
jmp 0x10026e4d
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x3c], edx
mov dword [esi + 0x40], eax
mov dword [esi + 0x38], eax
mov byte [esi + 0x47], dl
mov byte [esi + 0xe61], 1
mov al, byte [esp + 9]
cmp byte [esi + 0xe61], 0
je 0x10026f18
cmp byte [edi + 0xe0], 0
jne 0x10026f18
mov byte [esi + 0xe61], dl
cmp word [edi + 0x2f6], dx
je 0x10026fb9
cmp byte [edi + 0xf1], 0
je 0x10026f37
cmp byte [edi + 0xf3], 0
je 0x10026fa6
test al, al
je 0x10026f44
cmp byte [edi + 0xf4], 0
jne 0x10026fa6
cmp byte [esp + 0xc], 0
je 0x10026fa6
cmp byte [esp + 8], 0
jne 0x10026fa6
lea eax, [edi + 0x2f6]
mov dword [esp + 0x58], edx
mov dword [esp + 0x50], eax
movzx eax, word [eax]
test ax, ax
je 0x10026fa4
mov edx, dword [ebp + 0x10]
push ecx
push ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], eax
call fcn.100264e8
pop ecx
pop ecx
test al, al
je 0x10026f8b
push dword [esp + 0x2c]
mov ecx, esi
call fcn.100264c0
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
inc ecx
add eax, 2
mov dword [esp + 0x58], ecx
mov dword [esp + 0x50], eax
cmp ecx, 0x11
jl 0x10026f60
xor edx, edx
push 8
xor eax, eax
add edi, 0x2f6
pop ecx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
mov byte [esp + 8], dl
mov dword [esp + 0xe0], 0xa
cmp dword [edi + 0x1a3c], eax
jne 0x10027321
cmp byte [edi + 0x1a49], 0
jne 0x10027321
cmp byte [esp + 0xa], 0
jne 0x10027321
mov cl, byte [edi + 0xf2]
xor eax, eax
mov ch, byte [edi + 0xbc]
test cl, cl
mov edx, 0x20000
mov byte [esp + 0x47], ch
cmovne eax, edx
mov dword [esp + 0x30], eax
test ch, ch
je 0x10027064
cmp byte [edi + 0xf4], 0
je 0x1002702b
cmp byte [edi + 0xf1], 0
jne 0x1002702b
xor eax, eax
inc eax
jmp 0x1002702d
xor eax, eax
test eax, eax
jne 0x10027076
xor eax, eax
mov dl, al
mov byte [esp + 0x13], dl
test ch, ch
je 0x100270d2
cmp byte [edi + 0xf4], 0
je 0x10027089
test cl, cl
je 0x10027089
cmp byte [edi + 0xf1], 0
jne 0x10027089
cmp byte [edi + 0xf3], 0
jne 0x10027089
mov al, 1
jmp 0x1002708d
cmp byte [edi + 0xf1], 0
je 0x10027031
cmp byte [edi + 0xf4], 0
jne 0x10027031
cmp byte [edi + 0xf3], 0
jne 0x10027031
test cl, cl
jne 0x10027031
mov dl, 1
xor eax, eax
jmp 0x10027035
test ch, ch
je 0x100270d2
cmp byte [edi + 0xf4], 0
mov cl, byte [edi + 0xf3]
mov byte [esp + 0x14], cl
mov byte [esp + 9], al
je 0x100270e4
cmp byte [edi + 0xf1], 0
mov byte [esp + 0x14], cl
mov byte [esp + 9], al
jne 0x100270e4
mov byte [esp + 0x14], cl
mov byte [esp + 9], al
test cl, cl
jne 0x100270e4
mov byte [esp + 0x14], cl
xor ecx, ecx
mov byte [esp + 0xb], 1
mov byte [esp + 9], al
jmp 0x100270ea
mov al, byte [edi + 0xf1]
xor ecx, ecx
mov byte [esp + 0x14], al
mov byte [esp + 9], cl
jmp 0x100270e6
xor ecx, ecx
mov byte [esp + 0xb], cl
mov al, byte [edi + 0xf1]
test al, al
je 0x10027172
cmp byte [edi + 0xf2], 0
jne 0x10027172
cmp byte [edi + 0xf3], 0
jne 0x10027172
cmp byte [edi + 0xf4], 0
jne 0x10027172
mov dh, 1
mov byte [esp + 0x15], cl
mov eax, dword [0x100c68f8]
test dl, dl
je 0x10027135
mov ecx, dword [eax + 0x7c]
test ecx, ecx
js 0x10027135
mov dl, 1
call fcn.1001c86f
test al, al
jne 0x1002714e
mov eax, dword [0x100c68f8]
cmp byte [esp + 0x15], 0
je 0x1002719b
mov ecx, dword [eax + 0x5c]
test ecx, ecx
js 0x1002719b
mov dl, 1
call fcn.1001c86f
test al, al
je 0x1002719b
cmp byte [esp + 0xc], 0
je 0x1002719b
cmp byte [esp + 0x68], 0
jne 0x1002719b
cmp byte [esp + 0x24], 0
je 0x1002716b
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x40]
je 0x1002719b
mov byte [esp + 0x16], 1
jmp 0x100271a1
cmp byte [edi + 0xf2], 0
mov dh, cl
je 0x10027111
test al, al
jne 0x10027111
cmp byte [edi + 0xf3], al
jne 0x10027111
cmp byte [edi + 0xf4], al
jne 0x10027111
mov byte [esp + 0x15], 1
jmp 0x10027115
xor eax, eax
mov byte [esp + 0x16], al
cmp byte [esp + 0x13], 0
mov eax, dword [0x100c68f8]
je 0x100271c4
mov ecx, dword [eax + 0x74]
test ecx, ecx
js 0x100271c4
mov dl, 1
call fcn.1001c86f
test al, al
jne 0x100271da
mov eax, dword [0x100c68f8]
test dh, dh
je 0x100271f7
mov ecx, dword [eax + 0x58]
test ecx, ecx
js 0x100271f7
mov dl, 1
call fcn.1001c86f
test al, al
je 0x100271f7
cmp byte [esp + 0x68], 0
jne 0x100271f7
cmp byte [esp + 0x24], 0
je 0x100271f0
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x40]
je 0x100271f7
mov byte [esp + 0x36], 1
jmp 0x100271fd
xor eax, eax
mov byte [esp + 0x36], al
mov dh, byte [esp + 0x13]
mov eax, dword [0x100c68f8]
test dh, dh
je 0x10027221
mov ecx, dword [eax + 0x78]
test ecx, ecx
js 0x10027221
mov dl, 1
call fcn.1001c86f
test al, al
jne 0x1002723a
mov eax, dword [0x100c68f8]
cmp byte [esp + 0x15], 0
je 0x10027248
mov ecx, dword [eax + 0x58]
test ecx, ecx
js 0x10027248
mov dl, 1
call fcn.1001c86f
test al, al
je 0x10027248
cmp byte [esp + 0xc], 0
je 0x10027248
mov byte [esp + 0x37], 1
jmp 0x1002724e
xor eax, eax
mov byte [esp + 0x37], al
test dh, dh
je 0x10027280
mov eax, dword [0x100c68f8]
mov ecx, dword [eax + 0x84]
test ecx, ecx
js 0x10027280
mov dl, 1
call fcn.1001c86f
test al, al
je 0x10027280
cmp byte [esp + 0xc], 0
je 0x10027280
cmp byte [esp + 0x3c], 0
je 0x10027280
mov byte [esp + 0x15], dl
jmp 0x1002728a
xor eax, eax
mov byte [esp + 0x15], al
test dh, dh
je 0x100272a4
mov eax, dword [0x100c68f8]
mov ecx, dword [eax + 0x80]
test ecx, ecx
js 0x100272a9
mov dl, 1
call fcn.1001c86f
test al, al
jne 0x100272c5
mov eax, dword [0x100c68f8]
cmp byte [esp + 9], 0
je 0x100272d7
mov ecx, dword [eax + 0x84]
test ecx, ecx
js 0x100272d7
mov dl, 1
call fcn.1001c86f
test al, al
je 0x100272d7
cmp byte [esp + 0xc], 0
je 0x100272d7
cmp byte [esp + 0x3c], 0
je 0x100272d7
mov dh, 1
jmp 0x100272db
xor eax, eax
mov dh, al
mov eax, dword [0x100c68f8]
mov ecx, dword [eax + 0x38]
test ecx, ecx
js 0x100273fc
mov dl, 1
call fcn.1001c86f
test al, al
je 0x100273f7
mov eax, 0x10000
lea ecx, [eax + 0xc]
lea edx, [eax + 4]
cmp byte [esp + 0x14], 0
cmovne eax, ecx
cmp byte [esp + 0xb], 0
cmovne eax, edx
or eax, dword [esp + 0x30]
push eax
mov ecx, esi
call fcn.100264c0
mov cl, byte [esp + 8]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
cmp dword [edi + 0x1a3c], eax
jne 0x10027b51
test cl, cl
je 0x10027386
test dl, dl
je 0x10027371
push dword [ebp + 8]
push dword [esi + 0x18]
push dword [esp + 0x48]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x1002736d
push dword [ebp + 8]
mov edx, dword [esi + 0x18]
mov ecx, dword [esp + 0x44]
call fcn.10015f38
pop ecx
mov byte [esp + 0x23], 1
mov edx, dword [esp + 0xc]
cmp byte [esp + 0x17], 0
je 0x10027b51
test byte [ebp + 0x10], 0x20
je 0x10027b51
test dl, dl
je 0x100273b2
mov edi, dword [esp + 0x28]
lea ecx, [esi + 0x1c]
mov eax, dword [edi + 4]
shl eax, 2
push eax
call fcn.1002e128
mov edx, dword [esi + 0x1c]
xor eax, eax
mov esi, edi
push eax
push dword [edi + 0xc]
mov ecx, dword [esi + 0x24]
call fcn.100163f1
pop ecx
pop ecx
mov edx, dword [ebp + 0x10]
test edx, 0x1c0
je 0x10027b01
mov edi, dword [0x100c68f8]
test dl, 0x40
je 0x10027942
mov ecx, dword [edi + 0x34]
test ecx, ecx
js 0x10027942
mov dl, 1
call fcn.1001c86f
mov edx, dword [ebp + 0x10]
test al, al
je 0x10027942
push 0x40
pop eax
xor ecx, ecx
jmp 0x10027994
mov eax, dword [0x100c68f8]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
js 0x10027423
mov dl, 1
call fcn.1001c86f
test al, al
je 0x1002741e
mov eax, 0x10001
lea ecx, [eax + 0xc]
lea edx, [eax + 4]
jmp 0x10027305
mov eax, dword [0x100c68f8]
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x10027494
mov dl, 1
call fcn.1001c86f
test al, al
je 0x1002748f
cmp byte [esp + 0x24], 0
je 0x1002748f
cmp byte [edi + 0xf1], 0
je 0x1002747e
mov eax, dword [esp + 0x4c]
xorps xmm2, xmm2
movss xmm1, dword [eax + 0x58]
movaps xmm0, xmm1
subss xmm0, dword [edi + 0x1938]
addss xmm1, dword [eax + 0xe4]
maxss xmm0, xmm2
subss xmm1, xmm0
movss dword [eax + 0x58], xmm0
movss dword [eax + 0xe4], xmm1
jmp 0x10027321
movzx eax, byte [esp + 0xb]
lea eax, [eax*4 + 0x10002]
jmp 0x10027315
mov eax, dword [0x100c68f8]
mov ecx, dword [eax + 0x44]
test ecx, ecx
js 0x1002752b
mov dl, 1
call fcn.1001c86f
test al, al
je 0x10027526
cmp byte [esp + 0x24], 0
je 0x10027526
cmp byte [edi + 0xf1], 0
je 0x10027515
mov eax, dword [0x100c68f8]
mov ecx, dword [esp + 0x4c]
mov eax, dword [eax + 0x1a20]
movss xmm3, dword [ecx + 0x58]
movaps xmm2, xmm3
addss xmm2, dword [edi + 0x1938]
movss xmm0, dword [eax + 0x20]
subss xmm0, dword [eax + 0x70]
movss xmm1, dword [eax + 0x30]
addss xmm3, dword [ecx + 0xe4]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
minss xmm2, xmm0
subss xmm3, xmm2
movss dword [ecx + 0x58], xmm2
movss dword [ecx + 0xe4], xmm3
jmp 0x10027321
movzx eax, byte [esp + 0xb]
lea eax, [eax*4 + 0x10003]
jmp 0x10027315
mov eax, dword [0x100c68f8]
mov ecx, dword [eax + 0x50]
test ecx, ecx
js 0x10027559
mov dl, 1
call fcn.1001c86f
test al, al
je 0x10027554
mov eax, 0x10004
lea ecx, [eax + 2]
cmp byte [edi + 0xf1], 0
cmovne eax, ecx
jmp 0x10027315
mov eax, dword [0x100c68f8]
mov ecx, dword [eax + 0x54]
test ecx, ecx
js 0x1002757a
mov dl, 1
call fcn.1001c86f
test al, al
je 0x10027575
mov eax, 0x10005
lea ecx, [eax + 2]
jmp 0x10027545
mov eax, dword [0x100c68f8]
mov ecx, dword [eax + 0x5c]
test ecx, ecx
js 0x100275a8
mov dl, 1
call fcn.1001c86f
test al, al
je 0x100275a3
cmp byte [esp + 0xc], 0
je 0x100275a3
mov ecx, dword [esp + 0x30]
or ecx, 0x10008
push ecx
jmp 0x1002731a
mov eax, dword [0x100c68f8]
mov ecx, dword [eax + 0x60]
test ecx, ecx
js 0x10027616
mov dl, 1
call fcn.1001c86f
test al, al
je 0x10027611
cmp byte [esp + 0xc], 0
je 0x10027611
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x40]
jne 0x10027605
cmp byte [esp + 0x14], 0
je 0x100275d7
push 0x3000c
jmp 0x100275fe
cmp byte [esp + 0x47], 0
je 0x10027605
cmp byte [edi + 0xf4], 0
je 0x10027605
cmp byte [edi + 0xf3], 0
jne 0x10027605
cmp byte [edi + 0xf1], 0
jne 0x10027605
push 0x30004
mov ecx, esi
call fcn.100264c0
mov ecx, dword [esp + 0x30]
or ecx, 0x10009
jmp 0x1002759d
mov eax, dword [0x100c68f8]
mov ecx, dword [eax + 0x68]
test ecx, ecx
js 0x10027691
mov dl, 1
call fcn.1001c86f
test al, al
je 0x1002768c
mov eax, dword [ebp + 0x10]
shr eax, 0xb
and al, dl
cmp byte [esp + 0x24], 0
je 0x10027645
mov cl, byte [edi + 0xf1]
test al, al
je 0x10027654
test cl, cl
jne 0x10027658
mov byte [esp + 0xa], 1
mov byte [esp + 0x17], 1
jmp 0x10027321
test cl, cl
jne 0x10027645
mov edx, dword [esp + 0xc]
test dl, dl
je 0x10027939
push 0xa
pop eax
mov dword [esp + 0x2c], eax
mov edx, dword [ebp + 0x10]
push ecx
push ecx
lea ecx, [esp + 0x34]
call fcn.100264e8
pop ecx
pop ecx
test al, al
je 0x10027321
push dword [esp + 0x2c]
jmp 0x1002731a
mov eax, dword [0x100c68f8]
test dword [ebp + 0x10], 0x400
je 0x100276d8
mov ecx, dword [eax + 0x34]
test ecx, ecx
js 0x100276d8
mov dl, 1
call fcn.1001c86f
test al, al
je 0x100276d8
cmp byte [edi + 0xf1], 0
jne 0x100276d8
cmp byte [edi + 0xf2], 0
jne 0x100276d8
cmp byte [edi + 0xf3], 0
jne 0x100276d8
cmp byte [esp + 0xc], 0
je 0x100276d8
mov dword [esp + 0x2c], 9
jmp 0x1002766b
mov eax, dword [0x100c68f8]
mov ecx, dword [eax + 0x6c]
test ecx, ecx
js 0x100276ff
mov dl, 1
call fcn.1001c86f
test al, al
je 0x100276fa
mov cl, dl
mov byte [esp + 0xa], cl
jmp 0x10027325
mov eax, dword [0x100c68f8]
mov cl, byte [esp + 0x15]
test cl, cl
jne 0x10027918
test dh, dh
jne 0x10027918
cmp byte [esp + 0x13], dh
je 0x10027747
mov ecx, dword [eax + 0x70]
test ecx, ecx
js 0x10027747
mov dl, 1
call fcn.1001c86f
test al, al
je 0x10027747
mov eax, dword [esi + 0x2c]
xor ecx, ecx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x40], eax
mov dword [esi + 0x38], eax
mov byte [esi + 0x47], cl
mov byte [esi + 0xe60], dl
jmp 0x10027321
mov al, byte [esp + 0x16]
test al, al
jne 0x10027861
cmp byte [esp + 0x36], al
jne 0x10027861
cmp byte [esp + 0x37], al
je 0x10027321
mov eax, dword [0x100c68f8]
mov ecx, dword [eax + 0xc0]
test ecx, ecx
je 0x1002778d
push dword [eax + 0xc8]
call ecx
mov dword [esp + 0x20], eax
pop ecx
test eax, eax
je 0x10027321
jmp 0x10027796
mov eax, 0x100473e0
mov dword [esp + 0x1c], eax
mov ecx, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002779b
sub ecx, edx
lea ecx, [ecx*2 + 2]
call fcn.10018031
mov edx, eax
xor eax, eax
mov ecx, eax
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], ecx
cmp byte [eax], cl
je 0x10027827
mov edi, eax
mov esi, ecx
xor eax, eax
lea ecx, [esp + 0x1c]
push eax
mov edx, edi
call fcn.10016115
add edi, eax
cmp dword [esp + 0x20], 0
pop ecx
je 0x10027813
cmp dword [esp + 0x1c], 0x10000
jae 0x1002780e
mov edx, dword [ebp + 0x10]
push ecx
push ecx
lea ecx, [esp + 0x24]
call fcn.100264e8
pop ecx
pop ecx
test al, al
je 0x1002780e
mov ecx, dword [esp + 0x3c]
mov ax, word [esp + 0x1c]
mov word [ecx + esi*2], ax
inc esi
cmp byte [edi], 0
jne 0x100277ca
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
xor eax, eax
mov word [edx + ecx*2], ax
test ecx, ecx
jle 0x1002784a
push ecx
push edx
lea edx, [esi + 0x38]
mov ecx, esi
call fcn.1002645f
mov edx, dword [esp + 0x44]
pop ecx
pop ecx
mov byte [esi + 0xe60], 1
test edx, edx
je 0x10027854
dec dword [0x100fd210]
push edx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
jmp 0x10027321
xor edx, edx
cmp dword [edi + 0xc4], edx
je 0x100278d2
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x40]
cmp ecx, eax
je 0x1002787f
mov edx, eax
cmovge eax, ecx
cmovl edx, ecx
jmp 0x10027882
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x2c], eax
lea ecx, [esi + 0x1c]
sub eax, edx
mov dword [esp + 0x58], edx
lea eax, [eax*4 + 1]
push eax
call fcn.1002e128
mov eax, dword [esp + 0x28]
mov edx, dword [esi + 0x1c]
mov esi, dword [esp + 0x28]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x2c]
lea eax, [ecx + eax*2]
push eax
mov eax, dword [esp + 0x5c]
lea eax, [ecx + eax*2]
mov ecx, dword [esi + 0x24]
push eax
call fcn.100163f1
pop ecx
pop ecx
mov ecx, dword [esi + 0x24]
call fcn.10018040
mov al, byte [esp + 0x16]
xor edx, edx
test al, al
je 0x10027321
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x40]
jne 0x100278f1
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x3c], edx
mov dword [esi + 0x40], eax
mov dword [esi + 0x38], eax
mov byte [esi + 0x47], dl
mov byte [esi + 0xe60], 1
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x40]
je 0x10027321
lea edx, [esi + 0x38]
mov ecx, esi
call fcn.1002592c
xor eax, eax
mov byte [esi + 0x47], al
jmp 0x10027321
movzx eax, cl
mov ecx, esi
xor eax, 1
add eax, 0x1000a
push eax
call fcn.100264c0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x40], eax
mov dword [esi + 0x3c], eax
jmp 0x10027321
mov cl, byte [esp + 8]
jmp 0x10027329
mov eax, dword [esp + 0x48]
test al, dl
je 0x10027984
mov ecx, dword [edi + 0x40]
test ecx, ecx
js 0x10027967
mov dl, 1
call fcn.1001c86f
mov edx, dword [ebp + 0x10]
test al, al
je 0x10027967
mov eax, dword [esp + 0x48]
push 3
jmp 0x10027993
mov ecx, dword [edi + 0x44]
test ecx, ecx
js 0x10027984
mov dl, 1
call fcn.1001c86f
mov edx, dword [ebp + 0x10]
test al, al
je 0x10027984
mov eax, dword [esp + 0x48]
push 4
jmp 0x10027993
mov ecx, 0x100
push 0
test ecx, edx
pop eax
cmovne eax, ecx
push 0x15
pop ecx
test eax, eax
je 0x10027b01
mov dword [esp + 0xac], eax
xor edi, edi
mov al, byte [esp + 0xc]
xor al, 1
mov dword [esp + 0xb0], edx
mov byte [esp + 0xb8], al
xor edx, edx
mov eax, dword [esi + 0x24]
mov dword [esp + 0xc0], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0xc4], eax
mov eax, dword [esi + 0x30]
mov esi, dword [esi + 0xc]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xbc], ecx
mov ecx, esi
mov byte [esp + 0xcc], dl
mov eax, dword [eax + 0x38]
mov word [esp + 0xb9], di
mov byte [esp + 0xbb], 0
mov word [esp + 0xcd], di
lea edx, [esi + eax*2]
mov byte [esp + 0xcf], 0
call fcn.1001645b
mov edi, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xd0], edi
mov ecx, dword [eax + 0x3c]
lea edx, [esi + ecx*2]
mov ecx, esi
call fcn.1001645b
mov dword [esp + 0x60], eax
mov ecx, esi
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x40]
lea edx, [esi + edx*2]
call fcn.1001645b
mov dword [esp + 0x5c], eax
mov dword [esp + 0xd8], eax
lea eax, [esp + 0xac]
push eax
xor eax, eax
call eax
pop ecx
mov ecx, dword [esp + 0xd0]
cmp ecx, edi
mov edi, dword [esp + 0xc0]
je 0x10027a95
lea edx, [ecx + edi]
mov ecx, edi
call fcn.100162f3
mov esi, dword [esp + 0x28]
mov dword [esi + 0x38], eax
jmp 0x10027a99
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0xd4]
cmp eax, dword [esp + 0x60]
je 0x10027ab3
lea edx, [eax + edi]
mov ecx, edi
call fcn.100162f3
mov dword [esi + 0x3c], eax
mov eax, dword [esp + 0xd8]
cmp eax, dword [esp + 0x5c]
je 0x10027acd
lea edx, [eax + edi]
mov ecx, edi
call fcn.100162f3
mov dword [esi + 0x40], eax
cmp byte [esp + 0xcc], 0
je 0x10027b01
mov edx, dword [esi + 4]
xor eax, eax
push eax
push ecx
mov ecx, dword [esi + 0xc]
push edi
call fcn.10016291
mov dword [esi + 0x2c], eax
add esp, 0xc
mov eax, dword [esp + 0xc4]
mov dword [esi + 0x28], eax
mov dword [esi + 0xe5c], 0xbe99999a
cmp byte [esp + 0xc], 0
je 0x10027b4d
mov edi, dword [esp + 0x40]
mov ecx, edi
mov eax, dword [esi + 0x24]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10027b31
test dl, dl
je 0x10027b2d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10027b31
add eax, 2
add ecx, 2
test dl, dl
jne 0x10027b11
xor eax, eax
jmp 0x10027b36
sbb eax, eax
or eax, 1
test eax, eax
je 0x10027b4d
push dword [ebp + 8]
mov edx, dword [esi + 0x24]
mov ecx, edi
call fcn.10015f38
pop ecx
mov byte [esp + 0x23], 1
mov edi, dword [esp + 0x38]
cmp byte [esp + 0xa], 0
mov edx, dword [esp + 0x18]
je 0x10027b71
cmp dword [edi + 0x1a3c], edx
jne 0x10027b87
xor edx, edx
xor ecx, ecx
call fcn.100171ca
mov edx, dword [esp + 0x18]
cmp dword [edi + 0x1a3c], edx
jne 0x10027b87
cmp byte [esp + 0xc], 0
je 0x10027b87
mov eax, dword [esi + 0x24]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x24]
test cl, cl
jne 0x10027be3
push 1
lea ecx, [esp + 0x7c]
call fcn.1001c2f2
movss xmm1, dword [0x1004c600]
pop ecx
push 7
pop ecx
call fcn.10016605
push dword [esp + 0x84]
movss xmm2, dword [edi + 0x154c]
mov dl, 1
push dword [esp + 0x84]
mov ecx, eax
push dword [esp + 0x84]
push dword [esp + 0x84]
call fcn.1001bf1b
mov edx, dword [esp + 0x28]
add esp, 0x10
mov ecx, dword [esp + 0x24]
movss xmm1, dword [esp + 0x78]
movss xmm3, dword [esp + 0x54]
movaps xmm0, xmm1
movss xmm2, dword [esp + 0x7c]
addss xmm0, xmm3
movss dword [esp + 0x9c], xmm1
movss dword [esp + 0xa0], xmm2
movss dword [esp + 0xa4], xmm0
movss xmm0, dword [esp + 0x8c]
addss xmm0, xmm2
movss dword [esp + 0xa8], xmm0
test cl, cl
je 0x10027c55
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + 0xc8]
mov ecx, dword [ecx + 0xcc]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xac], eax
jmp 0x10027c7a
addss xmm1, dword [edi + 0x1544]
movaps xmm0, xmm2
addss xmm0, dword [edi + 0x1548]
movss dword [esp + 0xac], xmm1
movss dword [esp + 0xb0], xmm0
lea eax, [esp + 0xac]
xorps xmm7, xmm7
xorps xmm2, xmm2
movss xmm5, dword [eax + 4]
movss xmm0, dword [eax]
mov dword [esp + 0x28], eax
movss dword [esp + 0x70], xmm0
movss dword [esp + 0x30], xmm5
movss dword [esp + 0x74], xmm5
movss dword [esp + 0x58], xmm2
movss dword [esp + 0x2c], xmm7
cmp dword [esi], edx
jne 0x10027cd3
test cl, cl
je 0x10027cd3
push ecx
push ecx
mov ecx, dword [esp + 0x54]
call fcn.100170a6
cmp dword [edi + 0x1a3c], eax
jne 0x10027cd3
mov al, 1
xor edx, edx
jmp 0x10027cd7
xor edx, edx
mov al, dl
mov ecx, dword [esp + 0x18]
cmp dword [edi + 0x1a3c], ecx
je 0x10027d95
test al, al
jne 0x10027d95
mov esi, edx
cmp byte [esp + 0x24], al
je 0x10027d40
mov eax, dword [esp + 0x40]
mov ecx, edx
mov dl, byte [eax]
lea esi, [eax + 1]
jmp 0x10027d12
cmp dl, 0xa
lea eax, [ecx + 1]
mov dl, byte [esi]
cmovne eax, ecx
inc esi
mov ecx, eax
test dl, dl
jne 0x10027d04
dec esi
mov al, byte [esi]
cmp al, 0xa
je 0x10027d22
cmp al, 0xd
je 0x10027d22
inc ecx
movd xmm0, ecx
movaps xmm2, xmm3
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x58], xmm2
mulss xmm0, dword [edi + 0x1938]
movss dword [esp + 0x2c], xmm0
movss xmm1, dword [0x1004c600]
xor ecx, ecx
call fcn.10016605
movss xmm2, dword [edi + 0x1938]
lea ecx, [esp + 0x9c]
xor edx, edx
cmp byte [esp + 0x24], dl
cmovne ecx, edx
push ecx
push ecx
and dword [esp], edx
push esi
mov esi, dword [esp + 0x4c]
push esi
push eax
lea eax, [esp + 0x84]
push eax
mov eax, dword [esp + 0x64]
push dword [edi + 0x1934]
mov ecx, dword [eax + 0x27c]
call fcn.1003e999
jmp 0x1002852d
mov edx, dword [esi + 0xc]
xor ecx, ecx
mov eax, dword [esi + 0x38]
inc ecx
movss xmm0, dword [edi + 0x18]
addss xmm0, dword [esi + 0xe5c]
or dword [esp + 0x3c], 0xffffffff
lea eax, [edx + eax*2]
mov dword [esp + 0x48], edx
mov dword [esp + 0x6c], eax
xor eax, eax
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x40]
movss dword [esi + 0xe5c], xmm0
movss dword [esp + 0x5c], xmm7
movss dword [esp + 0xfc], xmm7
mov dword [esp + 0x18], 0xfffffc19
cmp dword [esi + 0x3c], eax
je 0x10027dfb
cmovl eax, dword [esi + 0x3c]
or dword [esp + 0x18], 0xffffffff
push 2
pop ecx
lea eax, [edx + eax*2]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x24]
movzx eax, al
add ecx, eax
mov dword [esp + 0x60], edx
movzx edx, word [edx]
xor eax, eax
mov dword [esp + 0x1c], eax
test dx, dx
je 0x10027e7e
mov esi, dword [esp + 0x1c]
mov eax, edx
mov edx, dword [esp + 0x60]
push 0xa
pop edi
cmp ax, di
mov edi, dword [esp + 0x18]
jne 0x10027e5b
inc esi
cmp dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x1c], esi
jne 0x10027e47
cmp edx, dword [esp + 0x6c]
jb 0x10027e47
dec ecx
mov dword [esp + 0x3c], esi
test ecx, ecx
jle 0x10027e70
cmp edi, 0xffffffff
jne 0x10027e5b
cmp edx, dword [esp + 0x50]
jb 0x10027e5b
dec ecx
mov dword [esp + 0x18], esi
test ecx, ecx
jle 0x10027e70
add edx, 2
movzx eax, word [edx]
mov esi, eax
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x1c]
test ax, ax
jne 0x10027e20
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
lea esi, [edi + 0x1d80]
mov ecx, dword [esp + 0x18]
inc eax
cmp dword [esp + 0x3c], 0xffffffff
mov edx, eax
mov dword [esp + 0x1c], eax
cmovne edx, dword [esp + 0x3c]
cmp ecx, 0xffffffff
mov dword [esp + 0xec], edx
cmove ecx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x6c]
mov edx, ecx
cmp ecx, eax
jbe 0x10027ed1
push 0xa
pop edi
lea esi, [edx - 2]
mov dword [esp + 0x60], esi
cmp word [esi], di
je 0x10027ec7
mov edx, esi
cmp edx, eax
ja 0x10027eb5
mov edi, dword [esp + 0x38]
lea esi, [edi + 0x1d80]
xor eax, eax
push eax
push ecx
push eax
push ecx
lea ecx, [esp + 0x70]
call fcn.10025357
movd xmm3, dword [esp + 0xfc]
add esp, 0x10
cmp dword [esp + 0x18], 0
movss xmm0, dword [edi + 0x1938]
movss xmm1, dword [eax]
cvtdq2ps xmm3, xmm3
movss dword [esp + 0x3c], xmm1
mulss xmm3, xmm0
movss dword [esp + 0x60], xmm3
jl 0x10027f8b
mov ecx, dword [esp + 0x50]
mov edx, ecx
mov eax, dword [esp + 0x48]
cmp ecx, eax
jbe 0x10027f42
push 0xa
pop edi
lea esi, [edx - 2]
mov dword [esp + 0xec], esi
cmp word [esi], di
je 0x10027f38
mov edx, esi
cmp edx, eax
ja 0x10027f23
mov edi, dword [esp + 0x38]
lea esi, [edi + 0x1d80]
xor eax, eax
push eax
push ecx
push eax
push ecx
lea ecx, [esp + 0xfc]
call fcn.10025357
movd xmm6, dword [esp + 0x28]
add esp, 0x10
movss xmm3, dword [esp + 0x60]
movss xmm1, dword [esp + 0x3c]
movss xmm0, dword [eax]
cvtdq2ps xmm6, xmm6
movss dword [esp + 0xfc], xmm0
movss xmm0, dword [edi + 0x1938]
mulss xmm6, xmm0
movss dword [esp + 0x5c], xmm6
mov ecx, dword [esp + 0x24]
movss xmm4, dword [esp + 0x54]
test cl, cl
je 0x10027fb5
movd xmm6, dword [esp + 0x1c]
movaps xmm2, xmm4
cvtdq2ps xmm6, xmm6
movss dword [esp + 0x58], xmm2
mulss xmm6, xmm0
movss dword [esp + 0x2c], xmm6
cmp byte [esi + 0xe60], 0
je 0x1002806b
test dword [ebp + 0x10], 0x1000
jne 0x1002800c
movss xmm2, dword [esi + 0x34]
movaps xmm0, xmm4
comiss xmm2, xmm1
mulss xmm0, dword [0x1004c5c0]
jbe 0x10027fed
subss xmm1, xmm0
movaps xmm0, xmm7
maxss xmm0, xmm1
jmp 0x10027ffa
subss xmm1, xmm4
comiss xmm1, xmm2
jb 0x10028010
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x34], xmm0
jmp 0x10028010
and dword [esi + 0x34], 0
test cl, cl
je 0x1002806b
mov eax, dword [esp + 0x4c]
movaps xmm1, xmm3
subss xmm1, dword [edi + 0x1938]
movss xmm5, dword [eax + 0x58]
comiss xmm5, xmm1
jbe 0x10028036
movaps xmm0, xmm7
maxss xmm0, xmm1
jmp 0x10028046
movaps xmm0, xmm3
subss xmm0, dword [esp + 0x8c]
maxss xmm0, xmm5
subss xmm5, xmm0
movss dword [eax + 0x58], xmm0
addss xmm5, dword [eax + 0xcc]
movss dword [esp + 0x30], xmm5
movss dword [eax + 0xcc], xmm5
movss dword [esp + 0x74], xmm5
movss xmm0, dword [esi + 0x34]
xor eax, eax
mov edx, dword [esi + 0x3c]
mov ecx, dword [esi + 0x40]
mov byte [esi + 0xe60], al
movss dword [esp + 0x1c], xmm0
cmp edx, ecx
je 0x10028314
mov esi, dword [esp + 0x48]
mov eax, ecx
cmovl eax, edx
cmovge ecx, edx
cmp byte [esp + 0x24], 0
lea eax, [esi + eax*2]
mov dword [esp + 0xec], eax
mov eax, esi
lea eax, [eax + ecx*2]
mov dword [esp + 0x50], eax
je 0x100280c3
movss dword [esp + 0x98], xmm7
movss dword [esp + 0x6c], xmm7
jmp 0x100280d1
movss xmm0, dword [0x1004c644]
movss dword [esp + 0x6c], xmm0
movss xmm1, dword [0x1004c600]
push 0x2f
pop ecx
call fcn.10016605
mov ecx, dword [esp + 0x28]
lea esi, [edi + 0x1d80]
mov edx, dword [esp + 0x50]
movaps xmm6, xmm5
addss xmm6, dword [esp + 0x5c]
mov dword [esp + 0x48], eax
movss xmm7, dword [ecx]
addss xmm7, dword [esp + 0xfc]
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x54], ecx
subss xmm6, dword [0x1004c560]
subss xmm7, dword [esp + 0x1c]
movss dword [esp + 0x5c], xmm6
cmp ecx, edx
jae 0x10028311
movss xmm2, dword [esp + 0xa8]
movss xmm4, dword [esp + 0xa0]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x48]
movaps xmm0, xmm2
addss xmm0, dword [edi + 0x1938]
comiss xmm6, xmm0
ja 0x10028305
comiss xmm4, xmm6
jbe 0x1002818c
cmp ecx, edx
jae 0x100282e5
mov ax, word [ecx]
add ecx, 2
mov dword [esp + 0x54], ecx
cmp ax, word [esp + 0xe0]
je 0x100282e1
cmp ecx, edx
jb 0x1002816b
jmp 0x100282e1
push 1
push ecx
lea eax, [esp + 0x5c]
push eax
push edx
mov edx, ecx
lea ecx, [esp + 0x98]
call fcn.10025357
movss xmm1, dword [esp + 0x98]
xorps xmm2, xmm2
add esp, 0x10
comiss xmm2, xmm1
jb 0x100281f1
mov eax, dword [edi + 0x1934]
cmp dword [eax + 0x1c], 0x20
jle 0x100281d0
mov eax, dword [eax + 0x24]
movss xmm0, dword [eax + 0x80]
jmp 0x100281d5
movss xmm0, dword [eax + 0x38]
mulss xmm0, dword [0x1004c5d4]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss dword [esp + 0x88], xmm1
movss xmm3, dword [esp + 0x98]
addss xmm1, xmm7
subss xmm3, dword [edi + 0x1938]
movss xmm0, dword [esp + 0x6c]
movaps xmm5, xmm7
movss xmm4, dword [esp + 0xa0]
addss xmm0, xmm6
movss xmm7, dword [esp + 0xa4]
addss xmm5, xmm2
movss xmm2, dword [esp + 0xa8]
minss xmm1, xmm7
addss xmm3, xmm6
minss xmm0, xmm2
maxss xmm5, dword [esp + 0x9c]
movss dword [esp + 0xf4], xmm1
maxss xmm3, xmm4
comiss xmm0, xmm4
movss dword [esp + 0xec], xmm5
movss dword [esp + 0xf0], xmm3
movss dword [esp + 0xf8], xmm0
jbe 0x100282d9
comiss xmm2, xmm3
jbe 0x100282d9
comiss xmm1, dword [esp + 0x9c]
jbe 0x100282d9
comiss xmm7, xmm5
jbe 0x100282d9
push 0xf
push ecx
and dword [esp], 0
lea eax, [esp + 0xfc]
push esi
push eax
lea eax, [esp + 0xfc]
push eax
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x27c]
call fcn.1003e73d
movss xmm0, dword [esp + 0x98]
movss xmm2, dword [esp + 0xa8]
movss xmm4, dword [esp + 0xa0]
movss xmm6, dword [esp + 0x5c]
movss dword [esp + 0x98], xmm0
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x28]
movss xmm7, dword [eax]
addss xmm6, dword [edi + 0x1938]
subss xmm7, dword [esp + 0x1c]
movss dword [esp + 0x5c], xmm6
cmp ecx, edx
jb 0x1002814a
movss xmm5, dword [esp + 0x30]
lea esi, [edi + 0x1d80]
xorps xmm7, xmm7
movss xmm1, dword [0x1004c600]
xor ecx, ecx
call fcn.10016605
mov edx, eax
movss xmm2, dword [edi + 0x1938]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x9c]
subss xmm5, xmm7
movss xmm0, dword [eax]
xor eax, eax
cmp byte [esp + 0x24], al
subss xmm0, dword [esp + 0x1c]
cmovne ecx, eax
movss dword [esp + 0x8c], xmm5
push ecx
push ecx
and dword [esp], eax
mov eax, dword [esi + 0x28]
mov ecx, dword [esp + 0x48]
add eax, ecx
mov esi, dword [esp + 0x54]
push eax
push ecx
push edx
mov ecx, dword [esi + 0x27c]
lea eax, [esp + 0x9c]
push eax
push dword [edi + 0x1934]
movss dword [esp + 0xa4], xmm0
call fcn.1003e999
cmp byte [edi + 0xbd], 0
je 0x100283ed
movss xmm0, dword [edi + 0x2bdc]
xorps xmm2, xmm2
comiss xmm2, xmm0
jae 0x100283ed
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x88], xmm0
fld qword [esp + 0x88]
fld qword [0x1004c630]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
movss xmm0, dword [0x1004c5f0]
fstp qword [esp + 0x88]
movsd xmm1, qword [esp + 0x88]
cvtpd2ps xmm1, xmm1
comiss xmm0, xmm1
jae 0x100283ed
xor eax, eax
mov cl, al
jmp 0x100283ef
mov cl, 1
movss xmm0, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
movss xmm3, dword [0x1004c600]
addss xmm0, dword [esp + 0x60]
movss xmm5, dword [eax]
addss xmm5, dword [esp + 0x3c]
subss xmm0, dword [0x1004c560]
subss xmm5, dword [esp + 0x1c]
movss dword [esp + 0x30], xmm0
movaps xmm1, xmm0
movaps xmm6, xmm0
subss xmm1, dword [edi + 0x1938]
movss dword [esp + 0xe0], xmm5
movaps xmm2, xmm5
movss dword [esp + 0x88], xmm5
addss xmm2, xmm3
subss xmm6, dword [0x1004c60c]
addss xmm1, dword [0x1004c5d4]
movss dword [esp + 0x90], xmm2
movss dword [esp + 0x94], xmm6
movss dword [esp + 0x8c], xmm1
test cl, cl
je 0x10028506
comiss xmm6, dword [esp + 0xa0]
jbe 0x10028506
movss xmm0, dword [esp + 0xa8]
comiss xmm0, xmm1
jbe 0x10028500
comiss xmm2, dword [esp + 0x9c]
jbe 0x10028500
movss xmm0, dword [esp + 0xa4]
comiss xmm0, xmm5
jbe 0x10028500
movaps xmm1, xmm3
xor ecx, ecx
call fcn.10016605
push ecx
mov ecx, dword [esi + 0x27c]
mov dword [esp], 0x3f800000
push eax
lea eax, [esp + 0xb4]
movss dword [esp + 0xb4], xmm5
push eax
lea eax, [esp + 0x94]
movss dword [esp + 0xbc], xmm6
push eax
call fcn.1003e5d5
movss xmm5, dword [esp + 0xe0]
movss xmm3, dword [0x1004c600]
movss xmm0, dword [esp + 0x30]
cmp byte [esp + 0xc], 0
mov esi, dword [esp + 0x40]
je 0x1002852d
subss xmm0, dword [edi + 0x1938]
subss xmm5, xmm3
movss dword [edi + 0x2c7c], xmm0
movss dword [edi + 0x2c78], xmm5
cmp byte [esp + 0x24], 0
je 0x10028578
movss xmm0, dword [esp + 0x58]
lea ecx, [esp + 0xac]
addss xmm0, dword [0x1004c560]
movss dword [esp + 0xac], xmm0
movss xmm0, dword [esp + 0x2c]
addss xmm0, dword [edi + 0x1938]
movss dword [esp + 0xb0], xmm0
call fcn.1002ccf0
call fcn.1001d277
call fcn.1002ce99
mov eax, dword [esp + 0x68]
test al, al
je 0x10028589
call fcn.100214d1
mov eax, dword [esp + 0x68]
cmp byte [edi + 0x2cb4], 0
je 0x100285a5
test al, al
jne 0x100285a5
xor eax, eax
lea ecx, [esp + 0x70]
push eax
mov edx, esi
call fcn.1001bb1c
pop ecx
movss xmm0, dword [esp + 0xe4]
comiss xmm0, dword [0x1004c560]
jbe 0x1002860c
movss xmm0, dword [esp + 0x80]
xor edx, edx
addss xmm0, dword [edi + 0x155c]
mov ecx, dword [esp + 0xdc]
push 1
movss dword [esp + 0xe8], xmm0
movss xmm0, dword [esp + 0x80]
addss xmm0, dword [edi + 0x1548]
movss dword [esp + 0xec], xmm0
push dword [esp + 0xec]
push dword [esp + 0xec]
call fcn.1001bc31
add esp, 0xc
mov cl, byte [esp + 0x23]
test cl, cl
je 0x10028620
mov eax, dword [0x100c68f8]
mov byte [eax + 0x1a4b], 1
test byte [ebp + 0x10], 0x20
movzx eax, cl
movzx ecx, byte [esp + 0x17]
cmovne eax, ecx
jmp 0x1002689c