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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1d8
push esi
push edi
mov edi, dword [0x10081d40]
mov dword [esp + 0x38], edx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x44], edi
mov eax, dword [edi + 0x1984]
mov byte [eax + 0x7c], 1
mov esi, dword [edi + 0x1984]
mov dword [esp + 0x28], esi
cmp byte [esi + 0x7f], 0
jne 0x10027639
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 + 0x3c], eax
mov eax, edx
shr eax, 0xf
and eax, 0xffffff01
mov dword [esp + 0x20], ecx
mov dword [esp + 0x74], eax
mov eax, edx
shr eax, 0x10
not al
and eax, 0xffffff01
mov dword [esp + 0x64], eax
mov eax, edx
shr eax, 0x12
and eax, 0xffffff01
mov dword [esp + 0x60], eax
test cl, cl
je 0x10027498
call fcn.1000f4d0
push 0
push dword [esp + 0x9c]
mov ecx, esi
call fcn.10007970
movss xmm0, dword [0x10076320]
mov edx, dword [esp + 0x98]
push ecx
mov dword [esp], 0xbf800000
lea ecx, [esp + 0x10c]
push 1
push 0
mov dword [esp + 0x30], eax
movss dword [esp + 0xa8], xmm0
call fcn.1000a250
add esp, 0xc
cmp byte [esp + 0x20], 0
je 0x100274fd
mov eax, dword [0x10081d40]
movss xmm1, dword [eax + 0x18a4]
mulss xmm1, dword [0x10076294]
jmp 0x10027506
movss xmm1, dword [esp + 0x10c]
movss xmm0, dword [edi + 0x1538]
mov eax, dword [ebp + 0xc]
addss xmm0, xmm0
push dword [eax + 4]
addss xmm0, xmm1
push dword [eax]
movss dword [esp + 0x38], xmm0
call fcn.1000ee40
movss xmm2, dword [esp + 0x38]
lea ecx, [esp + 0x88]
movaps xmm1, xmm0
call fcn.10008130
movss xmm3, dword [esi + 0xc8]
xorps xmm6, xmm6
movss xmm2, dword [esi + 0xcc]
movaps xmm1, xmm3
addss xmm1, dword [esp + 0x88]
addss xmm2, dword [esp + 0x8c]
movss xmm4, dword [esp + 0x110]
add esp, 8
comiss xmm4, xmm6
movss dword [esp + 0x88], xmm3
movss xmm5, dword [esi + 0xcc]
movss dword [esp + 0x8c], xmm5
movss dword [esp + 0x90], xmm1
movss dword [esp + 0x94], xmm2
jbe 0x100275b1
movss xmm0, dword [edi + 0x154c]
addss xmm0, xmm4
jmp 0x100275b4
xorps xmm0, xmm0
cmp byte [esp + 0x20], 0
addss xmm1, xmm0
addss xmm2, xmm6
movss dword [esp + 0x130], xmm3
movss dword [esp + 0x134], xmm5
lea ecx, [esp + 0x130]
mov dword [esp + 0x48], esi
movss dword [esp + 0x138], xmm1
movss dword [esp + 0x13c], xmm2
je 0x10027680
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x88]
push eax
call fcn.10007d00
add esp, 4
lea eax, [esp + 0x30]
lea ecx, [esp + 0x88]
push 0
push eax
call fcn.10004420
mov ecx, dword [esp + 0x28]
mov edx, eax
call fcn.1000aaa0
add esp, 4
test al, al
jne 0x10027641
call fcn.1000a910
call fcn.1000f600
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x10081d40]
mov eax, dword [ecx + 0x1984]
mov byte [eax + 0x7c], 1
mov ecx, dword [ecx + 0x1984]
mov dword [esp + 0x48], ecx
mov eax, dword [ecx + 0x138]
or dword [ecx + 0x140], eax
movss xmm0, dword [esp + 0x80]
subss xmm0, dword [ecx + 0x70]
movss dword [esp + 0x80], xmm0
jmp 0x100276cb
movss xmm0, dword [edi + 0x1538]
lea eax, [esp + 0xc0]
push eax
movss dword [esp + 0x34], xmm0
call fcn.10004420
movss xmm1, dword [esp + 0x30]
mov ecx, eax
call fcn.10007bf0
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x134]
call fcn.10007d00
add esp, 4
test al, al
je 0x10027639
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x88]
call fcn.10007f10
mov byte [esp + 0x1a], al
test al, al
je 0x100276ed
mov dword [edi + 0x1c54], 1
cmp byte [esp + 0x74], 0
je 0x10027769
mov ecx, dword [edi + 0x18a0]
push 0x2a
call fcn.10021310
mov ecx, dword [edi + 0x18a0]
lea esi, [edi + 0x2b80]
mov edx, eax
mov ecx, dword [ecx]
mov dword [esi], ecx
mov ecx, dword [edi + 0x18a0]
mov ecx, dword [ecx + 4]
mov dword [esi + 4], ecx
mov ecx, dword [edi + 0x18a0]
mov eax, dword [ecx + 8]
mov dword [esi + 8], eax
mov eax, dword [ecx + 0xc]
mov ecx, esi
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x18a0]
mov eax, dword [eax + 0x48]
mov dword [esi + 0x48], eax
mov eax, dword [edi + 0x18a0]
mov eax, dword [eax + 0x4c]
mov dword [esi + 0x4c], eax
mov eax, dword [edi + 0x18a0]
mov eax, dword [eax + 0x44]
mov dword [esi + 0x44], eax
mov dword [esi + 0x34], edx
mov eax, dword [edx + 4]
mov dword [esi + 0x38], eax
call fcn.1000eee0
mov esi, dword [esp + 0x28]
test dword [ebp + 0x10], 0x440
mov ecx, esi
mov edx, dword [esp + 0x24]
sete al
movzx eax, al
push eax
call fcn.10008050
add esp, 4
mov byte [esp + 0x2f], al
test al, al
je 0x1002779f
mov ecx, dword [esi + 0x328]
cmp ecx, dword [esi + 0x330]
jne 0x1002779f
mov cl, 1
jmp 0x100277a1
xor cl, cl
mov byte [esp + 0x1b], cl
test al, al
je 0x100277b2
mov byte [esp + 0x18], 1
test cl, cl
je 0x100277b7
mov byte [esp + 0x18], 0
cmp byte [esp + 0x1a], 0
je 0x100277cc
cmp byte [edi + 0x3d0], 0
mov byte [esp + 0x19], 1
jne 0x100277d1
mov byte [esp + 0x19], 0
cmp byte [esp + 0x20], 0
je 0x1002781e
cmp dword [edi + 0x19a4], 0
jne 0x1002781e
mov eax, dword [esp + 0x24]
lea ecx, [edi + 0x1d10]
cmp dword [ecx], eax
jne 0x1002781e
mov eax, dword [esp + 0x48]
xor edx, edx
mov ecx, dword [eax + 0x1c0]
mov eax, dword [eax + 0x1c8]
push dword [eax + ecx*4 - 4]
mov ecx, str.SCROLLY
call fcn.10005b80
add esp, 4
cmp dword [edi + 0x19a8], eax
jne 0x1002781e
mov cl, 1
jmp 0x10027820
xor cl, cl
mov eax, dword [edi + 0x19a4]
mov edx, dword [esp + 0x24]
cmp eax, edx
je 0x1002784b
cmp dword [edi + 0x1aa8], edx
je 0x10027847
cmp dword [edi + 0x1a9c], edx
jne 0x1002784b
cmp dword [edi + 0x1abc], 3
jne 0x1002784b
mov dl, 1
jmp 0x1002784d
xor dl, dl
mov byte [esp + 0x17], dl
mov byte [esp + 0x2c], 0
cmp eax, dword [esp + 0x24]
je 0x10027872
test byte [ebp + 0x10], 0x10
jne 0x10027866
test dl, dl
je 0x10027872
cmp byte [esp + 0x20], 0
mov byte [esp + 0x1c], 1
je 0x10027877
mov byte [esp + 0x1c], 0
cmp byte [esp + 0x2f], 0
mov dword [esp + 0x58], 0x20
jne 0x100278ab
cmp byte [esp + 0x19], 0
jne 0x100278ab
test cl, cl
jne 0x100278ab
test dl, dl
jne 0x100278ab
cmp byte [edi + 0x3d0], dl
je 0x10027a0a
mov byte [esp + 0x2c], 1
jmp 0x10027a0a
cmp eax, dword [esp + 0x24]
je 0x100279cc
mov esi, dword [esp + 0x38]
mov eax, dword [edi + 0x1d3c]
mov dword [esp + 0x30], eax
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x100278c6
sub esi, ecx
lea ecx, [edi + 0x1d14]
push 0x21
call fcn.10014fd0
inc esi
lea ecx, [edi + 0x1d20]
push esi
call fcn.10014f90
push esi
mov esi, dword [esp + 0x3c]
push esi
push dword [edi + 0x1d28]
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x64]
lea eax, [esp + 0x5c]
mov ecx, dword [edi + 0x1d1c]
add esp, 0xc
mov dword [esp + 0x50], 0
push eax
push 0
push esi
call fcn.10005f90
mov ecx, dword [esp + 0x5c]
add esp, 0xc
mov edx, dword [esp + 0x24]
sub ecx, esi
mov dword [edi + 0x1d38], ecx
lea ecx, [edi + 0x1d10]
mov dword [edi + 0x1d3c], eax
mov dword [edi + 0x2b6c], 0xbe99999a
cmp dword [ecx], edx
jne 0x10027956
cmp dword [esp + 0x30], eax
jne 0x10027956
call fcn.100228d0
jmp 0x10027997
mov eax, dword [esp + 0x20]
mov dword [ecx], edx
lea ecx, [edi + 0x1d48]
movzx edx, al
xor edx, 1
mov dword [edi + 0x1d44], 0
call fcn.10027220
mov eax, dword [esp + 0x20]
test al, al
jne 0x1002799b
mov eax, dword [esp + 0x1c]
mov ecx, 1
cmp byte [esp + 0x1b], 0
movzx eax, al
cmovne eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
test dword [ebp + 0x10], 0x2000
je 0x100279ab
mov byte [edi + 0x1d54], 1
test al, al
jne 0x100279c8
cmp byte [esp + 0x18], al
jne 0x100279c3
cmp byte [esp + 0x19], al
je 0x100279c8
cmp byte [edi + 0xf8], al
je 0x100279c8
mov byte [esp + 0x1c], 1
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, esi
call fcn.100079f0
mov ecx, dword [esp + 0x24]
mov edx, esi
call fcn.10007aa0
mov ecx, esi
call fcn.1000eb60
cmp byte [esp + 0x20], 0
mov dword [edi + 0x19c0], 2
jne 0x10027a0a
test byte [ebp + 0x10], 0x80
jne 0x10027a0a
mov dword [edi + 0x19bc], 0xc
mov eax, dword [esp + 0x24]
mov byte [esp + 0x2f], 0
mov byte [esp + 0x1b], 0
mov dword [esp + 0x40], 0
cmp dword [edi + 0x19a4], eax
jne 0x10027d36
cmp byte [esp + 0x3c], 0
jne 0x10027a9c
cmp byte [edi + 0x19b4], 0
jne 0x10027a9c
push 0x21
lea ecx, [edi + 0x1d14]
call fcn.10014fd0
mov edx, dword [edi + 0x1d14]
lea eax, [esp + 0xa4]
mov ecx, dword [edi + 0x1d1c]
push eax
push 0
push dword [esp + 0x40]
mov dword [esp + 0xb0], 0
call fcn.10005f90
mov dword [edi + 0x1d3c], eax
lea esi, [edi + 0x1d10]
mov eax, dword [esp + 0xb0]
add esp, 0xc
sub eax, dword [esp + 0x38]
mov ecx, esi
mov dword [edi + 0x1d38], eax
call fcn.100228d0
jmp 0x10027aa2
lea esi, [edi + 0x1d10]
mov eax, dword [edi + 0x1d38]
mov dword [edi + 0x1d40], 0x20
mov dword [edi + 0x2b78], 0
mov dword [edi + 0x2b7c], 0
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x10]
mov dword [edi + 0x2b74], eax
cmp byte [edi + 0xe8], 0
mov dword [edi + 0x2e60], 1
sete al
cmp byte [esp + 0x20], 0
mov byte [edi + 0x19b5], al
movss xmm2, dword [edi + 0xe0]
subss xmm2, dword [esp + 0x88]
subss xmm2, dword [edi + 0x1534]
addss xmm2, dword [edi + 0x1d44]
je 0x10027b33
mov eax, dword [esp + 0x48]
movss xmm3, dword [edi + 0xe4]
subss xmm3, dword [eax + 0xcc]
subss xmm3, dword [edi + 0x1538]
jmp 0x10027b43
movss xmm3, dword [edi + 0x18a4]
mulss xmm3, dword [0x1007620c]
cmp byte [esp + 0x1c], 0
mov dl, byte [edi + 0xad]
mov byte [esp + 0x16], dl
jne 0x10027c59
mov cl, byte [esp + 0x1a]
test cl, cl
je 0x10027b72
mov al, byte [edi + 0x3d5]
test dl, dl
jne 0x10027bad
test al, al
jne 0x10027c59
cmp byte [edi + 0x3d0], 0
mov al, byte [edi + 0x2b71]
je 0x10027c07
test al, al
jne 0x10027c07
test cl, cl
je 0x10027c6b
lea edx, [edi + 0x1d48]
mov ecx, esi
call fcn.100260b0
mov dword [edi + 0x2b6c], 0xbe99999a
jmp 0x10027c67
test al, al
je 0x10027b72
push 0x1000c
lea edx, [edi + 0x1d48]
lea ecx, [edi + 0x1d10]
call fcn.10026520
add esp, 4
mov byte [edi + 0x2b70], 1
lea edx, [edi + 0x1d48]
mov dword [edi + 0x2b6c], 0xbe99999a
lea ecx, [edi + 0x1d10]
push 0x3000d
call fcn.10026520
add esp, 4
mov byte [edi + 0x2b70], 1
mov dword [edi + 0x2b6c], 0xbe99999a
jmp 0x10027c67
cmp byte [edi + 0xe8], 0
je 0x10027c6b
test al, al
jne 0x10027c6b
movss xmm0, dword [edi + 0x370]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10027c39
movss xmm0, dword [edi + 0x374]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10027c6b
lea edx, [edi + 0x1d48]
mov ecx, esi
call fcn.10026100
mov dword [edi + 0x2b6c], 0xbe99999a
mov byte [edi + 0x2b70], 1
jmp 0x10027c67
mov ecx, esi
call fcn.10022900
mov byte [edi + 0x2b71], 1
mov dl, byte [esp + 0x16]
cmp byte [edi + 0x2b71], 0
je 0x10027c84
cmp byte [edi + 0xe8], 0
jne 0x10027c84
mov byte [edi + 0x2b71], 0
mov ecx, dword [edi + 0x14f0]
lea eax, [edi + 0x14f0]
test ecx, ecx
jle 0x10027d32
cmp byte [edi + 0xf8], 0
je 0x10027cae
cmp byte [edi + 0xfa], 0
je 0x10027d29
test dl, dl
je 0x10027cbb
cmp byte [edi + 0xfb], 0
jne 0x10027d29
cmp byte [esp + 0x3c], 0
je 0x10027d29
cmp byte [esp + 0x17], 0
jne 0x10027d29
xor esi, esi
test ecx, ecx
jle 0x10027d29
nop
mov eax, dword [edi + 0x14f8]
lea ecx, [esp + 0x50]
mov edx, dword [ebp + 0x10]
push 0
push 0
movzx eax, word [eax + esi*2]
mov dword [esp + 0x58], eax
call fcn.10027270
add esp, 8
test al, al
je 0x10027d1e
push dword [esp + 0x50]
lea edx, [edi + 0x1d48]
lea ecx, [edi + 0x1d10]
call fcn.10026520
add esp, 4
mov byte [edi + 0x2b70], 1
mov dword [edi + 0x2b6c], 0xbe99999a
inc esi
lea eax, [edi + 0x14f0]
cmp esi, dword [eax]
jl 0x10027cd0
push 0
mov ecx, eax
call fcn.10014fd0
mov eax, dword [esp + 0x24]
xor cl, cl
mov byte [esp + 0x15], cl
cmp dword [edi + 0x19a4], eax
jne 0x10028627
cmp byte [edi + 0x19b4], cl
jne 0x10028627
cmp byte [esp + 0x2c], cl
jne 0x10028627
mov dl, byte [edi + 0xf9]
xor esi, esi
mov dh, byte [edi + 0xad]
test dl, dl
mov eax, 0x20000
mov byte [esp + 0x5f], dh
cmovne esi, eax
mov al, byte [edi + 0xf8]
test dh, dh
je 0x10027dcf
cmp byte [edi + 0xfb], cl
je 0x10027d97
test al, al
jne 0x10027d97
mov ecx, 1
jmp 0x10027d99
xor ecx, ecx
test ecx, ecx
jne 0x10027ddc
xor ah, ah
mov byte [esp + 0x17], ah
mov cl, al
test dh, dh
je 0x10027ded
cmp byte [edi + 0xfb], 0
je 0x10027ded
test dl, dl
je 0x10027ded
mov cl, byte [edi + 0xf8]
test cl, cl
jne 0x10027ded
cmp byte [edi + 0xfa], cl
jne 0x10027ded
mov byte [esp + 0x2e], 1
jmp 0x10027df2
test al, al
je 0x10027d9d
cmp byte [edi + 0xfb], 0
jne 0x10027d9d
cmp byte [edi + 0xfa], 0
jne 0x10027d9d
test dl, dl
jne 0x10027d9d
mov ah, 1
jmp 0x10027d9f
mov byte [esp + 0x2e], 0
test dh, dh
je 0x10027eba
cmp byte [edi + 0xfb], 0
mov al, byte [edi + 0xfa]
mov byte [esp + 0x1a], al
je 0x10027ebe
test cl, cl
jne 0x10027ebe
test al, al
jne 0x10027ebe
mov byte [esp + 0x16], 1
mov al, byte [edi + 0xf9]
mov byte [esp + 0x2d], 0
test al, al
je 0x10027e4e
test cl, cl
jne 0x10027e4e
cmp byte [edi + 0xfa], cl
jne 0x10027e4e
mov byte [esp + 0x18], 1
cmp byte [edi + 0xfb], cl
je 0x10027e53
mov byte [esp + 0x18], 0
test ah, ah
je 0x10027e6e
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x7c]
test ecx, ecx
js 0x10027e6e
mov dl, 1
call fcn.1000a440
test al, al
jne 0x10027e90
cmp byte [esp + 0x18], 0
je 0x10027ef5
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x5c]
test ecx, ecx
js 0x10027ef5
mov dl, 1
call fcn.1000a440
test al, al
je 0x10027ef5
cmp byte [esp + 0x3c], 0
je 0x10027ef5
cmp byte [esp + 0x74], 0
jne 0x10027ef5
cmp byte [esp + 0x20], 0
je 0x10027eb3
mov eax, dword [edi + 0x1d4c]
cmp eax, dword [edi + 0x1d50]
je 0x10027ef5
mov byte [esp + 0x19], 1
jmp 0x10027efa
mov byte [esp + 0x1a], cl
mov byte [esp + 0x16], 0
test cl, cl
je 0x10027e26
test dl, dl
jne 0x10027e26
cmp byte [edi + 0xfa], dl
jne 0x10027e26
cmp byte [edi + 0xfb], dl
jne 0x10027e26
mov byte [esp + 0x2d], 1
jmp 0x10027e4e
mov byte [esp + 0x19], 0
cmp byte [esp + 0x17], 0
je 0x10027f18
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x74]
test ecx, ecx
js 0x10027f18
mov dl, 1
call fcn.1000a440
test al, al
jne 0x10027f36
cmp byte [esp + 0x2d], 0
je 0x10027f59
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x58]
test ecx, ecx
js 0x10027f59
mov dl, 1
call fcn.1000a440
test al, al
je 0x10027f59
cmp byte [esp + 0x74], 0
jne 0x10027f59
cmp byte [esp + 0x20], 0
je 0x10027f52
mov eax, dword [edi + 0x1d4c]
cmp eax, dword [edi + 0x1d50]
je 0x10027f59
mov byte [esp + 0x4f], 1
jmp 0x10027f5e
mov byte [esp + 0x4f], 0
cmp byte [esp + 0x17], 0
je 0x10027f7c
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x78]
test ecx, ecx
js 0x10027f7c
mov dl, 1
call fcn.1000a440
test al, al
jne 0x10027f9a
cmp byte [esp + 0x18], 0
je 0x10027fa6
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x58]
test ecx, ecx
js 0x10027fa6
mov dl, 1
call fcn.1000a440
test al, al
je 0x10027fa6
cmp byte [esp + 0x3c], 0
mov byte [esp + 0x18], 1
jne 0x10027fab
mov byte [esp + 0x18], 0
cmp byte [esp + 0x17], 0
je 0x10027fdf
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x84]
test ecx, ecx
js 0x10027fdf
mov dl, 1
call fcn.1000a440
test al, al
je 0x10027fdf
cmp byte [esp + 0x3c], 0
je 0x10027fdf
cmp byte [esp + 0x64], 0
mov byte [esp + 0x2d], 1
jne 0x10027fe4
mov byte [esp + 0x2d], 0
cmp byte [esp + 0x17], 0
je 0x10028005
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x80]
test ecx, ecx
js 0x10028005
mov dl, 1
call fcn.1000a440
test al, al
jne 0x10028026
cmp byte [esp + 0x2e], 0
je 0x10028039
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x84]
test ecx, ecx
js 0x10028039
mov dl, 1
call fcn.1000a440
test al, al
je 0x10028039
cmp byte [esp + 0x3c], 0
je 0x10028039
cmp byte [esp + 0x64], 0
mov byte [esp + 0x2e], 1
jne 0x1002803e
mov byte [esp + 0x2e], 0
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x38]
test ecx, ecx
js 0x1002808e
mov dl, 1
call fcn.1000a440
test al, al
je 0x1002808e
cmp byte [esp + 0x16], 0
je 0x10028063
mov eax, 0x10004
jmp 0x10028075
mov eax, 0x10000
mov ecx, 0x1000c
cmp byte [esp + 0x1a], 0
cmovne eax, ecx
or eax, esi
push eax
lea edx, [edi + 0x1d48]
lea ecx, [edi + 0x1d10]
call fcn.10026520
jmp 0x1002860f
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
js 0x100280bd
mov dl, 1
call fcn.1000a440
test al, al
je 0x100280bd
cmp byte [esp + 0x16], 0
je 0x100280b3
mov eax, 0x10005
jmp 0x10028075
mov eax, 0x10001
lea ecx, [eax + 0xc]
jmp 0x1002806d
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x1002811a
mov dl, 1
call fcn.1000a440
test al, al
je 0x1002811a
cmp byte [esp + 0x20], 0
je 0x1002811a
cmp byte [edi + 0xf8], 0
je 0x10028109
mov esi, dword [esp + 0x48]
mov ecx, esi
movss xmm1, dword [esi + 0x5c]
subss xmm1, dword [edi + 0x18a4]
maxss xmm1, dword [0x100761b0]
call fcn.1000f1c0
jmp 0x10028623
movzx eax, byte [esp + 0x16]
lea eax, [eax*4 + 0x10002]
jmp 0x10028075
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x44]
test ecx, ecx
js 0x10028184
mov dl, 1
call fcn.1000a440
test al, al
je 0x10028184
cmp byte [esp + 0x20], 0
je 0x10028184
cmp byte [edi + 0xf8], 0
je 0x10028173
mov esi, dword [esp + 0x48]
movss xmm0, dword [edi + 0x18a4]
addss xmm0, dword [esi + 0x5c]
movss dword [esp + 0x30], xmm0
call fcn.1000f380
movss xmm1, dword [esp + 0x30]
mov ecx, esi
minss xmm1, xmm0
call fcn.1000f1c0
jmp 0x10028623
movzx eax, byte [esp + 0x16]
lea eax, [eax*4 + 0x10003]
jmp 0x10028075
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x50]
test ecx, ecx
js 0x100281b2
mov dl, 1
call fcn.1000a440
test al, al
je 0x100281b2
xor eax, eax
cmp byte [edi + 0xf8], al
setne al
lea eax, [eax*2 + 0x10004]
jmp 0x10028075
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x54]
test ecx, ecx
js 0x100281e0
mov dl, 1
call fcn.1000a440
test al, al
je 0x100281e0
xor eax, eax
cmp byte [edi + 0xf8], al
setne al
lea eax, [eax*2 + 0x10005]
jmp 0x10028075
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x5c]
test ecx, ecx
js 0x1002820a
mov dl, 1
call fcn.1000a440
test al, al
je 0x1002820a
cmp byte [esp + 0x3c], 0
je 0x1002820a
or esi, 0x10008
push esi
jmp 0x10028078
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x60]
test ecx, ecx
js 0x100282a0
mov dl, 1
call fcn.1000a440
test al, al
je 0x100282a0
cmp byte [esp + 0x3c], 0
je 0x100282a0
mov eax, dword [edi + 0x1d4c]
cmp eax, dword [edi + 0x1d50]
jne 0x10028294
cmp byte [esp + 0x1a], 0
je 0x10028248
push 0x3000c
jmp 0x1002826f
cmp byte [esp + 0x5f], 0
je 0x10028294
cmp byte [edi + 0xfb], 0
je 0x10028294
cmp byte [edi + 0xfa], 0
jne 0x10028294
cmp byte [edi + 0xf8], 0
jne 0x10028294
push 0x30004
lea edx, [edi + 0x1d48]
lea ecx, [edi + 0x1d10]
call fcn.10026520
mov dword [edi + 0x2b6c], 0xbe99999a
add esp, 4
mov byte [edi + 0x2b70], 1
or esi, 0x10009
push esi
jmp 0x10028078
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x68]
test ecx, ecx
js 0x1002831d
mov dl, 1
call fcn.1000a440
test al, al
je 0x1002831d
mov edx, dword [ebp + 0x10]
mov eax, edx
shr eax, 0xb
and al, 1
cmp byte [esp + 0x20], 0
je 0x100282d6
mov cl, byte [edi + 0xf8]
test al, al
je 0x100282e5
test cl, cl
jne 0x100282e9
mov byte [esp + 0x2c], 1
mov byte [esp + 0x1b], 1
jmp 0x10028623
test cl, cl
jne 0x100282d6
cmp byte [esp + 0x3c], 0
je 0x10028623
push 0
push 0
lea ecx, [esp + 0x78]
mov dword [esp + 0x78], 0xa
call fcn.10027270
add esp, 8
test al, al
je 0x10028623
push dword [esp + 0x70]
jmp 0x10028078
test dword [ebp + 0x10], 0x400
je 0x1002838b
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x34]
test ecx, ecx
js 0x1002838b
mov dl, 1
call fcn.1000a440
test al, al
je 0x1002838b
cmp byte [edi + 0xf8], 0
jne 0x1002838b
cmp byte [edi + 0xf9], 0
jne 0x1002838b
cmp byte [edi + 0xfa], 0
jne 0x1002838b
cmp byte [esp + 0x3c], 0
je 0x1002838b
mov edx, dword [ebp + 0x10]
lea ecx, [esp + 0x54]
push 0
push 0
mov dword [esp + 0x5c], 9
call fcn.10027270
add esp, 8
test al, al
je 0x10028623
push dword [esp + 0x54]
jmp 0x10028078
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x6c]
test ecx, ecx
js 0x100283ad
mov dl, 1
call fcn.1000a440
test al, al
je 0x100283ad
mov cl, 1
mov byte [esp + 0x2c], cl
jmp 0x10028627
mov al, byte [esp + 0x2d]
test al, al
jne 0x100285e0
cmp byte [esp + 0x2e], al
jne 0x100285e0
cmp byte [esp + 0x17], al
je 0x100283f0
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x70]
test ecx, ecx
js 0x100283f0
mov dl, 1
call fcn.1000a440
test al, al
je 0x100283f0
lea ecx, [edi + 0x1d10]
call fcn.10022900
jmp 0x1002861c
mov al, byte [esp + 0x19]
test al, al
jne 0x100284f2
cmp byte [esp + 0x4f], al
jne 0x100284f2
cmp byte [esp + 0x18], al
je 0x10028623
call fcn.10008290
mov esi, eax
test esi, esi
je 0x10028623
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10028424
mov eax, dword [0x10081d40]
sub ecx, edx
test eax, eax
je 0x1002843c
inc dword [eax + 0x36c]
lea eax, [ecx*2 + 2]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
xor ecx, ecx
mov dword [esp + 0x2c], eax
add esp, 4
cmp byte [esi], cl
je 0x100284bb
xor edi, edi
nop dword [eax]
push 0
mov edx, esi
lea ecx, [esp + 0x20]
call fcn.10005df0
add esi, eax
add esp, 4
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x100284ab
cmp eax, 0x10000
jae 0x100284a6
mov edx, dword [ebp + 0x10]
lea ecx, [esp + 0x1c]
push 0
push 0
call fcn.10027270
add esp, 8
test al, al
je 0x100284a6
mov ecx, dword [esp + 0x28]
mov ax, word [esp + 0x1c]
mov word [ecx + edi*2], ax
inc edi
cmp byte [esi], 0
jne 0x10028460
mov eax, dword [esp + 0x28]
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x54]
xor edx, edx
mov word [eax + ecx*2], dx
test ecx, ecx
jle 0x100284e6
push ecx
push eax
lea edx, [edi + 0x1d48]
lea ecx, [edi + 0x1d10]
call fcn.10026490
mov eax, dword [esp + 0x30]
add esp, 8
mov byte [edi + 0x2b70], 1
mov ecx, eax
call fcn.10008270
jmp 0x10028623
cmp dword [edi + 0xcc], 0
je 0x10028590
mov eax, dword [edi + 0x1d50]
mov ecx, dword [edi + 0x1d4c]
cmp ecx, eax
je 0x10028516
mov edx, eax
cmovl edx, ecx
jmp 0x10028518
xor edx, edx
cmp ecx, eax
mov dword [esp + 0x70], edx
cmovge eax, ecx
jne 0x10028529
mov eax, dword [edi + 0x1d3c]
mov dword [esp + 0x54], eax
lea ecx, [edi + 0x1d2c]
sub eax, edx
lea eax, [eax*4 + 1]
push eax
call fcn.10014f90
mov ecx, dword [edi + 0x1d1c]
mov eax, dword [esp + 0x54]
mov edx, dword [edi + 0x1d2c]
lea eax, [ecx + eax*2]
push eax
mov eax, dword [esp + 0x74]
lea eax, [ecx + eax*2]
mov ecx, dword [edi + 0x1d34]
push eax
call fcn.10006050
mov eax, dword [0x10081d40]
add esp, 8
mov ecx, dword [eax + 0xcc]
test ecx, ecx
je 0x1002858c
push dword [edi + 0x1d34]
push dword [eax + 0xd0]
call ecx
add esp, 8
mov al, byte [esp + 0x19]
test al, al
je 0x10028623
mov eax, dword [edi + 0x1d4c]
cmp eax, dword [edi + 0x1d50]
jne 0x100285b1
lea ecx, [edi + 0x1d10]
call fcn.10022900
mov byte [edi + 0x2b70], 1
mov eax, dword [edi + 0x1d4c]
cmp eax, dword [edi + 0x1d50]
je 0x10028623
lea edx, [edi + 0x1d48]
lea ecx, [edi + 0x1d10]
call fcn.10026370
mov byte [edi + 0x1d57], 0
jmp 0x10028623
movzx eax, al
lea edx, [edi + 0x1d48]
xor eax, 1
lea ecx, [edi + 0x1d10]
add eax, 0x1000a
push eax
call fcn.10026520
mov eax, dword [edi + 0x1d48]
mov dword [edi + 0x1d50], eax
mov dword [edi + 0x1d4c], eax
mov dword [edi + 0x2b6c], 0xbe99999a
add esp, 4
mov byte [edi + 0x2b70], 1
mov cl, byte [esp + 0x15]
mov eax, dword [edi + 0x19a4]
mov edx, dword [esp + 0x24]
cmp eax, edx
jne 0x10028ac5
xor eax, eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x1c], eax
test cl, cl
je 0x10028768
cmp byte [esp + 0x3c], al
je 0x10028699
mov esi, dword [edi + 0x1d28]
mov ecx, esi
mov eax, dword [esp + 0x38]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10028681
test dl, dl
je 0x1002867d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10028681
add eax, 2
add ecx, 2
test dl, dl
jne 0x10028661
xor eax, eax
jmp 0x10028686
sbb eax, eax
or eax, 1
test eax, eax
je 0x10028699
mov eax, dword [edi + 0x1d20]
dec eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], eax
cmp byte [esp + 0x1b], 0
mov edx, dword [ebp + 0x10]
je 0x100286ac
test dl, 0x20
jne 0x1002876b
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
test esi, esi
je 0x10028a9d
cmp dword [esp + 0x40], ecx
je 0x10028a61
cmp byte [esp + 0x60], 0
je 0x10028a61
mov eax, dword [esp + 0x38]
xorps xmm0, xmm0
mov dword [esp + 0x164], eax
lea eax, [ecx + 1]
cmp eax, 0x20
movlpd qword [esp + 0x15c], xmm0
movlpd qword [esp + 0x170], xmm0
cmovle eax, dword [esp + 0x58]
mov dword [esp + 0x16c], eax
lea eax, [esp + 0x150]
push eax
xor eax, eax
movlpd qword [esp + 0x17c], xmm0
mov dword [esp + 0x154], 0x40000
mov dword [esp + 0x158], edx
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x15c], 0
call eax
mov edx, dword [esp + 0x170]
add esp, 4
mov eax, dword [esp + 0x164]
mov dword [esp + 0x38], eax
lea ecx, [edx - 1]
cmp dword [esp + 0x168], ecx
cmovl ecx, dword [esp + 0x168]
jmp 0x10028a66
mov edx, dword [ebp + 0x10]
cmp byte [esp + 0x3c], 0
je 0x100287aa
mov eax, dword [edi + 0x1d14]
lea ecx, [edi + 0x1d2c]
lea eax, [eax*4 + 1]
push eax
call fcn.10014f90
mov edx, dword [edi + 0x1d2c]
mov ecx, dword [edi + 0x1d34]
push 0
push dword [edi + 0x1d1c]
call fcn.10006050
mov edx, dword [ebp + 0x10]
add esp, 8
test edx, 0x1c0
je 0x10028a0f
mov esi, 0x15
test dl, 0x40
je 0x100287e1
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x34]
test ecx, ecx
js 0x100287e1
mov dl, 1
call fcn.1000a440
test al, al
je 0x100287de
lea eax, [esi + 0x2b]
xor esi, esi
jmp 0x1002883e
mov edx, dword [ebp + 0x10]
test dl, dl
jns 0x1002882d
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x10028809
mov dl, 1
call fcn.1000a440
test al, al
je 0x10028806
mov eax, 0x80
lea esi, [eax - 0x7d]
jmp 0x1002883e
mov edx, dword [ebp + 0x10]
mov eax, dword [0x10081d40]
mov ecx, dword [eax + 0x44]
test ecx, ecx
js 0x1002882d
mov dl, 1
call fcn.1000a440
test al, al
je 0x1002882a
mov eax, 0x80
lea esi, [eax - 0x7c]
jmp 0x1002883e
mov edx, dword [ebp + 0x10]
test edx, 0x100
je 0x10028a0f
mov eax, 0x100
mov dword [esp + 0xd8], eax
xor ecx, ecx
mov eax, dword [ebp + 0x10]
xorps xmm0, xmm0
mov dword [esp + 0xdc], eax
mov eax, dword [edi + 0x1d34]
mov dword [esp + 0xec], eax
mov eax, dword [edi + 0x1d38]
mov dword [esp + 0xf0], eax
mov eax, dword [edi + 0x1d40]
mov dword [esp + 0xe8], esi
mov esi, dword [edi + 0x1d1c]
mov dword [esp + 0xf4], eax
mov eax, dword [edi + 0x1d48]
mov word [esp + 0x105], cx
mov byte [esp + 0x107], cl
mov dword [esp + 0xe0], ecx
mov byte [esp + 0xf8], cl
lea edx, [esi + eax*2]
mov ecx, esi
mov dword [esp + 0xe4], 0
movlpd qword [esp + 0xf9], xmm0
mov dword [esp + 0x101], 0
call fcn.10006180
mov ecx, dword [esp + 0x44]
mov edi, eax
mov dword [esp + 0xfc], edi
mov ecx, dword [ecx + 0x1d4c]
lea edx, [esi + ecx*2]
mov ecx, esi
call fcn.10006180
mov dword [esp + 0x30], eax
mov ecx, esi
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x44]
mov edx, dword [eax + 0x1d50]
lea edx, [esi + edx*2]
call fcn.10006180
mov esi, eax
lea eax, [esp + 0xd8]
push eax
xor eax, eax
mov dword [esp + 0x108], esi
call eax
mov edx, dword [esp + 0x100]
add esp, 4
cmp edx, edi
je 0x10028954
mov ecx, dword [esp + 0xec]
add edx, ecx
call fcn.10006000
mov edi, dword [esp + 0x44]
mov dword [edi + 0x1d48], eax
mov byte [edi + 0x2b70], 1
jmp 0x10028958
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x100]
cmp eax, dword [esp + 0x30]
je 0x1002897a
mov ecx, dword [esp + 0xec]
lea edx, [eax + ecx]
call fcn.10006000
mov dword [edi + 0x1d4c], eax
mov eax, dword [esp + 0x104]
cmp eax, esi
je 0x1002899a
mov ecx, dword [esp + 0xec]
lea edx, [eax + ecx]
call fcn.10006000
mov dword [edi + 0x1d50], eax
cmp byte [esp + 0xf8], 0
je 0x10028a0c
mov edx, dword [esp + 0xf0]
mov esi, dword [esp + 0x40]
cmp edx, esi
jle 0x100289d0
cmp byte [esp + 0x60], 0
je 0x100289d0
mov eax, dword [edi + 0x1d14]
lea ecx, [edi + 0x1d14]
sub eax, esi
add eax, edx
push eax
call fcn.10014fd0
mov edx, dword [edi + 0x1d14]
mov ecx, dword [edi + 0x1d1c]
push 0
push 0
push dword [esp + 0xf4]
call fcn.10005f90
mov dword [edi + 0x1d3c], eax
add esp, 0xc
mov eax, dword [esp + 0xf0]
mov dword [edi + 0x1d38], eax
mov dword [edi + 0x2b6c], 0xbe99999a
mov edx, dword [ebp + 0x10]
cmp byte [esp + 0x3c], 0
je 0x100286ac
mov esi, dword [edi + 0x1d34]
mov eax, esi
mov ecx, dword [esp + 0x38]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10028a46
test dl, dl
je 0x10028a42
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10028a46
add eax, 2
add ecx, 2
test dl, dl
jne 0x10028a26
xor eax, eax
jmp 0x10028a4b
sbb eax, eax
or eax, 1
mov edx, dword [ebp + 0x10]
test eax, eax
je 0x100286ac
mov ecx, dword [edi + 0x1d38]
jmp 0x100286b4
mov edx, 0x20
lea eax, [ecx + 1]
cmp eax, edx
cmovl edx, eax
mov dword [esp + 0x30], edx
cmp edx, 1
jb 0x10028a98
jbe 0x10028a8f
lea eax, [edx - 1]
push eax
push esi
push dword [esp + 0x40]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov edx, dword [esp + 0x3c]
add esp, 0xc
mov eax, dword [esp + 0x38]
mov byte [edx + eax - 1], 0
mov byte [esp + 0x2f], 1
mov edx, dword [esp + 0x24]
mov dword [edi + 0x2b74], 0
mov dword [edi + 0x2b78], 0
mov dword [edi + 0x2b7c], 0
mov eax, dword [edi + 0x19a4]
cmp byte [esp + 0x2c], 0
mov ecx, eax
je 0x10028ae1
cmp eax, edx
jne 0x10028afc
xor edx, edx
xor ecx, ecx
call fcn.100079f0
mov ecx, dword [edi + 0x19a4]
mov eax, dword [esp + 0x24]
cmp ecx, eax
jne 0x10028b00
cmp byte [esp + 0x3c], 0
je 0x10028b00
mov edx, dword [edi + 0x1d34]
mov dword [esp + 0x38], edx
jmp 0x10028b00
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
test dl, dl
jne 0x10028b8e
push 1
mov edx, eax
lea ecx, [esp + 0x8c]
call fcn.10006ec0
mov eax, dword [0x10081d40]
lea ecx, [esp + 0x184]
add esp, 4
movups xmm0, xmmword [eax + 0x1610]
movaps xmmword [esp + 0x180], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [eax + 0x1500]
movss dword [esp + 0x18c], xmm0
call fcn.10006200
push dword [esp + 0x94]
movss xmm2, dword [edi + 0x153c]
mov dl, 1
push dword [esp + 0x94]
mov ecx, eax
push dword [esp + 0x94]
push dword [esp + 0x94]
call fcn.10006a10
mov ecx, dword [edi + 0x19a4]
add esp, 0x10
mov edx, dword [esp + 0x20]
movss xmm0, dword [esp + 0x88]
movss xmm1, dword [esp + 0x8c]
movss dword [esp + 0xb0], xmm0
movss dword [esp + 0xb4], xmm1
addss xmm0, dword [esp + 0x80]
movss dword [esp + 0xb8], xmm0
movss xmm0, dword [esp + 0x84]
addss xmm0, xmm1
movss dword [esp + 0xbc], xmm0
test dl, dl
je 0x10028bf8
mov esi, dword [esp + 0x48]
mov eax, dword [esi + 0xc8]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0xcc]
mov dword [esp + 0x34], eax
jmp 0x10028c26
movss xmm0, dword [edi + 0x1534]
addss xmm0, dword [esp + 0x88]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [edi + 0x1538]
addss xmm0, dword [esp + 0x8c]
movss dword [esp + 0x34], xmm0
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x30]
xorps xmm1, xmm1
movss xmm0, dword [eax]
movss dword [esp + 0x78], xmm0
movss xmm0, dword [eax + 4]
lea eax, [edi + 0x1d10]
movss dword [esp + 0x7c], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x64], xmm0
movss dword [esp + 0x50], xmm1
cmp dword [eax], esi
jne 0x10028c94
test dl, dl
je 0x10028c94
mov eax, dword [esp + 0x48]
mov ecx, str.SCROLLY
mov edx, dword [eax + 0x1c0]
mov eax, dword [eax + 0x1c8]
push dword [eax + edx*4 - 4]
xor edx, edx
call fcn.10005b80
mov ecx, dword [edi + 0x19a4]
add esp, 4
cmp ecx, eax
jne 0x10028c94
mov al, 1
jmp 0x10028c96
xor al, al
cmp ecx, esi
je 0x10028d87
test al, al
jne 0x10028d87
mov esi, dword [esp + 0x38]
mov ecx, esi
mov dword [esp + 0x40], 0
cmp byte [esp + 0x20], al
je 0x10028ce9
movss xmm0, dword [esp + 0x80]
lea edx, [esp + 0x40]
movss dword [esp + 0x64], xmm0
call fcn.10025a90
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [edi + 0x18a4]
movss dword [esp + 0x50], xmm0
jmp 0x10028d0d
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10028cf0
sub ecx, edx
lea eax, [ecx + esi]
mov dword [esp + 0x40], eax
sub eax, esi
cmp eax, 0x200000
jge 0x100295d3
mov eax, dword [0x10081d40]
lea ecx, [esp + 0xc0]
movups xmm0, xmmword [eax + 0x15a0]
movaps xmmword [esp + 0xc0], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [eax + 0x1500]
movss dword [esp + 0xcc], xmm0
call fcn.10006200
movss xmm2, dword [edi + 0x18a4]
lea ecx, [esp + 0xb0]
xor edx, edx
cmp byte [esp + 0x20], dl
cmovne ecx, edx
push ecx
push ecx
mov dword [esp], edx
push dword [esp + 0x48]
push esi
push eax
lea eax, [esp + 0x8c]
push eax
mov eax, dword [esp + 0x60]
push dword [edi + 0x18a0]
mov ecx, dword [eax + 0x274]
call fcn.1001eaa0
jmp 0x10029591
movss xmm0, dword [edi + 0x18]
mov ecx, 1
mov edx, dword [edi + 0x1d1c]
addss xmm0, dword [edi + 0x2b6c]
mov eax, dword [edi + 0x1d48]
mov esi, dword [edi + 0x1d4c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], 0
lea eax, [edx + eax*2]
movss dword [edi + 0x2b6c], xmm0
xorps xmm0, xmm0
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x1d50]
movss dword [esp + 0x68], xmm0
movss dword [esp + 0xa8], xmm0
mov dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x1c], 0xfffffc19
cmp esi, eax
je 0x10028e08
cmovl eax, esi
mov ecx, 2
lea eax, [edx + eax*2]
mov dword [esp + 0x28], eax
or eax, 0xffffffff
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
xor esi, esi
movzx eax, al
add ecx, eax
mov eax, dword [esp + 0x24]
movzx eax, word [eax]
test ax, ax
je 0x10028e6e
mov edi, dword [esp + 0x1c]
cmp ax, 0xa
jne 0x10028e54
inc esi
cmp dword [esp + 0x40], 0xffffffff
jne 0x10028e40
cmp edx, dword [esp + 0x58]
jb 0x10028e40
dec ecx
mov dword [esp + 0x40], esi
test ecx, ecx
jle 0x10028e6a
cmp edi, 0xffffffff
jne 0x10028e54
cmp edx, dword [esp + 0x28]
jb 0x10028e54
dec ecx
mov dword [esp + 0x1c], esi
test ecx, ecx
jle 0x10028e6a
movzx eax, word [edx + 2]
add edx, 2
mov edi, eax
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x1c]
test ax, ax
jne 0x10028e23
mov edi, dword [esp + 0x44]
cmp dword [esp + 0x40], 0xffffffff
lea edx, [esi + 1]
mov esi, dword [esp + 0x24]
mov ecx, edx
cmovne ecx, dword [esp + 0x40]
cmp dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x30], ecx
mov ecx, edx
cmovne ecx, dword [esp + 0x1c]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x44], edx
mov edx, ecx
cmp ecx, esi
jbe 0x10028eb1
cmp word [edx - 2], 0xa
je 0x10028eb1
add edx, 0xfffffffe
cmp edx, esi
ja 0x10028ea3
push 0
push 0
push 0
push ecx
lea ecx, [esp + 0x1c0]
call fcn.10025ad0
movd xmm4, dword [esp + 0x40]
add esp, 0x10
cmp dword [esp + 0x60], 0
movss xmm0, dword [edi + 0x18a4]
movss xmm5, dword [eax]
cvtdq2ps xmm4, xmm4
movss dword [esp + 0xc0], xmm5
mulss xmm4, xmm0
movss dword [esp + 0x30], xmm4
jl 0x10028f5b
mov ecx, dword [esp + 0x28]
mov edx, ecx
cmp ecx, esi
jbe 0x10028f0e
cmp word [edx - 2], 0xa
je 0x10028f0e
add edx, 0xfffffffe
cmp edx, esi
ja 0x10028f00
push 0
push 0
push 0
push ecx
lea ecx, [esp + 0x1c8]
call fcn.10025ad0
movd xmm1, dword [esp + 0x70]
add esp, 0x10
movss xmm4, dword [esp + 0x30]
movss xmm5, dword [esp + 0xc0]
movss xmm0, dword [eax]
cvtdq2ps xmm1, xmm1
movss dword [esp + 0xa8], xmm0
movss xmm0, dword [edi + 0x18a4]
mulss xmm1, xmm0
movss dword [esp + 0x68], xmm1
mov ecx, dword [esp + 0x20]
movss xmm2, dword [esp + 0x80]
test cl, cl
je 0x10028f88
movd xmm1, dword [esp + 0x44]
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm0
movaps xmm0, xmm2
movss dword [esp + 0x64], xmm0
movss dword [esp + 0x50], xmm1
cmp byte [edi + 0x2b70], 0
je 0x10029047
test dword [ebp + 0x10], 0x1000
jne 0x10028fe8
movss xmm3, dword [edi + 0x1d44]
movaps xmm0, xmm2
comiss xmm3, xmm5
mulss xmm0, dword [0x100761f8]
movaps xmm1, xmm5
jbe 0x10028fc6
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
jmp 0x10028fd3
subss xmm1, xmm2
comiss xmm1, xmm3
jb 0x10028ff2
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1d44], xmm0
jmp 0x10028ff2
mov dword [edi + 0x1d44], 0
test cl, cl
je 0x10029047
mov eax, dword [esp + 0x48]
movaps xmm2, xmm4
subss xmm2, dword [edi + 0x18a4]
movss xmm1, dword [eax + 0x5c]
comiss xmm1, xmm2
jbe 0x10029018
xorps xmm0, xmm0
maxss xmm0, xmm2
jmp 0x10029028
movaps xmm0, xmm4
subss xmm0, dword [esp + 0x84]
maxss xmm0, xmm1
subss xmm1, xmm0
movss dword [eax + 0x5c], xmm0
addss xmm1, dword [eax + 0xcc]
movss dword [eax + 0xcc], xmm1
movss dword [esp + 0x7c], xmm1
movss xmm0, dword [edi + 0x1d44]
mov ecx, dword [edi + 0x1d50]
mov edx, dword [edi + 0x1d4c]
mov byte [edi + 0x2b70], 0
movss dword [esp + 0x44], xmm0
cmp edx, ecx
je 0x10029302
mov eax, ecx
cmovge ecx, edx
cmovl eax, edx
cmp byte [esp + 0x20], 0
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x24]
lea eax, [eax + ecx*2]
mov dword [esp + 0x40], eax
je 0x1002909b
xorps xmm0, xmm0
movss dword [esp + 0x9c], xmm0
jmp 0x100290a3
movss xmm0, dword [0x10076264]
mov eax, dword [0x10081d40]
lea ecx, [esp + 0x1a0]
movss dword [esp + 0x58], xmm0
movups xmm1, xmmword [eax + 0x1840]
movss xmm0, dword [eax + 0x1500]
movaps xmmword [esp + 0x1a0], xmm1
shufps xmm1, xmm1, 0xff
mulss xmm0, xmm1
movss dword [esp + 0x1ac], xmm0
call fcn.10006200
movss xmm1, dword [esp + 0x7c]
addss xmm1, dword [esp + 0x68]
movss xmm2, dword [esp + 0x78]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x60], eax
mov dword [esp + 0x1c], esi
subss xmm1, dword [0x100761b0]
addss xmm2, dword [esp + 0xa8]
movss dword [esp + 0x28], xmm1
cmp esi, ecx
jae 0x10029302
subss xmm2, dword [esp + 0x44]
movss xmm3, dword [edi + 0x18a4]
movss dword [esp + 0x68], xmm2
nop dword [eax]
nop word [eax + eax]
movss xmm0, dword [esp + 0xbc]
addss xmm0, xmm3
comiss xmm1, xmm0
ja 0x10029302
movss xmm0, dword [esp + 0xb4]
comiss xmm0, xmm1
jbe 0x1002918c
cmp esi, ecx
jae 0x100292d6
nop dword [eax]
movzx eax, word [esi]
add esi, 2
mov dword [esp + 0x1c], esi
cmp eax, 0xa
je 0x100292d6
cmp esi, ecx
jb 0x10029170
jmp 0x100292d6
push 1
push 0
lea eax, [esp + 0x24]
mov edx, esi
push eax
push ecx
lea ecx, [esp + 0xb8]
call fcn.10025ad0
movss xmm3, dword [esp + 0xb8]
xorps xmm5, xmm5
add esp, 0x10
comiss xmm5, xmm3
jb 0x100291f2
mov eax, dword [edi + 0x18a0]
cmp dword [eax + 0x1c], 0x20
jle 0x100291d1
mov eax, dword [eax + 0x24]
movss xmm0, dword [eax + 0x80]
jmp 0x100291d6
movss xmm0, dword [eax + 0x38]
mulss xmm0, dword [0x1007620c]
cvttss2si eax, xmm0
movd xmm3, eax
cvtdq2ps xmm3, xmm3
movss dword [esp + 0xa8], xmm3
movss xmm0, dword [esp + 0x9c]
lea eax, [esp + 0xb0]
subss xmm0, dword [edi + 0x18a4]
movss xmm4, dword [esp + 0x68]
lea ecx, [esp + 0x140]
movss xmm1, dword [esp + 0x58]
addss xmm3, xmm4
addss xmm1, dword [esp + 0x28]
addss xmm4, xmm5
addss xmm0, dword [esp + 0x28]
push eax
movss dword [esp + 0x11c], xmm3
movss dword [esp + 0x120], xmm1
movss dword [esp + 0x114], xmm4
movss dword [esp + 0x118], xmm0
call fcn.100043f0
lea eax, [esp + 0x140]
push eax
lea ecx, [esp + 0x114]
call fcn.10004510
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x1c4]
call fcn.100043f0
lea eax, [esp + 0x1c0]
push eax
lea ecx, [esp + 0x114]
call fcn.10004490
test al, al
je 0x100292c8
push 0xf
push ecx
mov dword [esp], 0
lea eax, [esp + 0x120]
push dword [esp + 0x68]
push eax
lea eax, [esp + 0x120]
push eax
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0x274]
call fcn.1001e7f0
mov ecx, dword [esp + 0x40]
movss xmm1, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
movss xmm3, dword [edi + 0x18a4]
movss xmm2, dword [esp + 0x78]
addss xmm1, xmm3
subss xmm2, dword [esp + 0x44]
movss dword [esp + 0x28], xmm1
movss dword [esp + 0x68], xmm2
cmp esi, ecx
jb 0x10029140
cmp byte [esp + 0x20], 0
mov esi, dword [edi + 0x1d38]
jne 0x1002931b
cmp esi, 0x200000
jge 0x100293c4
mov eax, dword [0x10081d40]
lea ecx, [esp + 0x190]
movups xmm0, xmmword [eax + 0x15a0]
movaps xmmword [esp + 0x190], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [eax + 0x1500]
movss dword [esp + 0x19c], xmm0
call fcn.10006200
movss xmm0, dword [esp + 0x78]
lea ecx, [esp + 0xb0]
subss xmm0, dword [esp + 0x44]
movss xmm2, dword [edi + 0x18a4]
mov edx, eax
xor eax, eax
cmp byte [esp + 0x20], al
cmovne ecx, eax
movss dword [esp + 0x9c], xmm0
movss xmm0, dword [esp + 0x7c]
subss xmm0, dword [0x100761b0]
push ecx
push ecx
mov ecx, dword [esp + 0x40]
mov dword [esp], eax
movss dword [esp + 0xa8], xmm0
lea eax, [esi + ecx]
mov esi, dword [esp + 0x50]
push eax
push ecx
push edx
mov ecx, dword [esi + 0x274]
lea eax, [esp + 0xb0]
push eax
push dword [edi + 0x18a0]
call fcn.1001eaa0
jmp 0x100293c8
mov esi, dword [esp + 0x48]
cmp byte [edi + 0xae], 0
je 0x10029418
movss xmm0, dword [edi + 0x2b6c]
xorps xmm1, xmm1
comiss xmm1, xmm0
jae 0x10029418
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x68], xmm0
fld qword [esp + 0x68]
fld qword [0x10076258]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
movss xmm0, dword [0x1007622c]
fstp qword [esp + 0x68]
movsd xmm1, qword [esp + 0x68]
cvtpd2ps xmm1, xmm1
comiss xmm0, xmm1
jae 0x10029418
xor al, al
jmp 0x1002941a
mov al, 1
movss xmm2, dword [esp + 0x7c]
movss xmm1, dword [esp + 0x78]
movss xmm3, dword [0x10076238]
addss xmm2, dword [esp + 0x30]
addss xmm1, dword [esp + 0xc0]
subss xmm2, dword [0x100761b0]
subss xmm1, dword [esp + 0x44]
movss dword [esp + 0x30], xmm2
movaps xmm0, xmm2
movss dword [esp + 0xc0], xmm1
movss dword [esp + 0x120], xmm1
subss xmm0, dword [edi + 0x18a4]
addss xmm0, dword [0x1007620c]
movss dword [esp + 0x124], xmm0
movaps xmm0, xmm1
addss xmm0, xmm3
movss dword [esp + 0x128], xmm0
movaps xmm0, xmm2
subss xmm0, dword [0x10076240]
movss dword [esp + 0x12c], xmm0
test al, al
je 0x1002956a
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x1d4]
call fcn.100043f0
lea eax, [esp + 0x1d0]
push eax
lea ecx, [esp + 0x124]
call fcn.10004490
test al, al
je 0x10029553
mov eax, dword [0x10081d40]
lea ecx, [esp + 0x140]
movups xmm1, xmmword [eax + 0x15a0]
movss xmm0, dword [eax + 0x1500]
movaps xmmword [esp + 0x140], xmm1
shufps xmm1, xmm1, 0xff
mulss xmm0, xmm1
movss dword [esp + 0x14c], xmm0
call fcn.10006200
movss xmm0, dword [esp + 0x120]
push ecx
mov ecx, dword [esi + 0x274]
mov dword [esp], 0x3f800000
push eax
lea eax, [esp + 0x70]
movss dword [esp + 0x70], xmm0
movss xmm0, dword [esp + 0x134]
push eax
lea eax, [esp + 0x12c]
movss dword [esp + 0x78], xmm0
push eax
call fcn.1001e600
movss xmm3, dword [0x10076238]
movss xmm2, dword [esp + 0x30]
movss xmm1, dword [esp + 0xc0]
cmp byte [esp + 0x3c], 0
mov esi, dword [esp + 0x38]
je 0x10029591
subss xmm2, dword [edi + 0x18a4]
subss xmm1, xmm3
movss dword [edi + 0x2c1c], xmm2
movss dword [edi + 0x2c18], xmm1
cmp byte [esp + 0x20], 0
je 0x100295d3
movss xmm0, dword [esp + 0x64]
lea ecx, [esp + 0x30]
addss xmm0, dword [0x100761b0]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x50]
addss xmm0, dword [edi + 0x18a4]
movss dword [esp + 0x34], xmm0
call fcn.10024aa0
call fcn.1000a910
call fcn.1000f600
mov eax, dword [esp + 0x74]
test al, al
je 0x100295e4
call fcn.1000eff0
mov eax, dword [esp + 0x74]
cmp byte [edi + 0x2c54], 0
je 0x10029601
test al, al
jne 0x10029601
push 0
mov edx, esi
lea ecx, [esp + 0x7c]
call fcn.10013bc0
add esp, 4
movss xmm0, dword [esp + 0x108]
comiss xmm0, dword [0x100761b0]
jbe 0x1002965c
movss xmm0, dword [edi + 0x154c]
xor edx, edx
addss xmm0, dword [esp + 0x90]
mov ecx, dword [esp + 0x98]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x8c]
addss xmm0, dword [edi + 0x1538]
movss dword [esp + 0x34], xmm0
push dword [esp + 0x34]
push dword [esp + 0x34]
push 1
call fcn.10006560
add esp, 0xc
mov cl, byte [esp + 0x2f]
test cl, cl
je 0x1002967d
mov eax, dword [0x10081d40]
mov byte [eax + 0x19b7], 1
mov eax, dword [eax + 0x1984]
or dword [eax + 0x110], 4
test byte [ebp + 0x10], 0x20
movzx eax, cl
movzx ecx, byte [esp + 0x1b]
pop edi
cmovne eax, ecx
pop esi
mov esp, ebp
pop ebp
ret