Function at 0x1007db90
Capabilities:
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c4
mov eax, dword [0x10258d1c]
xor eax, esp
mov dword [esp + 0x1c0], eax
mov ebp, dword [0x10258f60]
mov eax, dword [ebp + 0x19e4]
mov byte [eax + 0x7c], 1
mov edi, dword [ebp + 0x19e4]
cmp byte [edi + 0x7f], 0
je 0x1007dbe1
xor ebx, ebx
mov ecx, dword [esp + 0x1c0]
xor ecx, esp
call fcn.10155ad1
mov eax, ebx
add esp, 0x1c4
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x1e8]
mov ebx, eax
and ebx, 0x100080
cmp ebx, 0x100080
je 0x10080a57
mov ecx, eax
and ecx, 0x440
cmp ecx, 0x440
je 0x10080a57
mov dword [esp + 0x18], ecx
test eax, 0x4000
sete cl
mov dword [esp + 0x68], ecx
test eax, 0x40000
je 0x1007dc35
cmp dword [esp + 0x1ec], 0
je 0x10080a57
and eax, 0x100000
mov dword [esp + 0xc], eax
je 0x1007dc45
call fcn.1005b1e0
mov esi, dword [esp + 0x1e4]
mov dword [esp + 0xb8], edi
mov ecx, edi
push 0
mov edi, dword [esp + 0x1dc]
push edi
call fcn.1004b2b0
mov dword [esp + 8], eax
lea eax, [esp + 0x1b8]
push 0xbf800000
push 1
push 0
push edi
push eax
call fcn.10049ee0
add esp, 0x14
cmp dword [esp + 0xc], 0
mov dword [esp + 4], ebx
je 0x1007dcac
call fcn.1005adc0
fstp dword [esp + 0x10c]
movss xmm0, dword [esp + 0x10c]
mulss xmm0, dword [0x101a7f80]
jmp 0x1007dcb5
movss xmm0, dword [esp + 0x1bc]
movss xmm1, dword [ebp + 0x153c]
addss xmm1, xmm1
addss xmm1, xmm0
mov edi, dword [esp + 0xb8]
movss xmm0, dword [edi + 0x14]
addss xmm0, dword [0x101aec10]
addss xmm0, dword [0x101a62b4]
movss xmm2, dword [esi]
movss xmm3, dword [esi + 4]
sub esp, 0x14
movss dword [esp + 0x10], xmm1
movss dword [esp + 0xc], xmm0
movss dword [esp + 8], xmm3
movss dword [esp + 4], xmm2
lea eax, [esp + 0x1c4]
mov dword [esp], eax
call fcn.1004c8b0
add esp, 0x14
movsd xmm1, qword [edi + 0xc8]
movsd xmm0, qword [esp + 0x1b0]
addps xmm0, xmm1
movss xmm2, dword [0x101a79bc]
addps xmm2, xmm1
movlhps xmm2, xmm0
movups xmmword [esp + 0x1a0], xmm2
movss xmm2, dword [esp + 0x1b8]
xorps xmm1, xmm1
ucomiss xmm2, xmm1
mov ebx, dword [esp + 8]
jbe 0x1007dd61
addss xmm2, dword [ebp + 0x1550]
movaps xmm1, xmm2
xorps xmm2, xmm2
movss xmm2, xmm1
addps xmm2, xmm0
mov eax, dword [esp + 0x1a0]
mov ecx, dword [esp + 0x1a4]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x190], eax
movlps qword [esp + 0x198], xmm2
lea edi, [esp + 0x1a0]
cmp dword [esp + 0xc], 0
je 0x1007de43
lea esi, [esp + 0x190]
push edi
mov edi, ebx
push ebx
push esi
call fcn.1004bfb0
add esp, 0xc
test al, al
je 0x1007df9b
movsd xmm0, qword [esp + 0x1a0]
movsd xmm1, qword [esp + 0x1a8]
subps xmm1, xmm0
movlps qword [esp + 0x160], xmm1
lea eax, [esp + 0x160]
push 0
push eax
push edi
call fcn.10059070
add esp, 0xc
test al, al
je 0x1007e09e
mov dword [esp + 0x38], ebp
mov eax, dword [0x10258f60]
mov ecx, dword [eax + 0x19e4]
mov byte [ecx + 0x7c], 1
mov ecx, dword [eax + 0x19e4]
mov eax, dword [ecx + 0x138]
or dword [ecx + 0x140], eax
movss xmm0, dword [esp + 0x1b0]
mov dword [esp + 0xa8], ecx
subss xmm0, dword [ecx + 0x70]
movss dword [esp + 0x1b0], xmm0
mov ebp, edi
lea edi, [esp + 0x1a0]
jmp 0x1007de8d
mov dword [esp + 0x38], ebp
movss xmm0, dword [ebp + 0x153c]
sub esp, 8
movss dword [esp + 4], xmm0
lea esi, [esp + 0x198]
mov dword [esp], esi
call fcn.1004bf60
add esp, 8
push edi
mov ebp, ebx
push ebx
push esi
call fcn.1004bfb0
add esp, 0xc
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xa8], ecx
test al, al
je 0x1007dbc4
push ebp
push edi
call fcn.1004c5c0
add esp, 8
mov byte [esp + 0x88], al
test al, al
mov ebp, dword [esp + 0x38]
je 0x1007deb0
mov dword [ebp + 0x1cbc], 1
mov eax, dword [esp + 0x1e8]
test ax, ax
mov edi, ebx
jns 0x1007df64
mov ecx, dword [ebp + 0x18fc]
push 0x2a
call fcn.1006aea0
mov ecx, dword [ebp + 0x18fc]
movss xmm0, dword [ecx + 0x10]
movss dword [ebp + 0x2bf8], xmm0
movss xmm0, dword [ecx + 0x44]
movss dword [ebp + 0x2c2c], xmm0
movsd xmm0, qword [ecx + 0x30]
movsd qword [ebp + 0x2c18], xmm0
movss xmm0, dword [ecx + 0x48]
movss dword [ebp + 0x2c30], xmm0
movss xmm0, dword [ecx + 0x4c]
movss dword [ebp + 0x2c34], xmm0
mov ecx, dword [ecx + 0x38]
mov dword [ebp + 0x2c20], ecx
mov dword [ebp + 0x2c14], eax
movss xmm0, dword [eax + 4]
movss dword [ebp + 0x2bf4], xmm0
cmp dword [ebp + 0x2c08], 0
jne 0x10080a57
lea eax, [ebp + 0x2be8]
cmp dword [eax], 0
jne 0x10080a57
cmp dword [ebp + 0x2bfc], 0
jne 0x10080a57
push eax
call fcn.1005a8c0
add esp, 4
xor eax, eax
cmp dword [esp + 0x18], 0
sete al
push eax
push edi
mov esi, dword [esp + 0xc0]
push esi
call fcn.1004c730
add esp, 0xc
mov edx, eax
test al, al
je 0x1007dfbc
mov eax, dword [esi + 0x328]
cmp eax, dword [esi + 0x330]
sete al
mov dword [esp + 0x28], eax
jmp 0x1007dfc4
movss xmm0, dword [ebp + 0x153c]
sub esp, 8
movss dword [esp + 4], xmm0
mov dword [esp], esi
call fcn.1004bf60
add esp, 8
jmp 0x1007e0a3
mov dword [esp + 0x28], 0
mov ebx, dword [esp + 0x1e8]
cmp byte [esp + 0x88], 0
je 0x1007dfe4
cmp byte [ebp + 0x3d0], 0
setne al
mov dword [esp], eax
jmp 0x1007dfeb
mov dword [esp], 0
lea eax, [ebp + 0x1d78]
mov dword [esp + 0x18], eax
cmp dword [esp + 0xc], 0
je 0x1007e03b
cmp dword [ebp + 0x1a04], 0
jne 0x1007e03b
mov eax, dword [esp + 0x18]
cmp dword [eax], edi
jne 0x1007e03b
mov eax, dword [ebp + 0x1a08]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0xa8]
push 0
push str.SCROLLY
mov esi, ebx
mov ebx, edx
call fcn.1004b7c0
mov edx, ebx
mov ebx, esi
cmp dword [esp + 0x14], eax
sete al
jmp 0x1007e03d
xor eax, eax
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 0xe8], ecx
mov ecx, dword [esp + 0x1dc]
mov dword [esp + 0x14], ecx
cmp dword [ebp + 0x1a04], edi
jne 0x1007e077
or dl, byte [esp]
xor ecx, ecx
or dl, al
mov dword [esp + 0xc8], 0
je 0x1007e0dc
jmp 0x1007e392
mov ecx, ebx
mov byte [esp + 0xd8], dl
mov dl, 1
cmp dword [ebp + 0x1b08], edi
je 0x1007e0af
cmp dword [ebp + 0x1afc], edi
jne 0x1007e0ad
cmp dword [ebp + 0x1b1c], 3
sete dl
jmp 0x1007e0af
call fcn.10059680
call fcn.1005b3d0
jmp 0x1007dbc4
xor edx, edx
cmp dword [esp + 0xc], 0
sete bl
shr cl, 4
or cl, dl
mov byte [esp + 0x58], bl
and cl, bl
mov dword [esp + 0xc8], ecx
movzx ecx, byte [esp + 0xd8]
or cl, byte [esp]
or cl, al
jne 0x1007e0f3
test dl, dl
jne 0x1007e0f3
movzx eax, byte [ebp + 0x3d0]
mov dword [esp + 4], eax
test al, al
sete cl
xor esi, esi
jmp 0x1007e3df
mov dword [esp + 0x10], edx
mov eax, dword [ebp + 0x1da4]
mov dword [esp + 0x98], eax
push dword [esp + 0x1dc]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
mov ecx, dword [esp + 0x1e0]
lea esi, [ecx + 1]
mov eax, dword [ebp + 0x1d80]
cmp eax, ecx
jg 0x1007e197
test eax, eax
je 0x1007e13a
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
add ebx, eax
jmp 0x1007e13f
mov ebx, 8
cmp ebx, esi
cmovle ebx, esi
cmp eax, ebx
mov ebp, dword [esp + 0x38]
jge 0x1007e197
lea eax, [ebx + ebx]
push eax
call fcn.100484d0
add esp, 4
mov edx, dword [ebp + 0x1d84]
test edx, edx
je 0x1007e18b
mov ecx, dword [ebp + 0x1d7c]
add ecx, ecx
push ecx
push edx
push eax
mov dword [esp + 0x54], eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push dword [ebp + 0x1d84]
call fcn.10048500
mov eax, dword [esp + 0x4c]
add esp, 4
mov dword [ebp + 0x1d84], eax
mov dword [ebp + 0x1d80], ebx
mov dword [ebp + 0x1d7c], esi
lea esi, [edi + 1]
mov eax, dword [ebp + 0x1d8c]
cmp eax, edi
mov edi, dword [esp + 8]
jg 0x1007e214
test eax, eax
je 0x1007e1bf
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
add ebx, eax
jmp 0x1007e1c4
mov ebx, 8
cmp ebx, esi
cmovle ebx, esi
cmp eax, ebx
mov ebp, dword [esp + 0x38]
jge 0x1007e214
push ebx
call fcn.100484d0
add esp, 4
mov edi, eax
mov eax, dword [ebp + 0x1d90]
test eax, eax
je 0x1007e204
push dword [ebp + 0x1d88]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push dword [ebp + 0x1d90]
call fcn.10048500
add esp, 4
mov dword [ebp + 0x1d90], edi
mov dword [ebp + 0x1d8c], ebx
mov edi, dword [esp + 8]
mov dword [ebp + 0x1d88], esi
push esi
mov esi, dword [esp + 0x1e0]
push esi
push dword [ebp + 0x1d90]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esp + 0x160], 0
lea eax, [esp + 0x160]
push eax
push 0
push esi
push dword [esp + 0x1ec]
push dword [ebp + 0x1d84]
call fcn.100489a0
add esp, 0x14
mov dword [ebp + 0x1da4], eax
mov ecx, dword [esp + 0x160]
sub ecx, esi
mov dword [ebp + 0x1da0], ecx
mov dword [ebp + 0x2bd4], 0xbe99999a
cmp dword [ebp + 0x1d78], edi
mov ebx, dword [esp + 0x1e8]
mov ecx, dword [esp + 0x98]
jne 0x1007e2d9
cmp ecx, eax
jne 0x1007e2d9
mov ebp, dword [esp + 0x38]
movq xmm0, qword [ebp + 0x1db0]
movd xmm1, ecx
pshufd xmm1, xmm1, 0x50
movdqa xmm2, xmm1
pcmpgtd xmm2, xmm0
pand xmm0, xmm2
pandn xmm2, xmm1
por xmm2, xmm0
movq qword [ebp + 0x1db0], xmm2
mov eax, dword [ebp + 0x1db8]
cmp eax, ecx
cmovl ecx, eax
mov dword [ebp + 0x1db8], ecx
jmp 0x1007e34e
cmp byte [esp + 0x28], 0
movzx eax, byte [esp + 0xc8]
mov ecx, 1
cmove ecx, eax
cmp dword [esp + 0xc], 0
mov ebp, dword [esp + 0x38]
mov dword [ebp + 0x1d78], edi
xorps xmm0, xmm0
movups xmmword [ebp + 0x1dac], xmm0
mov dword [ebp + 0x2bc6], 0x630000
mov dword [ebp + 0x2bcc], 0
mov dword [ebp + 0x2bd0], 0x3e7
mov dword [ebp + 0x1dc4], 0
movzx edx, byte [esp + 0x58]
mov byte [ebp + 0x1dc0], dl
mov dword [ebp + 0x1dbc], 0x10000
cmovne ecx, eax
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x10]
movzx eax, byte [esp + 0xd8]
test ebx, 0x2000
je 0x1007e369
mov byte [ebp + 0x1dbc], 1
cmp dword [esp + 0xc], 0
jne 0x1007e392
xor al, 1
or al, byte [esp + 0x28]
cmp al, 1
jne 0x1007e389
cmp byte [esp], 0
je 0x1007e392
cmp byte [ebp + 0xf8], 0
je 0x1007e392
mov al, 1
mov dword [esp + 0xc8], eax
mov ebx, ecx
mov esi, dword [esp + 0xb8]
push esi
push edi
call fcn.1004baa0
add esp, 8
push esi
push edi
call fcn.1004bba0
add esp, 8
push esi
call fcn.1004d770
add esp, 4
mov dword [ebp + 0x1a20], 2
mov cl, 1
cmp dword [esp + 4], 0
jne 0x1007e3d5
mov dword [ebp + 0x1a1c], 0xc
mov dword [esp + 4], 0
mov esi, ebx
mov dword [esp + 0xd8], 0
cmp dword [ebp + 0x1a04], edi
jne 0x1007e757
mov byte [esp], cl
mov ebx, dword [esp + 0x1e8]
test ebx, 0x4000
je 0x1007e4ad
cmp byte [ebp + 0x1a14], 0
jne 0x1007e4ad
lea ecx, [ebp + 0x1d7c]
mov eax, dword [esp + 0x1e0]
inc eax
push eax
call fcn.100821e0
mov dword [esp + 0x160], 0
lea eax, [esp + 0x160]
push eax
push 0
mov ebx, dword [esp + 0x1e4]
push ebx
push dword [ebp + 0x1d7c]
push dword [ebp + 0x1d84]
call fcn.100489a0
add esp, 0x14
mov dword [ebp + 0x1da4], eax
mov ecx, dword [esp + 0x160]
sub ecx, ebx
mov ebx, dword [esp + 0x1e8]
mov dword [ebp + 0x1da0], ecx
mov ecx, dword [ebp + 0x1db0]
mov edx, dword [ebp + 0x1db4]
cmp ecx, eax
cmovge ecx, eax
mov dword [ebp + 0x1db0], ecx
cmp edx, eax
cmovge edx, eax
mov dword [ebp + 0x1db4], edx
mov ecx, dword [ebp + 0x1db8]
cmp ecx, eax
cmovl eax, ecx
mov dword [ebp + 0x1db8], eax
movzx eax, byte [ebp + 0xe8]
mov ecx, eax
xor cl, 1
mov edx, dword [ebp + 0x1da0]
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x1e0]
mov dword [ebp + 0x1da8], edx
mov dword [ebp + 0x2bdc], ebx
mov edx, dword [esp + 0x1ec]
mov dword [ebp + 0x2be0], edx
mov edx, dword [esp + 0x1f0]
mov dword [ebp + 0x2be4], edx
mov byte [ebp + 0x1a15], cl
mov dword [ebp + 0x2ec8], 1
cmp dword [esp + 0xc], 0
je 0x1007e52b
movss xmm1, dword [ebp + 0xe4]
mov ecx, dword [esp + 0xa8]
subss xmm1, dword [ecx + 0xcc]
subss xmm1, dword [ebp + 0x153c]
jmp 0x1007e53b
movss xmm1, dword [ebp + 0x1900]
mulss xmm1, dword [0x101a62c0]
movzx ebx, byte [ebp + 0xad]
cmp byte [esp + 0xc8], 0
mov edx, esi
je 0x1007e5cb
mov dword [ebp + 0x1db4], 0
mov eax, dword [ebp + 0x1da4]
mov dword [ebp + 0x1db8], eax
mov dword [ebp + 0x1db0], eax
mov byte [ebp + 0x1dbf], 0
mov byte [ebp + 0x2bd9], 1
cmp byte [ebp + 0x2bd9], 0
je 0x1007e591
cmp byte [ebp + 0xe8], 0
jne 0x1007e591
mov byte [ebp + 0x2bd9], 0
cmp dword [ebp + 0x14f0], 0
jle 0x1007e753
cmp byte [ebp + 0xf8], 0
je 0x1007e611
movzx ecx, byte [ebp + 0xfa]
test cl, cl
sete al
test bl, bl
je 0x1007e6dc
test cl, cl
mov ebx, dword [esp + 0x1e8]
jne 0x1007e620
jmp 0x1007e6e3
movss xmm0, dword [ebp + 0xe0]
subss xmm0, dword [esp + 0x1a0]
subss xmm0, dword [ebp + 0x1538]
addss xmm0, dword [ebp + 0x1dac]
test bl, bl
setne dl
movzx ecx, byte [esp + 0x88]
xor cl, 1
or dl, cl
jne 0x1007e62f
cmp byte [ebp + 0x3d5], 0
mov edx, esi
jne 0x1007e54e
jmp 0x1007e665
test bl, bl
mov ebx, dword [esp + 0x1e8]
je 0x1007e816
cmp byte [ebp + 0xfb], 0
setne al
jmp 0x1007e6e3
test bl, bl
mov edx, esi
je 0x1007e665
test cl, cl
jne 0x1007e665
cmp byte [ebp + 0x3d5], 0
je 0x1007e665
mov ecx, dword [esp + 0x18]
push 0x1000c
call fcn.10080ea0
mov ecx, dword [esp + 0x18]
push 0x3000d
call fcn.10080ea0
mov edx, esi
jmp 0x1007e578
cmp byte [ebp + 0x3d0], 0
je 0x1007e67b
cmp byte [ebp + 0x2bd9], 0
je 0x1007e8c0
test al, al
je 0x1007e578
cmp byte [ebp + 0x2bd9], 0
jne 0x1007e578
movss xmm3, dword [ebp + 0x370]
xorps xmm2, xmm2
ucomiss xmm3, xmm2
jne 0x1007e6b5
jp 0x1007e6b5
movss xmm3, dword [ebp + 0x374]
ucomiss xmm3, xmm2
jne 0x1007e6b5
jnp 0x1007e578
lea edx, [ebp + 0x1db0]
mov ecx, dword [esp + 0x18]
call fcn.100822c0
mov edx, esi
mov dword [ebp + 0x2bd4], 0xbe99999a
mov byte [ebp + 0x2bd8], 1
jmp 0x1007e578
mov ebx, dword [esp + 0x1e8]
mov ecx, ebx
shr ecx, 0xe
and ecx, 1
or cl, dl
or cl, al
je 0x1007e826
cmp dword [ebp + 0x14f4], 0
mov edi, dword [esp + 8]
jns 0x1007e749
push 0
call fcn.100484d0
add esp, 4
mov esi, eax
mov eax, dword [ebp + 0x14f8]
test eax, eax
je 0x1007e739
mov ecx, dword [ebp + 0x14f0]
add ecx, ecx
push ecx
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push dword [ebp + 0x14f8]
call fcn.10048500
add esp, 4
mov dword [ebp + 0x14f8], esi
mov dword [ebp + 0x14f4], 0
mov dword [ebp + 0x14f0], 0
movzx ecx, byte [esp]
xor ebx, ebx
cmp dword [ebp + 0x1a04], edi
jne 0x1007f248
cmp byte [ebp + 0x1a14], 0
setne al
xor cl, 1
xor ebx, ebx
or cl, al
jne 0x1007f248
movzx eax, byte [ebp + 0xf9]
mov dword [esp + 0x88], eax
movzx eax, byte [ebp + 0xad]
test al, al
mov byte [esp + 0x110], al
je 0x1007e7c7
cmp byte [ebp + 0xfb], 0
mov edi, dword [esp + 0x1e8]
je 0x1007e7f1
cmp byte [ebp + 0xf8], 0
je 0x1007e88e
xor eax, eax
mov ecx, dword [esp + 0x88]
jmp 0x1007e8a1
cmp byte [ebp + 0xf8], 0
mov edi, dword [esp + 0x1e8]
je 0x1007e8b7
mov cl, 1
cmp byte [ebp + 0xfb], 0
je 0x1007e9a0
xor eax, eax
jmp 0x1007e9b1
lea esi, [ebp + 0xfa]
lea eax, [ebp + 0xf8]
mov dword [esp + 0x10], eax
movzx ecx, byte [ebp + 0xf8]
movzx edx, byte [ebp + 0xfa]
xor eax, eax
jmp 0x1007e9c3
mov eax, ebx
shr eax, 0xe
and eax, 1
or al, dl
jne 0x1007e6f5
xor edi, edi
lea esi, [esp + 0x160]
jmp 0x1007e84d
inc edi
cmp edi, dword [ebp + 0x14f0]
jge 0x1007e6f5
mov eax, dword [ebp + 0x14f8]
movzx eax, word [eax + edi*2]
mov dword [esp + 0x160], eax
mov ecx, esi
mov edx, ebx
push dword [esp + 0x1f0]
push dword [esp + 0x1f0]
call fcn.100822f0
add esp, 8
test al, al
je 0x1007e840
mov ecx, dword [esp + 0x18]
push dword [esp + 0x160]
call fcn.10080ea0
jmp 0x1007e840
movzx eax, byte [ebp + 0xfa]
mov ecx, dword [esp + 0x88]
or al, cl
sete al
test cl, cl
je 0x1007e8ae
cmp byte [ebp + 0xf8], 0
je 0x1007e90d
mov dword [esp], 0
jmp 0x1007e91a
xor ecx, ecx
xor eax, eax
jmp 0x1007e9b1
cmp byte [esp + 0x88], 0
je 0x1007e578
cmp byte [ebp + 0x1dc0], 0
je 0x1007e8da
xorps xmm1, xmm1
mov ecx, dword [esp + 0x18]
call fcn.100863d0
mov dword [ebp + 0x1db0], eax
mov dword [ebp + 0x1db4], eax
mov dword [ebp + 0x1db8], eax
mov byte [ebp + 0x1dbf], 0
mov dword [ebp + 0x2bd4], 0xbe99999a
mov edx, esi
jmp 0x1007e578
cmp byte [ebp + 0xfa], 0
sete cl
mov dword [esp], ecx
lea esi, [ebp + 0xfa]
lea ecx, [ebp + 0xf8]
mov dword [esp + 0x10], ecx
cmp byte [ebp + 0xfa], 0
sete cl
cmp byte [ebp + 0xf8], 0
mov byte [esp + 0xc8], cl
mov edx, ecx
jne 0x1007e9e1
cmp byte [esp + 0x88], 0
je 0x1007e9ed
cmp byte [esi], 0
jne 0x1007e9ed
movzx ecx, byte [ebp + 0xfb]
test cl, cl
sete bl
mov dword [esp + 0x28], ebx
test al, al
je 0x1007eadd
mov dword [esp + 0x48], edx
mov edx, dword [0x10258f60]
mov eax, dword [edx + 0x7c]
test eax, eax
mov dword [esp + 0x98], esi
js 0x1008068a
xor ebx, ebx
mov edx, dword [esp + 0x48]
jmp 0x1007ea77
movzx eax, byte [ebp + 0xfa]
or al, byte [esp + 0x88]
sete al
lea esi, [ebp + 0xfa]
lea edx, [ebp + 0xf8]
mov dword [esp + 0x10], edx
mov edx, ecx
test dl, dl
sete byte [esp + 0xc8]
mov dword [esp], 0
mov edx, 0
test cl, cl
je 0x1007e94a
cmp byte [esp + 0x88], 0
je 0x1007ea29
xor edx, edx
mov dword [esp + 0x98], esi
test al, al
je 0x1007ea04
mov eax, dword [0x10258f60]
mov eax, dword [eax + 0x7c]
xor ebx, ebx
jmp 0x1007ea5f
mov dword [esp + 0x68], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x78], 0
jmp 0x1007ed8c
cmp byte [esi], 0
mov dword [esp + 0x98], esi
je 0x1007ea41
test al, al
je 0x100806d8
xor ebx, ebx
jmp 0x1007ea55
movzx ecx, byte [ebp + 0xfb]
test cl, cl
sete bl
test al, al
je 0x1007eb98
mov eax, dword [0x10258f60]
mov eax, dword [eax + 0x7c]
xor edx, edx
mov dword [esp + 0x28], 0
mov dword [esp + 0x58], 0
test eax, eax
js 0x1007ec04
mov dword [esp + 0x48], ebx
mov ebx, edx
mov cl, 1
mov dword [esp + 0x78], ecx
push 1
push eax
call fcn.10058700
add esp, 8
test al, al
je 0x1007eace
test edi, 0xc000
sete al
mov dword [esp + 0x58], eax
jne 0x1007ebbf
cmp dword [esp + 0xc], 0
mov edx, ebx
je 0x1007ebc1
mov eax, dword [ebp + 0x1db4]
cmp eax, dword [ebp + 0x1db8]
setne al
mov dword [esp + 0x58], eax
mov ebx, dword [esp + 0x48]
jmp 0x1007ec04
mov esi, dword [esp + 0x98]
mov edx, ebx
mov ebx, dword [esp + 0x48]
jmp 0x1007eae7
mov dword [esp + 0x78], 0
xor ebx, ebx
cmp byte [esp + 0x28], 0
mov dword [esp + 0x98], esi
je 0x1007eb86
mov eax, dword [0x10258f60]
mov eax, dword [eax + 0x5c]
test eax, eax
js 0x1007ebc7
mov dword [esp + 0x48], ebx
mov esi, edx
test di, di
sets byte [esp + 0x28]
mov ebx, edi
shr ebx, 0xe
and ebx, 1
push 1
push eax
call fcn.10058700
add esp, 8
xor al, 1
or al, bl
or al, byte [esp + 0x28]
mov ecx, eax
xor cl, 1
test al, al
jne 0x1007ebe6
cmp dword [esp + 0xc], 0
je 0x1007ebe6
mov eax, dword [ebp + 0x1db4]
cmp eax, dword [ebp + 0x1db8]
setne al
mov dword [esp + 0x58], eax
mov al, 1
mov dword [esp + 0x28], eax
cmp byte [esp + 0x78], 0
mov edi, dword [esp + 0x1e8]
mov edx, esi
jne 0x1007ebc1
xor ecx, ecx
mov ebx, dword [esp + 0x48]
test bl, bl
jne 0x1007ec78
jmp 0x1007ec68
mov dword [esp + 0x28], 0
mov dword [esp + 0x58], 0
jmp 0x1007ebfd
test cl, cl
je 0x100806ad
mov dword [esp + 0x68], 0
mov dword [esp + 0x58], 0
xor edx, edx
mov dword [esp + 0x78], 0
jmp 0x1007ed84
mov edx, ebx
mov ebx, dword [esp + 0x48]
jmp 0x1007ec04
mov al, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x58], 0
mov ecx, 0
cmp byte [esp + 0x78], 0
jne 0x1007ec04
jmp 0x1007ec74
mov al, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x58], ecx
mov edi, dword [esp + 0x1e8]
mov edx, esi
mov ebx, dword [esp + 0x48]
cmp byte [esp + 0x78], 0
je 0x1007ec72
mov eax, dword [0x10258f60]
mov eax, dword [eax + 0x74]
test eax, eax
js 0x1007ec4d
mov esi, edx
push 1
push eax
call fcn.10058700
add esp, 8
test al, al
je 0x1007ec60
test edi, 0x8000
sete al
jne 0x1007ec42
cmp dword [esp + 0xc], 0
je 0x1007ec42
mov eax, dword [ebp + 0x1db4]
cmp eax, dword [ebp + 0x1db8]
setne al
mov dword [esp + 0x78], eax
mov edx, esi
jmp 0x1007ecf1
mov cl, 1
test bl, bl
jne 0x1007ec78
mov dword [esp + 0x78], 0
jmp 0x1007ecf1
mov edx, esi
mov cl, 1
test bl, bl
jne 0x1007ec78
mov dword [esp + 0x78], 0
jmp 0x1007eced
xor ecx, ecx
test bl, bl
je 0x1007ec68
mov eax, dword [0x10258f60]
mov eax, dword [eax + 0x58]
test eax, eax
js 0x1007ecd0
mov dword [esp + 0x48], ecx
mov esi, edx
test di, di
sets bl
push 1
push eax
call fcn.10058700
add esp, 8
xor al, 1
or al, bl
mov ecx, eax
xor cl, 1
test al, al
jne 0x1007ece3
cmp dword [esp + 0xc], 0
je 0x1007ece3
mov eax, dword [ebp + 0x1db4]
cmp eax, dword [ebp + 0x1db8]
setne al
mov dword [esp + 0x78], eax
cmp byte [esp + 0x48], 0
mov edx, esi
jne 0x1007ecf1
jmp 0x1007ed50
mov dword [esp + 0x78], 0
mov ebx, 0
test cl, cl
jne 0x1007ecf1
jmp 0x1007ed52
mov dword [esp + 0x78], ecx
mov edx, esi
mov ecx, dword [esp + 0x48]
test cl, cl
je 0x1007ed50
mov eax, dword [0x10258f60]
mov ecx, dword [eax + 0x78]
test ecx, ecx
js 0x1007ed17
mov bl, 1
push 1
push ecx
mov esi, edx
call fcn.10058700
mov edx, esi
add esp, 8
test al, al
je 0x1007ed52
jmp 0x1007edb0
cmp byte [esp + 0x28], 0
je 0x1007eda8
mov eax, dword [eax + 0x58]
test eax, eax
mov ecx, dword [esp + 0x1e8]
js 0x1007eda8
test ecx, 0x4000
sete bl
push 1
push eax
mov esi, edx
call fcn.10058700
mov edx, esi
add esp, 8
and al, bl
mov dword [esp + 0x68], eax
jmp 0x1007edb0
xor ebx, ebx
cmp byte [esp + 0x28], 0
je 0x1007ed78
mov eax, dword [0x10258f60]
mov eax, dword [eax + 0x58]
test eax, eax
js 0x1007ed78
push 1
push eax
mov esi, edx
call fcn.10058700
mov edx, esi
add esp, 8
test al, al
jne 0x1007ed80
mov dword [esp + 0x68], 0
test bl, bl
jne 0x1007edb0
mov dword [esp + 0x28], 0
mov dword [esp + 0x48], 0
mov ebx, 0
cmp byte [esp], 0
jne 0x1007ee2a
jmp 0x1007ee68
mov dword [esp + 0x68], 0
mov esi, edx
mov ecx, dword [0x10258f60]
mov eax, dword [ecx + 0x84]
test eax, eax
js 0x1007edd5
push 1
push eax
call fcn.10058700
add esp, 8
mov ecx, dword [0x10258f60]
jmp 0x1007edd7
xor eax, eax
mov ebx, dword [esp + 0x1e8]
and ebx, 0x14000
sete dl
and dl, al
mov dword [esp + 0x48], edx
mov eax, dword [ecx + 0x80]
test eax, eax
js 0x1007ee1c
mov cl, 1
mov dword [esp + 0x28], ecx
push 1
push eax
call fcn.10058700
add esp, 8
test al, al
jne 0x1007ee57
mov al, 1
mov dword [esp + 0x28], eax
cmp byte [esp], 0
mov edx, esi
jne 0x1007ee2a
jmp 0x1007ee60
mov al, 1
mov dword [esp + 0x28], eax
cmp byte [esp], 0
je 0x1007ee64
mov edx, esi
mov eax, dword [0x10258f60]
mov eax, dword [eax + 0x84]
test eax, eax
js 0x1007ee60
mov esi, edx
push 1
push eax
call fcn.10058700
add esp, 8
test al, al
je 0x1007ee64
mov ebx, dword [esp + 0x1e8]
and ebx, 0x14000
mov edx, esi
test ebx, ebx
sete bl
jmp 0x1007ee68
xor ebx, ebx
jmp 0x1007ee68
xor ebx, ebx
mov edx, esi
mov edi, dword [esp + 0x88]
shl edi, 0x11
mov eax, dword [0x10258f60]
mov ecx, dword [eax + 0x38]
test ecx, ecx
js 0x1007eeb6
mov esi, edx
push 1
push ecx
call fcn.10058700
add esp, 8
test al, al
je 0x1007eeaf
cmp byte [esp + 0xc8], 0
mov eax, 0x10000
mov ecx, 0x1000c
cmovne ecx, eax
mov eax, esi
test al, al
mov eax, 0x10004
jmp 0x1007eeec
mov eax, dword [0x10258f60]
mov edx, esi
mov ecx, dword [eax + 0x3c]
test ecx, ecx
js 0x1007ef18
mov esi, edx
push 1
push ecx
call fcn.10058700
add esp, 8
test al, al
je 0x1007ef11
cmp byte [esp + 0xc8], 0
mov eax, 0x10001
mov ecx, 0x1000d
cmovne ecx, eax
mov eax, esi
test al, al
mov eax, 0x10005
cmove eax, ecx
or eax, edi
mov ecx, dword [esp + 0x18]
push eax
call fcn.10080ea0
xor ebx, ebx
mov dword [esp], 0
mov eax, dword [esp + 4]
mov edi, dword [esp + 8]
jmp 0x1007f253
mov eax, dword [0x10258f60]
mov edx, esi
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x1007ef78
mov esi, edx
push 1
push ecx
call fcn.10058700
add esp, 8
cmp dword [esp + 0xc], 0
je 0x1007ef71
test al, al
je 0x1007ef71
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
je 0x1007f046
mov eax, dword [esp + 0xa8]
movss xmm0, dword [eax + 0x5c]
subss xmm0, dword [ebp + 0x1900]
xorps xmm1, xmm1
cmpless xmm1, xmm0
andps xmm1, xmm0
sub esp, 8
mov dword [esp], eax
movss dword [esp + 4], xmm1
jmp 0x1007efd9
mov eax, dword [0x10258f60]
mov edx, esi
mov ecx, dword [eax + 0x44]
test ecx, ecx
js 0x1007efeb
mov esi, edx
push 1
push ecx
call fcn.10058700
add esp, 8
cmp dword [esp + 0xc], 0
je 0x1007efe6
test al, al
je 0x1007efe6
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
je 0x1007f08d
call fcn.1005af30
fstp dword [esp + 0x108]
mov eax, dword [esp + 0xa8]
movss xmm0, dword [eax + 0x5c]
addss xmm0, dword [ebp + 0x1900]
minss xmm0, dword [esp + 0x108]
sub esp, 8
movss dword [esp + 4], xmm0
mov dword [esp], eax
call fcn.1005ab90
add esp, 8
jmp 0x1007eefb
mov eax, dword [0x10258f60]
mov ecx, dword [eax + 0x50]
test ecx, ecx
js 0x1007f01b
push 1
push ecx
call fcn.10058700
add esp, 8
test al, al
je 0x1007f016
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
add eax, eax
or eax, edi
or eax, 0x10004
jmp 0x1007eef1
mov eax, dword [0x10258f60]
mov ecx, dword [eax + 0x54]
test ecx, ecx
js 0x1007f05f
push 1
push ecx
call fcn.10058700
add esp, 8
test al, al
je 0x1007f05a
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
add eax, eax
or eax, edi
or eax, 0x10005
jmp 0x1007eef1
mov eax, esi
movzx eax, al
shl eax, 2
or eax, edi
or eax, 0x10002
jmp 0x1007eef1
mov eax, dword [0x10258f60]
mov ecx, dword [eax + 0x5c]
test ecx, ecx
js 0x1007f0a6
push 1
push ecx
call fcn.10058700
add esp, 8
test dword [esp + 0x1e8], 0x4000
jne 0x1007f0a1
test al, al
je 0x1007f0a1
or edi, 0x10008
jmp 0x1007f127
mov eax, esi
movzx eax, al
shl eax, 2
or eax, edi
or eax, 0x10003
jmp 0x1007eef1
mov eax, dword [0x10258f60]
mov ecx, dword [eax + 0x60]
test ecx, ecx
js 0x1007f136
push 1
push ecx
call fcn.10058700
add esp, 8
test dword [esp + 0x1e8], 0x4000
jne 0x1007f131
test al, al
je 0x1007f131
mov eax, dword [ebp + 0x1db4]
cmp eax, dword [ebp + 0x1db8]
jne 0x1007f121
mov eax, 0x3000c
cmp byte [esp + 0xc8], 0
je 0x1007f117
cmp byte [esp + 0x110], 0
je 0x1007f121
cmp byte [ebp + 0xfb], 0
je 0x1007f121
mov eax, dword [esp + 0x98]
cmp byte [eax], 0
jne 0x1007f121
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
jne 0x1007f121
mov eax, 0x30004
mov ecx, dword [esp + 0x18]
push eax
call fcn.10080ea0
or edi, 0x10009
mov ecx, dword [esp + 0x18]
push edi
jmp 0x1007eef6
mov eax, dword [0x10258f60]
mov eax, dword [eax + 0x68]
test eax, eax
js 0x1007f1a6
push 1
push eax
call fcn.10058700
add esp, 8
test al, al
je 0x1007f1a6
cmp dword [esp + 0xc], 0
je 0x10080785
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
mov edx, dword [esp + 0x1e8]
test edx, 0x800
jne 0x10080867
test al, al
movzx ecx, byte [esp + 4]
mov esi, 1
cmove esi, ecx
xor ebx, ebx
test edx, 0x4000
mov edi, dword [esp + 8]
jne 0x1008098b
mov ecx, eax
mov dword [esp], ecx
test al, al
mov eax, esi
je 0x1008089a
jmp 0x1007f253
test dword [esp + 0x1e8], 0x400
je 0x1007f1e4
mov eax, dword [0x10258f60]
mov eax, dword [eax + 0x34]
test eax, eax
js 0x1007f1e4
push 1
push eax
call fcn.10058700
add esp, 8
test al, al
je 0x1007f1e4
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
jne 0x1007f1e4
cmp byte [ebp + 0xf9], 0
je 0x100809cc
mov eax, dword [0x10258f60]
mov eax, dword [eax + 0x6c]
test eax, eax
js 0x1007f20f
push 1
push eax
call fcn.10058700
add esp, 8
test al, al
je 0x1007f20f
mov bl, 1
mov dword [esp], 0
mov al, 1
jmp 0x1007ef08
mov eax, dword [esp + 0x48]
or bl, al
cmp bl, 1
mov edi, dword [esp + 8]
jne 0x100806fa
movzx eax, al
xor eax, 0x1000b
mov ecx, dword [esp + 0x18]
push eax
call fcn.10080ea0
mov eax, dword [ebp + 0x1db0]
mov dword [ebp + 0x1db8], eax
mov dword [ebp + 0x1db4], eax
xor ebx, ebx
mov dword [esp], 0
mov eax, dword [esp + 4]
xor esi, esi
cmp dword [ebp + 0x1a04], edi
jne 0x1007f2a2
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x1e8]
shr eax, 0xe
and eax, 1
mov ecx, ebx
xor cl, 1
or cl, al
mov edi, 0
jne 0x1007f2c2
mov esi, dword [ebp + 0x1d90]
push esi
push dword [esp + 0x1e0]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
je 0x1007f2be
mov edi, dword [ebp + 0x1d88]
dec edi
jmp 0x1007f2c2
mov dword [esp + 4], 0
mov ebx, dword [esp + 0x1e8]
test al, al
jne 0x1007f7c6
jmp 0x1007f7d3
xor edi, edi
xor esi, esi
mov dword [esp + 0x68], esi
test bl, bl
mov ebx, dword [esp + 0x1e8]
je 0x1007f2e4
test bl, 0x20
je 0x1007f69b
cmp byte [esp], 0
je 0x1007f69b
test ebx, 0x4000
jne 0x1007f393
mov ecx, dword [ebp + 0x1d7c]
mov eax, dword [ebp + 0x1d98]
lea ebx, [ecx*4 + 1]
cmp eax, ebx
jge 0x1007f36f
test eax, eax
je 0x1007f318
mov esi, eax
shr esi, 0x1f
add esi, eax
sar esi, 1
add esi, eax
jmp 0x1007f31d
mov esi, 8
cmp esi, ebx
cmovle esi, ebx
cmp eax, esi
mov ebp, dword [esp + 0x38]
jge 0x1007f36f
push esi
call fcn.100484d0
add esp, 4
mov ecx, dword [ebp + 0x1d9c]
test ecx, ecx
je 0x1007f363
push dword [ebp + 0x1d94]
push ecx
push eax
mov dword [esp + 0x10], eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push dword [ebp + 0x1d9c]
call fcn.10048500
mov eax, dword [esp + 8]
add esp, 4
mov dword [ebp + 0x1d9c], eax
mov dword [ebp + 0x1d98], esi
mov dword [ebp + 0x1d94], ebx
push 0
push dword [ebp + 0x1d84]
push ebx
push dword [ebp + 0x1d9c]
call fcn.10048b80
add esp, 0x10
mov ebx, dword [esp + 0x1e8]
test ebx, 0x1c0
je 0x1007f66f
cmp dword [esp + 0x1ec], 0
je 0x10080a57
test bl, 0x40
je 0x1007f3d6
mov eax, dword [0x10258f60]
mov eax, dword [eax + 0x34]
test eax, eax
js 0x1007f3d6
push 1
push eax
call fcn.10058700
add esp, 8
test al, al
je 0x1007f3d6
xor eax, eax
mov ecx, 0x40
jmp 0x1007f43e
test bl, bl
jns 0x1007f428
mov eax, dword [0x10258f60]
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x1007f406
push 1
push ecx
call fcn.10058700
add esp, 8
test al, al
je 0x1007f401
mov eax, 3
mov ecx, 0x80
jmp 0x1007f43e
mov eax, dword [0x10258f60]
mov eax, dword [eax + 0x44]
test eax, eax
js 0x1007f428
push 1
push eax
call fcn.10058700
add esp, 8
test al, al
je 0x1007f428
mov eax, 4
mov ecx, 0x80
jmp 0x1007f43e
test ebx, 0x100
je 0x1007f66f
mov eax, 0x15
mov ecx, 0x100
xorps xmm0, xmm0
movups xmmword [esp + 0x16c], xmm0
movups xmmword [esp + 0x17c], xmm0
mov dword [esp + 0x18c], 0
mov dword [esp + 0x160], ecx
mov dword [esp + 0x164], ebx
mov ecx, dword [esp + 0x1f0]
mov dword [esp + 0x168], ecx
mov dword [esp + 0x170], eax
mov eax, dword [ebp + 0x1d9c]
mov dword [esp + 0x174], eax
mov eax, dword [ebp + 0x1da0]
mov dword [esp + 0x178], eax
mov eax, dword [ebp + 0x1da8]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x38]
mov ebp, dword [eax + 0x1d84]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x1db0]
lea eax, [ebp + eax*2]
push eax
push ebp
call fcn.10048cc0
add esp, 8
mov esi, eax
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x1db4]
lea eax, [ebp + eax*2]
push eax
push ebp
call fcn.10048cc0
add esp, 8
mov ebx, eax
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x1db8]
lea eax, [ebp + eax*2]
push eax
push ebp
mov ebp, dword [esp + 0x40]
call fcn.10048cc0
add esp, 8
mov dword [esp + 4], eax
mov dword [esp + 0x18c], eax
lea eax, [esp + 0x160]
push eax
call dword [esp + 0x1f0]
add esp, 4
mov eax, dword [esp + 0x174]
cmp eax, dword [ebp + 0x1d9c]
jne 0x10080a57
mov ecx, dword [esp + 0x17c]
cmp ecx, dword [ebp + 0x1da8]
jne 0x10080a57
mov ecx, dword [esp + 0x1e8]
cmp dword [esp + 0x164], ecx
jne 0x10080a57
mov ecx, dword [esp + 0x184]
cmp ecx, esi
je 0x1007f589
add ecx, eax
push ecx
push eax
call fcn.10048930
add esp, 8
mov dword [ebp + 0x1db0], eax
mov byte [ebp + 0x2bd8], 1
mov eax, dword [esp + 0x188]
cmp eax, ebx
je 0x1007f5ad
mov ecx, dword [esp + 0x174]
add eax, ecx
push eax
push ecx
call fcn.10048930
add esp, 8
mov dword [ebp + 0x1db4], eax
mov eax, dword [esp + 0x18c]
cmp eax, dword [esp + 4]
mov ebx, dword [esp + 0x1e8]
je 0x1007f5da
mov ecx, dword [esp + 0x174]
add eax, ecx
push eax
push ecx
call fcn.10048930
add esp, 8
mov dword [ebp + 0x1db8], eax
cmp byte [esp + 0x180], 0
je 0x1007f66f
mov esi, dword [esp + 0x174]
mov ebx, dword [esp + 0x178]
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
cmp ebx, eax
jne 0x10080a57
test dword [esp + 0x1e8], 0x40000
je 0x1007f632
sub ebx, dword [esp + 0xd8]
jle 0x1007f632
lea ecx, [ebp + 0x1d7c]
add ebx, dword [ecx]
push ebx
call fcn.100821e0
mov esi, dword [esp + 0x174]
push 0
push 0
push esi
push dword [ebp + 0x1d7c]
push dword [ebp + 0x1d84]
call fcn.100489a0
add esp, 0x14
mov dword [ebp + 0x1da4], eax
mov eax, dword [esp + 0x178]
mov dword [ebp + 0x1da0], eax
mov dword [ebp + 0x2bd4], 0xbe99999a
mov ebx, dword [esp + 0x1e8]
test ebx, 0x4000
jne 0x1007f69b
mov esi, dword [ebp + 0x1d9c]
push dword [esp + 0x1dc]
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
je 0x1007f69b
mov edi, dword [ebp + 0x1da0]
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x68]
test esi, esi
setne al
mov dword [esp + 4], eax
je 0x1007f799
test edi, edi
js 0x10080a57
test ebx, 0x40000
je 0x1007f776
cmp dword [esp + 0xd8], edi
je 0x1007f776
xorps xmm0, xmm0
movups xmmword [esp + 0x16c], xmm0
movups xmmword [esp + 0x17c], xmm0
mov dword [esp + 0x18c], 0
mov dword [esp + 0x160], 0x40000
mov dword [esp + 0x164], ebx
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], edi
inc edi
mov eax, dword [esp + 0x1e0]
cmp eax, edi
cmovg edi, eax
mov dword [esp + 0x17c], edi
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0x168], eax
lea eax, [esp + 0x160]
push eax
call dword [esp + 0x1f0]
add esp, 4
mov eax, dword [esp + 0x178]
mov ecx, dword [esp + 0x17c]
lea edi, [ecx - 1]
cmp eax, edi
cmovl edi, eax
mov dword [esp + 0xe8], ecx
cmp edi, ecx
jg 0x10080a57
mov eax, dword [esp + 0x174]
jmp 0x1007f77d
mov eax, dword [esp + 0x1dc]
inc edi
mov ecx, dword [esp + 0xe8]
cmp edi, ecx
cmovge edi, ecx
push edi
push esi
mov dword [esp + 0x1c], eax
push eax
call fcn.100484a0
add esp, 0xc
mov eax, dword [esp + 0x88]
mov dword [ebp + 0x2bdc], 0
mov dword [ebp + 0x2be0], 0
mov dword [ebp + 0x2be4], 0
mov edi, dword [esp + 8]
test al, al
je 0x1007f7d3
cmp dword [ebp + 0x1a04], edi
jne 0x1007f7d3
call fcn.1004bc30
test ebx, 0x4000
jne 0x1007f7ed
cmp dword [ebp + 0x1a04], edi
jne 0x1007f7ed
mov eax, dword [ebp + 0x1d9c]
mov dword [esp + 0x14], eax
cmp dword [esp + 0xc], 0
jne 0x1007f8f4
mov ebx, dword [esp + 0xb8]
mov esi, dword [ebx + 0x274]
movss xmm0, dword [ebp + 0x1500]
movsd xmm1, qword [0x101a7c30]
movsd qword [esp + 0x160], xmm1
mov dword [esp + 0x168], 0x3b808081
movss dword [esp + 0x16c], xmm0
lea edi, [esp + 0x160]
push edi
call fcn.10048d50
add esp, 4
mov ecx, esi
push 0x3f800000
push 0xf
push 0
push eax
lea eax, [esp + 0x1b8]
push eax
lea eax, [esp + 0x1b4]
push eax
call fcn.10061d80
mov esi, dword [ebx + 0x274]
movss xmm0, dword [ebp + 0x1500]
movsd xmm1, qword [0x101aea80]
movsd qword [esp + 0x160], xmm1
mov dword [esp + 0x168], 0x3e24a4a5
movss dword [esp + 0x16c], xmm0
push edi
call fcn.10048d50
add esp, 4
movsd xmm0, qword [esp + 0x1a0]
movsd xmm1, qword [esp + 0x1a8]
addps xmm1, xmmword [0x101a7770]
movlps qword [esp + 0x148], xmm1
addps xmm0, xmmword [0x101a7790]
movlps qword [esp + 0x158], xmm0
lea edx, [esp + 0x148]
lea edi, [esp + 0x158]
mov ecx, esi
push 0x3f800000
push 0xf
push 0
push eax
push edx
push edi
mov edi, dword [esp + 0x20]
call fcn.10061d80
movsd xmm2, qword [esp + 0x1a0]
movsd xmm0, qword [esp + 0x1b0]
addps xmm0, xmm2
movaps xmm1, xmm2
movups xmmword [esp + 0x88], xmm0
movlhps xmm1, xmm0
movups xmmword [esp + 0xc8], xmm1
movups xmmword [esp + 0x148], xmm1
cmp dword [esp + 0xc], 0
je 0x1007f982
mov ecx, dword [esp + 0xa8]
mov esi, dword [ecx + 0xc8]
mov eax, edi
mov edi, dword [ecx + 0xcc]
mov dword [esp + 0x15c], edi
mov dword [esp + 0x158], esi
mov edx, dword [esp + 0x18]
cmp dword [edx], eax
jne 0x1007f9aa
mov ebx, dword [ebp + 0x1a04]
push 0
push str.SCROLLY
movups xmmword [esp + 0xe0], xmm2
call fcn.1004b7c0
movups xmm2, xmmword [esp + 0xd8]
cmp ebx, eax
sete al
jmp 0x1007f9ac
movsd xmm1, qword [ebp + 0x1538]
addps xmm1, xmm2
movlps qword [esp + 0x158], xmm1
cmp dword [ebp + 0x1a04], edi
jne 0x1007fad1
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
jmp 0x1007f9e4
xor eax, eax
movd xmm1, esi
movd xmm0, edi
mov ecx, dword [esp + 8]
cmp dword [ebp + 0x1a04], ecx
je 0x1007f9e4
test al, al
jne 0x1007f9e4
xor eax, eax
mov ebx, dword [esp + 0x14]
nop word [eax + eax]
movzx ecx, byte [ebx]
inc ebx
test ecx, ecx
je 0x1007faff
cmp ecx, 0xa
jne 0x1007f9d0
inc eax
jmp 0x1007f9d0
movdqu xmmword [esp + 0x58], xmm0
movups xmm3, xmmword [esp + 0x88]
shufps xmm3, xmm3, 0x55
movaps xmm4, xmm2
shufps xmm4, xmm2, 0x55
movss xmm0, dword [ebp + 0x18]
addss xmm0, dword [ebp + 0x2bd4]
movss dword [ebp + 0x2bd4], xmm0
mov edx, dword [ebp + 0x1d84]
mov eax, dword [ebp + 0x1db0]
mov ecx, ebp
lea ebp, [edx + eax*2]
mov edi, edx
mov eax, dword [ecx + 0x1db4]
mov edx, dword [ecx + 0x1db8]
xor esi, esi
xor ebx, ebx
xor ecx, ecx
cmp eax, edx
setne bl
cmovl edx, eax
sete cl
lea eax, [edi + edx*2]
mov edx, edi
mov edi, 0
cmove eax, esi
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xc]
shr eax, 0x14
sub eax, ecx
neg ebx
or ebx, 0xfffffc19
add eax, 2
mov esi, 0xffffffff
mov ecx, edx
mov dword [esp + 0x10], edx
jmp 0x1007fa8b
test edx, edx
je 0x1007fbd5
add ecx, 2
movzx edx, word [ecx]
cmp edx, 0xa
jne 0x1007fa80
inc edi
cmp esi, 0xffffffff
jne 0x1007fab0
mov esi, 0xffffffff
cmp ecx, ebp
jb 0x1007fab0
cmp eax, 2
jl 0x1007fbcf
dec eax
mov esi, edi
nop
cmp ebx, 0xffffffff
jne 0x1007fa88
mov ebx, 0xffffffff
cmp ecx, dword [esp + 0xb8]
jb 0x1007fa88
cmp eax, 2
jl 0x1007fbd3
dec eax
mov ebx, edi
jmp 0x1007fa88
push dword [esp + 0x14]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
cmp eax, 0x1fffff
jg 0x100805bc
mov ebx, eax
add ebx, dword [esp + 0x14]
xorps xmm0, xmm0
movups xmmword [esp + 0x38], xmm0
lea edi, [esp + 0x148]
jmp 0x1007fb23
inc eax
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mulss xmm0, dword [ebp + 0x1900]
movss xmm1, dword [esp + 0x1b0]
unpcklps xmm1, xmm0
movups xmmword [esp + 0x38], xmm1
dec ebx
xor edi, edi
mov eax, dword [esp + 0xa8]
mov esi, dword [eax + 0x274]
movss xmm0, dword [ebp + 0x1500]
movsd xmm1, qword [0x101aee10]
movsd qword [esp + 0x160], xmm1
mov dword [esp + 0x168], 0x3f3ebebf
movss dword [esp + 0x16c], xmm0
lea eax, [esp + 0x160]
push eax
call fcn.10048d50
add esp, 4
movss xmm0, dword [ebp + 0x1900]
mov ecx, dword [ebp + 0x18fc]
sub esp, 0x20
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
lea eax, [esp + 0x178]
mov dword [esp + 8], eax
movss dword [esp + 4], xmm0
mov dword [esp], ecx
mov dword [esp + 0x18], 0
mov ecx, esi
call fcn.10062400
mov edi, dword [esp + 8]
movdqu xmm5, xmmword [esp + 0x38]
cmp dword [esp + 0xc], 0
jne 0x1008053a
jmp 0x100805bc
mov esi, edi
jmp 0x1007fbd5
mov ebx, edi
movups xmmword [esp + 0xd8], xmm2
push dword [esp + 0x10]
push ebp
movdqu xmmword [esp + 0x20], xmm1
movups xmmword [esp + 0x50], xmm3
movups xmmword [esp + 0x80], xmm4
call fcn.10048530
movups xmm4, xmmword [esp + 0x20]
add esp, 8
mov edx, dword [0x10258f60]
mov ecx, dword [edx + 0x18fc]
movss xmm0, dword [edx + 0x1900]
divss xmm0, dword [ecx + 0x10]
mov dword [esp + 0x68], ecx
add ecx, 0xc
mov dword [esp + 0xe8], ecx
xorps xmm2, xmm2
xorps xmm5, xmm5
nop
cmp eax, ebp
jae 0x1007fc89
movzx edx, word [eax]
add eax, 2
cmp edx, 0xd
je 0x1007fc30
cmp edx, 0xa
je 0x1007fc76
lea ecx, [edx*4]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x68]
add ecx, dword [ebx + 8]
mov ebx, dword [esp + 0x68]
cmp dword [ebx], edx
mov ebx, dword [esp + 0x28]
cmovle ecx, dword [esp + 0xe8]
movss xmm1, dword [ecx]
mulss xmm1, xmm0
addss xmm5, xmm1
jmp 0x1007fc30
movaps xmm1, xmm5
cmpless xmm1, xmm2
andps xmm2, xmm1
andnps xmm1, xmm5
orps xmm2, xmm1
jmp 0x1007fc2c
movups xmmword [esp + 0x98], xmm2
inc edi
cmp esi, 0xffffffff
cmove esi, edi
cmp ebx, 0xffffffff
xorps xmm1, xmm1
cvtsi2ss xmm1, esi
mov dword [esp + 0x100], edi
cmove ebx, edi
mov ebp, dword [esp + 0x38]
movss xmm6, dword [ebp + 0x1900]
test ebx, ebx
js 0x1007fd9d
movss dword [esp + 0x110], xmm1
push dword [esp + 0x10]
mov esi, dword [esp + 0xbc]
push esi
movups xmmword [esp + 0xf0], xmm5
movups xmmword [esp + 0x30], xmm6
call fcn.10048530
movups xmm6, xmmword [esp + 0x30]
movups xmm5, xmmword [esp + 0xf0]
movups xmm4, xmmword [esp + 0x20]
add esp, 8
mov edx, dword [0x10258f60]
mov ecx, dword [edx + 0x18fc]
movss xmm0, dword [edx + 0x1900]
divss xmm0, dword [ecx + 0x10]
lea edx, [ecx + 0xc]
xorps xmm1, xmm1
xorps xmm2, xmm2
nop
cmp eax, esi
jae 0x1007fd6f
movzx edi, word [eax]
add eax, 2
cmp edi, 0xd
je 0x1007fd20
cmp edi, 0xa
je 0x1007fd5c
lea ebp, [edi*4]
add ebp, dword [ecx + 8]
cmp dword [ecx], edi
cmovle ebp, edx
movaps xmm3, xmm2
movss xmm2, dword [ebp]
mov ebp, dword [esp + 0x38]
mulss xmm2, xmm0
addss xmm3, xmm2
movaps xmm2, xmm3
jmp 0x1007fd20
movaps xmm3, xmm2
cmpless xmm2, xmm1
andps xmm1, xmm2
andnps xmm2, xmm3
orps xmm1, xmm2
jmp 0x1007fd1b
xorps xmm0, xmm0
cvtsi2ss xmm0, ebx
maxss xmm2, xmm1
movss xmm7, dword [ebp + 0x1900]
mulss xmm0, xmm7
movups xmmword [esp + 0x68], xmm0
mov edx, dword [esp + 0xa8]
movss xmm1, dword [esp + 0x110]
jmp 0x1007fdb2
xorps xmm2, xmm2
movaps xmm7, xmm6
xorps xmm0, xmm0
movups xmmword [esp + 0x68], xmm0
mov edx, dword [esp + 0xa8]
maxss xmm5, dword [esp + 0x98]
mulss xmm6, xmm1
xor ebx, ebx
cmp dword [esp + 0xc], 0
setne al
cmp byte [ebp + 0x2bd8], 0
mov ecx, dword [esp + 0x1e8]
je 0x1007fec8
movaps xmm4, xmm2
test ecx, 0x1000
jne 0x1007fe21
movss xmm1, dword [esp + 0x1b0]
movss xmm0, dword [0x101a7848]
mulss xmm0, xmm1
movss xmm3, dword [ebp + 0x1dac]
ucomiss xmm3, xmm5
jbe 0x1007fe2d
movaps xmm1, xmm5
subss xmm1, xmm0
xorps xmm0, xmm0
movaps xmm2, xmm1
cmpless xmm2, xmm0
andnps xmm2, xmm1
jmp 0x1007fe3d
mov dword [ebp + 0x1dac], 0
jmp 0x1007fe4c
movaps xmm2, xmm5
subss xmm2, xmm1
ucomiss xmm2, xmm3
jb 0x1007fe4c
addss xmm2, xmm0
cvttps2dq xmm0, xmm2
cvtdq2ps xmm0, xmm0
movss dword [ebp + 0x1dac], xmm0
cmp dword [esp + 0xc], 0
movaps xmm2, xmm4
movups xmm4, xmmword [esp + 0x18]
je 0x1007fec8
movss xmm0, dword [edx + 0x5c]
movaps xmm1, xmm6
subss xmm1, xmm7
ucomiss xmm0, xmm1
jbe 0x1007fe8a
movaps xmm3, xmm0
movaps xmm4, xmm2
xorps xmm2, xmm2
movaps xmm0, xmm1
cmpless xmm0, xmm2
movaps xmm2, xmm4
movups xmm4, xmmword [esp + 0x18]
andnps xmm0, xmm1
jmp 0x1007fea1
movaps xmm1, xmm6
subss xmm1, dword [esp + 0x1b4]
ucomiss xmm1, xmm0
movaps xmm3, xmm0
jb 0x1007fea1
movaps xmm0, xmm1
subss xmm3, xmm0
addss xmm3, dword [edx + 0xcc]
movss dword [edx + 0xcc], xmm3
movss dword [edx + 0x5c], xmm0
movups xmmword [esp + 0x58], xmm3
movss dword [esp + 0x15c], xmm3
movups xmmword [esp + 0x98], xmm7
movups xmmword [esp + 0x28], xmm6
movups xmmword [esp + 0xe8], xmm5
mov bl, al
mov dword [esp + 0xfc], ebx
movss xmm0, dword [esp + 0x1b0]
movups xmmword [esp + 0x130], xmm0
mov byte [ebp + 0x2bd8], 0
movss xmm0, dword [ebp + 0x1dac]
movups xmmword [esp + 0xb8], xmm0
mov eax, dword [ebp + 0x1db4]
mov esi, dword [ebp + 0x1db8]
cmp eax, esi
je 0x100801c0
movups xmmword [esp + 0x120], xmm2
mov edi, esi
cmovl edi, eax
cmovg esi, eax
xorps xmm0, xmm0
movss dword [esp + 0x38], xmm0
cmp dword [esp + 0xc], 0
jne 0x1007ff50
movss xmm0, dword [0x101a77b0]
movss dword [esp + 0x38], xmm0
movaps xmm0, xmmword [0x101aee20]
movups xmmword [esp + 0x160], xmm0
lea eax, [esp + 0x160]
push eax
call fcn.10048d50
add esp, 4
mov dword [esp + 0xf8], eax
cmp edi, esi
movups xmm4, xmmword [esp + 0x18]
movups xmm6, xmmword [esp + 0x48]
movups xmm7, xmmword [esp + 0x78]
movups xmm5, xmmword [esp + 0x68]
movups xmm2, xmmword [esp + 0x120]
jge 0x100801c0
xorps xmm0, xmm0
movups xmmword [esp + 0x110], xmm0
cmp dword [esp + 0xc], 0
jne 0x1007ffbc
movss xmm0, dword [0x101a7ae8]
movups xmmword [esp + 0x110], xmm0
mov eax, dword [esp + 0x10]
lea esi, [eax + esi*2]
lea ebx, [eax + edi*2]
addss xmm2, xmm4
addss xmm5, dword [esp + 0x58]
movss xmm0, dword [ebp + 0x1900]
jmp 0x1007fff3
movups xmm4, xmmword [esp + 0x18]
movups xmm5, xmmword [esp + 0x68]
addss xmm5, xmm0
movaps xmm2, xmm4
cmp ebx, esi
jae 0x100801c0
movaps xmm1, xmm6
addss xmm1, xmm0
ucomiss xmm5, xmm1
ja 0x100801c0
ucomiss xmm7, xmm5
jbe 0x10080023
nop dword [eax + eax]
cmp ebx, esi
jae 0x1007ffe4
lea eax, [ebx + 2]
cmp word [ebx], 0xa
mov ebx, eax
jne 0x10080010
mov ebx, eax
jmp 0x1007ffe4
subss xmm2, dword [esp + 0xb8]
movaps xmm4, xmm2
mov ecx, dword [0x10258f60]
mov eax, dword [ecx + 0x18fc]
movss xmm2, dword [ecx + 0x1900]
divss xmm2, dword [eax + 0x10]
lea ecx, [eax + 0xc]
xorps xmm1, xmm1
mov edi, dword [esp + 0xa8]
nop word cs:[eax + eax]
cmp ebx, esi
jae 0x10080091
movzx edx, word [ebx]
add ebx, 2
cmp edx, 0xd
je 0x10080060
cmp edx, 0xa
je 0x10080096
lea edi, [edx*4]
add edi, dword [eax + 8]
cmp dword [eax], edx
cmovle edi, ecx
movss xmm3, dword [edi]
mulss xmm3, xmm2
addss xmm1, xmm3
jmp 0x1008004e
xorps xmm2, xmm2
jmp 0x100800a7
xorps xmm3, xmm3
movaps xmm2, xmm1
cmpless xmm2, xmm3
andnps xmm2, xmm1
xorps xmm1, xmm1
maxss xmm1, xmm2
xorps xmm2, xmm2
ucomiss xmm2, xmm1
jb 0x100800db
mov eax, dword [ebp + 0x18fc]
mov ecx, dword [eax + 8]
sub ecx, 0xffffff80
lea edx, [eax + 0xc]
cmp dword [eax], 0x21
cmovge edx, ecx
movss xmm1, dword [edx]
mulss xmm1, dword [0x101a62c0]
cvttps2dq xmm1, xmm1
cvtdq2ps xmm1, xmm1
movss xmm3, dword [esp + 0x38]
subss xmm3, xmm0
xorps xmm2, xmm2
movss xmm2, xmm3
unpcklps xmm4, xmm5
movups xmm3, xmmword [esp + 0x110]
shufps xmm4, xmm3, 4
shufps xmm4, xmm4, 0xc4
movups xmmword [esp + 0x68], xmm5
unpcklps xmm1, xmm5
shufps xmm2, xmm1, 0x41
addps xmm2, xmm4
movups xmm5, xmmword [esp + 0xc8]
movaps xmm3, xmm5
cmpleps xmm3, xmm2
movaps xmm1, xmm2
cmpltps xmm1, xmm5
movsd xmm1, xmm3
andps xmm2, xmm1
andnps xmm1, xmm5
orps xmm1, xmm2
pshufd xmm2, xmm1, 0xff
ucomiss xmm2, xmm7
movups xmmword [esp + 0x160], xmm1
jbe 0x1007ffda
pshufd xmm2, xmm1, 0x55
ucomiss xmm6, xmm2
movups xmm4, xmmword [esp + 0x18]
jbe 0x1007ffdf
pshufd xmm2, xmm1, 0xee
ucomiss xmm2, dword [esp + 0xd8]
jbe 0x1007ffdf
movups xmm2, xmmword [esp + 0x88]
ucomiss xmm2, xmm1
jbe 0x1007ffdf
mov ecx, dword [edi + 0x274]
push 0xf
push 0
push dword [esp + 0x100]
lea eax, [esp + 0x174]
push eax
lea eax, [esp + 0x170]
push eax
call fcn.10061e40
movups xmm7, xmmword [esp + 0x78]
movups xmm6, xmmword [esp + 0x48]
movups xmm4, xmmword [esp + 0x18]
movss xmm0, dword [ebp + 0x1900]
jmp 0x1007ffdf
movd xmm0, dword [esp + 0xfc]
mov edi, dword [ebp + 0x1da0]
cmp dword [esp + 0xc], 0
jne 0x100801e2
cmp edi, 0x1fffff
jg 0x100802c6
xor eax, eax
cmp dword [esp + 0xc], 0
lea ebx, [esp + 0x148]
cmovne ebx, eax
mov eax, dword [esp + 0xa8]
mov eax, dword [eax + 0x274]
mov dword [esp + 0x68], eax
mov esi, dword [esp + 0x14]
add edi, esi
movdqu xmmword [esp + 0x38], xmm0
movss xmm0, dword [ebp + 0x1500]
movsd xmm1, qword [0x101aee10]
movsd qword [esp + 0x160], xmm1
mov dword [esp + 0x168], 0x3f3ebebf
movss dword [esp + 0x16c], xmm0
lea eax, [esp + 0x160]
push eax
call fcn.10048d50
add esp, 4
movups xmm0, xmmword [esp + 0x18]
subss xmm0, dword [esp + 0xb8]
movss dword [esp + 0x140], xmm0
movups xmm0, xmmword [esp + 0x58]
movss dword [esp + 0x144], xmm0
movss xmm0, dword [ebp + 0x1900]
mov ecx, dword [ebp + 0x18fc]
sub esp, 0x20
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x160]
mov dword [esp + 8], eax
movss dword [esp + 4], xmm0
mov dword [esp], ecx
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x88]
call fcn.10062400
movdqu xmm0, xmmword [esp + 0x38]
movups xmm4, xmmword [esp + 0x18]
xorps xmm6, xmm6
cvtsi2ss xmm6, dword [esp + 0x100]
pshufd xmm5, xmm0, 0x50
mov al, 1
cmp byte [ebp + 0xae], 0
mov ebx, dword [esp + 0x1e8]
movups xmm2, xmmword [esp + 0x28]
movups xmm3, xmmword [esp + 0x98]
je 0x1008039e
movss xmm0, dword [ebp + 0x2bd4]
xorps xmm1, xmm1
ucomiss xmm1, xmm0
mov edi, dword [esp + 8]
movups xmm1, xmmword [esp + 0xe8]
jae 0x100803aa
cvtss2sd xmm0, xmm0
sub esp, 0x10
movsd qword [esp], xmm0
mov dword [esp + 0xc], 0x3ff33333
mov dword [esp + 8], 0x40000000
movdqu xmmword [esp + 0x48], xmm5
movss dword [esp + 0x28], xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_fmod
movss xmm6, dword [esp + 0x28]
movdqu xmm5, xmmword [esp + 0x48]
movups xmm3, xmmword [esp + 0xa8]
movups xmm2, xmmword [esp + 0x38]
movups xmm1, xmmword [esp + 0xf8]
add esp, 0x10
fstp dword [esp + 0x104]
movss xmm0, dword [0x101a79a4]
ucomiss xmm0, dword [esp + 0x104]
setae al
movss xmm4, dword [esp + 0x158]
movss xmm0, dword [esp + 0x15c]
movups xmmword [esp + 0x58], xmm0
jmp 0x100803aa
mov edi, dword [esp + 8]
movups xmm1, xmmword [esp + 0xe8]
mulss xmm3, xmm6
pslld xmm5, 0x1f
addss xmm1, xmm4
unpcklps xmm1, xmm2
movups xmm0, xmmword [esp + 0x58]
movups xmm2, xmmword [esp + 0xb8]
unpcklps xmm2, xmm0
movaps xmm4, xmm1
subps xmm4, xmm2
addps xmm2, xmm1
movaps xmm0, xmm2
shufps xmm0, xmm4, 1
shufps xmm0, xmm4, 0xe2
shufps xmm2, xmm2, 0x55
movups xmmword [esp + 0xb8], xmm2
movaps xmm1, xmm2
subss xmm1, dword [ebp + 0x1900]
movaps xmm6, xmmword [0x101aee30]
addps xmm6, xmm0
addss xmm1, dword [0x101a62c0]
movss dword [esp + 0x160], xmm4
movss dword [esp + 0x164], xmm1
movlps qword [esp + 0x168], xmm6
test al, al
je 0x100804eb
movups xmm2, xmmword [esp + 0x148]
movlhps xmm1, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm1, 0x24
movaps xmm1, xmm0
cmpltps xmm1, xmm2
cmpltps xmm2, xmm0
shufps xmm2, xmm1, 0xe4
pslld xmm2, 0x1f
movmskps eax, xmm2
cmp al, 0xf
jne 0x100804eb
mov eax, dword [esp + 0xa8]
mov esi, dword [eax + 0x274]
push 0x3f800000
push 1
movups xmmword [esp + 0xa0], xmm3
movdqu xmmword [esp + 0x40], xmm5
movups xmmword [esp + 0xb0], xmm4
movups xmmword [esp + 0x20], xmm6
call fcn.10049000
add esp, 8
movups xmm0, xmmword [esp + 0xa8]
movss dword [esp + 0x140], xmm0
movups xmm0, xmmword [esp + 0x18]
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x144], xmm0
lea edx, [esp + 0x140]
lea edi, [esp + 0x160]
mov ecx, esi
push 0x3f800000
push eax
push edx
push edi
mov edi, dword [esp + 0x18]
call fcn.10061c00
movups xmm4, xmmword [esp + 0xa8]
movdqu xmm5, xmmword [esp + 0x38]
movups xmm3, xmmword [esp + 0x98]
psrad xmm5, 0x1f
movups xmm0, xmmword [esp + 0x130]
unpcklps xmm0, xmm3
test ebx, 0x4000
jne 0x1008052b
movups xmm1, xmmword [esp + 0xb8]
subss xmm1, dword [ebp + 0x1900]
addss xmm4, dword [0x101a77b0]
movss dword [ebp + 0x2c80], xmm4
movss dword [ebp + 0x2c84], xmm1
pand xmm5, xmm0
cmp dword [esp + 0xc], 0
je 0x100805bc
movss xmm0, dword [ebp + 0x1900]
mov eax, dword [0x10258f60]
mov ecx, dword [eax + 0x19e4]
mov byte [ecx + 0x7c], 1
mov eax, dword [eax + 0x19e4]
cmp byte [eax + 0x7f], 0
jne 0x100805b2
xorps xmm1, xmm1
unpcklps xmm1, xmm0
addps xmm5, xmm1
mov ecx, dword [eax + 0xc8]
mov edx, dword [eax + 0xcc]
movsd xmm0, qword [eax + 0xc8]
addps xmm0, xmm5
mov dword [esp + 0x160], ecx
mov dword [esp + 0x164], edx
movlps qword [esp + 0x168], xmm0
lea esi, [esp + 0x160]
push 0
push esi
call fcn.1004bf60
add esp, 8
push 0
push 0
push esi
call fcn.1004bfb0
add esp, 0xc
call fcn.10059680
call fcn.1005b3d0
mov eax, dword [esp + 0x1e8]
test ax, ax
jns 0x100805cf
call fcn.1005aa60
jmp 0x100805ee
cmp byte [ebp + 0x2cbc], 0
je 0x100805ee
lea eax, [esp + 0x158]
push 0
push dword [esp + 0x18]
push eax
call fcn.100498f0
add esp, 0xc
movss xmm0, dword [esp + 0x1b8]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jbe 0x1008065b
mov eax, dword [esp + 0x14]
cmp byte [eax], 0
jne 0x1008065b
movss xmm0, dword [esp + 0x1a0]
movss xmm1, dword [esp + 0x1a4]
addss xmm1, dword [ebp + 0x153c]
addss xmm0, dword [ebp + 0x1550]
sub esp, 0x14
mov eax, dword [esp + 0x1ec]
mov dword [esp + 8], eax
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
call fcn.100496f0
add esp, 0x14
cmp byte [esp + 4], 0
je 0x1008066b
push edi
call fcn.1004bcc0
add esp, 4
xor ebx, ebx
cmp byte [esp], 0
setne bl
mov eax, dword [esp + 0x1e8]
test al, 0x20
movzx eax, byte [esp + 4]
cmove ebx, eax
jmp 0x1007dbc6
test cl, cl
je 0x10080793
mov dword [esp + 0x58], 0
xor ebx, ebx
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x48]
jmp 0x1007ec04
mov eax, dword [0x10258f60]
mov eax, dword [eax + 0x58]
test eax, eax
js 0x100806d8
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
xor esi, esi
mov dword [esp + 0x28], 0
jmp 0x1007ec8a
mov dword [esp + 0x68], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x28], 0
mov edx, 0
jmp 0x1007ea1c
cmp byte [esp + 0x28], 0
je 0x1008074b
mov eax, dword [0x10258f60]
mov eax, dword [eax + 0x70]
test eax, eax
js 0x1008074b
push 1
push eax
call fcn.10058700
add esp, 8
test al, al
je 0x1008074b
mov dword [ebp + 0x1db4], 0
mov eax, dword [ebp + 0x1da4]
mov dword [ebp + 0x1db8], eax
mov dword [ebp + 0x1db0], eax
mov byte [ebp + 0x1dbf], 0
mov byte [ebp + 0x2bd8], 1
jmp 0x1007f246
mov eax, dword [esp + 0x78]
or al, byte [esp + 0x58]
cmp al, 1
jne 0x100807bd
cmp dword [ebp + 0xcc], 0
je 0x10080932
mov eax, dword [ebp + 0x1db4]
mov ebx, dword [ebp + 0x1db8]
cmp eax, ebx
jne 0x100808df
mov ebx, dword [ebp + 0x1da4]
xor edi, edi
jmp 0x100808e7
mov al, 1
mov dword [esp], eax
xor ebx, ebx
mov al, 1
jmp 0x1007ef08
mov eax, dword [edx + 0x5c]
mov cl, 1
mov dword [esp + 0x78], ecx
xor ebx, ebx
mov dword [esp + 0x58], 0
mov cl, 1
mov dword [esp + 0x28], ecx
test eax, eax
mov edx, dword [esp + 0x48]
jns 0x1007eb09
jmp 0x1007ec04
xor ebx, ebx
cmp byte [esp + 0x68], 0
je 0x1007f248
call fcn.1004cb10
test eax, eax
je 0x10080a41
mov ebx, eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
add eax, eax
add eax, 2
push eax
call fcn.100484d0
add esp, 4
mov ebp, eax
cmp byte [ebx], 0
je 0x10080a32
xor esi, esi
lea edi, [esp + 0x160]
jmp 0x1008080f
cmp byte [ebx], 0
je 0x1008099c
push 0
push ebx
push edi
call fcn.10048280
add esp, 0xc
mov ecx, dword [esp + 0x160]
test ecx, ecx
je 0x1008099c
add ebx, eax
cmp ecx, 0xffff
ja 0x10080806
mov ecx, edi
mov edx, dword [esp + 0x1e8]
push dword [esp + 0x1f0]
push dword [esp + 0x1f0]
call fcn.100822f0
add esp, 8
test al, al
je 0x10080806
movzx eax, word [esp + 0x160]
mov word [ebp + esi*2], ax
inc esi
jmp 0x10080806
test al, al
sete cl
mov dword [esp], ecx
movzx ecx, byte [esp + 4]
mov esi, 1
cmovne esi, ecx
mov ecx, esi
xor ebx, ebx
test edx, 0x4000
mov edi, dword [esp + 8]
jne 0x10080995
test al, al
mov eax, ecx
je 0x1007f253
mov dword [esp + 0x160], 0xa
lea ecx, [esp + 0x160]
push dword [esp + 0x1f0]
push dword [esp + 0x1f0]
call fcn.100822f0
add esp, 8
test al, al
je 0x1007f246
mov ecx, dword [esp + 0x18]
push dword [esp + 0x160]
call fcn.10080ea0
jmp 0x1007f246
mov edi, ebx
cmovl edi, eax
cmovg ebx, eax
lea ecx, [ebp + 0x1d94]
mov eax, ebx
sub eax, edi
lea eax, [eax*4 + 1]
push eax
call fcn.10082250
mov eax, dword [ebp + 0x1d84]
lea ecx, [eax + ebx*2]
lea eax, [eax + edi*2]
push ecx
push eax
push dword [ebp + 0x1d94]
push dword [ebp + 0x1d9c]
call fcn.10048b80
add esp, 0x10
push dword [ebp + 0x1d9c]
call fcn.1004cb40
add esp, 4
mov edi, dword [esp + 8]
xor ebx, ebx
cmp byte [esp + 0x58], 0
je 0x1007f248
mov eax, dword [ebp + 0x1db4]
cmp eax, dword [ebp + 0x1db8]
jne 0x10080970
mov dword [ebp + 0x1db4], 0
mov eax, dword [ebp + 0x1da4]
mov dword [ebp + 0x1db8], eax
mov dword [ebp + 0x1db0], eax
mov byte [ebp + 0x1dbf], 0
mov byte [ebp + 0x2bd8], 1
lea edx, [ebp + 0x1db0]
mov ecx, dword [esp + 0x18]
call fcn.10082460
jmp 0x1007f246
mov dword [esp], eax
mov eax, esi
jmp 0x1007f253
mov eax, ecx
jmp 0x1007f253
mov word [ebp + esi*2], 0
test esi, esi
jle 0x10080a38
mov edi, dword [esp + 0x38]
lea edx, [edi + 0x1db0]
mov ecx, dword [esp + 0x18]
push esi
push ebp
call fcn.100824e0
add esp, 8
mov byte [edi + 0x2bd8], 1
jmp 0x10080a38
test dword [esp + 0x1e8], 0x4000
jne 0x1007f1e4
mov eax, dword [esp + 0x98]
cmp byte [eax], 0
jne 0x1007f1e4
mov dword [esp + 0x160], 9
lea ecx, [esp + 0x160]
mov edx, dword [esp + 0x1e8]
push dword [esp + 0x1f0]
push dword [esp + 0x1f0]
call fcn.100822f0
add esp, 8
test al, al
je 0x10080a41
mov ecx, dword [esp + 0x18]
push dword [esp + 0x160]
call fcn.10080ea0
jmp 0x10080a41
mov word [ebp], 0
push ebp
call fcn.10048500
add esp, 4
xor ebx, ebx
mov dword [esp], 0
mov eax, dword [esp + 4]
mov ebp, dword [esp + 0x38]
jmp 0x1007ef08
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3