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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c4
mov eax, dword [0x1025ad40]
xor eax, esp
mov dword [esp + 0x1c0], eax
mov ebp, dword [0x1025afd0]
mov eax, dword [ebp + 0x19e4]
mov byte [eax + 0x7c], 1
mov edi, dword [ebp + 0x19e4]
cmp byte [edi + 0x7f], 0
je 0x1007dcb1
xor ebx, ebx
mov ecx, dword [esp + 0x1c0]
xor ecx, esp
call fcn.10157981
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 0x10080b27
mov ecx, eax
and ecx, 0x440
cmp ecx, 0x440
je 0x10080b27
mov dword [esp + 0x18], ecx
test eax, 0x4000
sete cl
mov dword [esp + 0x68], ecx
test eax, 0x40000
je 0x1007dd05
cmp dword [esp + 0x1ec], 0
je 0x10080b27
and eax, 0x100000
mov dword [esp + 0xc], eax
je 0x1007dd15
call fcn.1005b2b0
mov esi, dword [esp + 0x1e4]
mov dword [esp + 0xb8], edi
mov ecx, edi
push 0
mov edi, dword [esp + 0x1dc]
push edi
call fcn.1004b380
mov dword [esp + 8], eax
lea eax, [esp + 0x1b8]
push 0xbf800000
push 1
push 0
push edi
push eax
call fcn.10049fb0
add esp, 0x14
cmp dword [esp + 0xc], 0
mov dword [esp + 4], ebx
je 0x1007dd7c
call fcn.1005ae90
fstp dword [esp + 0x10c]
movss xmm0, dword [esp + 0x10c]
mulss xmm0, dword [0x101a9f80]
jmp 0x1007dd85
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 [0x101b0c10]
addss xmm0, dword [0x101a82b4]
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.1004c980
add esp, 0x14
movsd xmm1, qword [edi + 0xc8]
movsd xmm0, qword [esp + 0x1b0]
addps xmm0, xmm1
movss xmm2, dword [0x101a99bc]
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 0x1007de31
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 0x1007df13
lea esi, [esp + 0x190]
push edi
mov edi, ebx
push ebx
push esi
call fcn.1004c080
add esp, 0xc
test al, al
je 0x1007e06b
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.10059140
add esp, 0xc
test al, al
je 0x1007e16e
mov dword [esp + 0x38], ebp
mov eax, dword [0x1025afd0]
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 0x1007df5d
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.1004c030
add esp, 8
push edi
mov ebp, ebx
push ebx
push esi
call fcn.1004c080
add esp, 0xc
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xa8], ecx
test al, al
je 0x1007dc94
push ebp
push edi
call fcn.1004c690
add esp, 8
mov byte [esp + 0x88], al
test al, al
mov ebp, dword [esp + 0x38]
je 0x1007df80
mov dword [ebp + 0x1cbc], 1
mov eax, dword [esp + 0x1e8]
test ax, ax
mov edi, ebx
jns 0x1007e034
mov ecx, dword [ebp + 0x18fc]
push 0x2a
call fcn.1006af70
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 0x10080b27
lea eax, [ebp + 0x2be8]
cmp dword [eax], 0
jne 0x10080b27
cmp dword [ebp + 0x2bfc], 0
jne 0x10080b27
push eax
call fcn.1005a990
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.1004c800
add esp, 0xc
mov edx, eax
test al, al
je 0x1007e08c
mov eax, dword [esi + 0x328]
cmp eax, dword [esi + 0x330]
sete al
mov dword [esp + 0x28], eax
jmp 0x1007e094
movss xmm0, dword [ebp + 0x153c]
sub esp, 8
movss dword [esp + 4], xmm0
mov dword [esp], esi
call fcn.1004c030
add esp, 8
jmp 0x1007e173
mov dword [esp + 0x28], 0
mov ebx, dword [esp + 0x1e8]
cmp byte [esp + 0x88], 0
je 0x1007e0b4
cmp byte [ebp + 0x3d0], 0
setne al
mov dword [esp], eax
jmp 0x1007e0bb
mov dword [esp], 0
lea eax, [ebp + 0x1d78]
mov dword [esp + 0x18], eax
cmp dword [esp + 0xc], 0
je 0x1007e10b
cmp dword [ebp + 0x1a04], 0
jne 0x1007e10b
mov eax, dword [esp + 0x18]
cmp dword [eax], edi
jne 0x1007e10b
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.1004b890
mov edx, ebx
mov ebx, esi
cmp dword [esp + 0x14], eax
sete al
jmp 0x1007e10d
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 0x1007e147
or dl, byte [esp]
xor ecx, ecx
or dl, al
mov dword [esp + 0xc8], 0
je 0x1007e1ac
jmp 0x1007e462
mov ecx, ebx
mov byte [esp + 0xd8], dl
mov dl, 1
cmp dword [ebp + 0x1b08], edi
je 0x1007e17f
cmp dword [ebp + 0x1afc], edi
jne 0x1007e17d
cmp dword [ebp + 0x1b1c], 3
sete dl
jmp 0x1007e17f
call fcn.10059750
call fcn.1005b4a0
jmp 0x1007dc94
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 0x1007e1c3
test dl, dl
jne 0x1007e1c3
movzx eax, byte [ebp + 0x3d0]
mov dword [esp + 4], eax
test al, al
sete cl
xor esi, esi
jmp 0x1007e4af
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 0x1007e267
test eax, eax
je 0x1007e20a
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
add ebx, eax
jmp 0x1007e20f
mov ebx, 8
cmp ebx, esi
cmovle ebx, esi
cmp eax, ebx
mov ebp, dword [esp + 0x38]
jge 0x1007e267
lea eax, [ebx + ebx]
push eax
call fcn.100485a0
add esp, 4
mov edx, dword [ebp + 0x1d84]
test edx, edx
je 0x1007e25b
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.100485d0
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 0x1007e2e4
test eax, eax
je 0x1007e28f
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
add ebx, eax
jmp 0x1007e294
mov ebx, 8
cmp ebx, esi
cmovle ebx, esi
cmp eax, ebx
mov ebp, dword [esp + 0x38]
jge 0x1007e2e4
push ebx
call fcn.100485a0
add esp, 4
mov edi, eax
mov eax, dword [ebp + 0x1d90]
test eax, eax
je 0x1007e2d4
push dword [ebp + 0x1d88]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push dword [ebp + 0x1d90]
call fcn.100485d0
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.10048a70
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 0x1007e3a9
cmp ecx, eax
jne 0x1007e3a9
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 0x1007e41e
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 0x1007e439
mov byte [ebp + 0x1dbc], 1
cmp dword [esp + 0xc], 0
jne 0x1007e462
xor al, 1
or al, byte [esp + 0x28]
cmp al, 1
jne 0x1007e459
cmp byte [esp], 0
je 0x1007e462
cmp byte [ebp + 0xf8], 0
je 0x1007e462
mov al, 1
mov dword [esp + 0xc8], eax
mov ebx, ecx
mov esi, dword [esp + 0xb8]
push esi
push edi
call fcn.1004bb70
add esp, 8
push esi
push edi
call fcn.1004bc70
add esp, 8
push esi
call fcn.1004d840
add esp, 4
mov dword [ebp + 0x1a20], 2
mov cl, 1
cmp dword [esp + 4], 0
jne 0x1007e4a5
mov dword [ebp + 0x1a1c], 0xc
mov dword [esp + 4], 0
mov esi, ebx
mov dword [esp + 0xd8], 0
cmp dword [ebp + 0x1a04], edi
jne 0x1007e827
mov byte [esp], cl
mov ebx, dword [esp + 0x1e8]
test ebx, 0x4000
je 0x1007e57d
cmp byte [ebp + 0x1a14], 0
jne 0x1007e57d
lea ecx, [ebp + 0x1d7c]
mov eax, dword [esp + 0x1e0]
inc eax
push eax
call fcn.100822b0
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.10048a70
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 0x1007e5fb
movss xmm1, dword [ebp + 0xe4]
mov ecx, dword [esp + 0xa8]
subss xmm1, dword [ecx + 0xcc]
subss xmm1, dword [ebp + 0x153c]
jmp 0x1007e60b
movss xmm1, dword [ebp + 0x1900]
mulss xmm1, dword [0x101a82c0]
movzx ebx, byte [ebp + 0xad]
cmp byte [esp + 0xc8], 0
mov edx, esi
je 0x1007e69b
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 0x1007e661
cmp byte [ebp + 0xe8], 0
jne 0x1007e661
mov byte [ebp + 0x2bd9], 0
cmp dword [ebp + 0x14f0], 0
jle 0x1007e823
cmp byte [ebp + 0xf8], 0
je 0x1007e6e1
movzx ecx, byte [ebp + 0xfa]
test cl, cl
sete al
test bl, bl
je 0x1007e7ac
test cl, cl
mov ebx, dword [esp + 0x1e8]
jne 0x1007e6f0
jmp 0x1007e7b3
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 0x1007e6ff
cmp byte [ebp + 0x3d5], 0
mov edx, esi
jne 0x1007e61e
jmp 0x1007e735
test bl, bl
mov ebx, dword [esp + 0x1e8]
je 0x1007e8e6
cmp byte [ebp + 0xfb], 0
setne al
jmp 0x1007e7b3
test bl, bl
mov edx, esi
je 0x1007e735
test cl, cl
jne 0x1007e735
cmp byte [ebp + 0x3d5], 0
je 0x1007e735
mov ecx, dword [esp + 0x18]
push 0x1000c
call fcn.10080f70
mov ecx, dword [esp + 0x18]
push 0x3000d
call fcn.10080f70
mov edx, esi
jmp 0x1007e648
cmp byte [ebp + 0x3d0], 0
je 0x1007e74b
cmp byte [ebp + 0x2bd9], 0
je 0x1007e990
test al, al
je 0x1007e648
cmp byte [ebp + 0x2bd9], 0
jne 0x1007e648
movss xmm3, dword [ebp + 0x370]
xorps xmm2, xmm2
ucomiss xmm3, xmm2
jne 0x1007e785
jp 0x1007e785
movss xmm3, dword [ebp + 0x374]
ucomiss xmm3, xmm2
jne 0x1007e785
jnp 0x1007e648
lea edx, [ebp + 0x1db0]
mov ecx, dword [esp + 0x18]
call fcn.10082390
mov edx, esi
mov dword [ebp + 0x2bd4], 0xbe99999a
mov byte [ebp + 0x2bd8], 1
jmp 0x1007e648
mov ebx, dword [esp + 0x1e8]
mov ecx, ebx
shr ecx, 0xe
and ecx, 1
or cl, dl
or cl, al
je 0x1007e8f6
cmp dword [ebp + 0x14f4], 0
mov edi, dword [esp + 8]
jns 0x1007e819
push 0
call fcn.100485a0
add esp, 4
mov esi, eax
mov eax, dword [ebp + 0x14f8]
test eax, eax
je 0x1007e809
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.100485d0
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 0x1007f318
cmp byte [ebp + 0x1a14], 0
setne al
xor cl, 1
xor ebx, ebx
or cl, al
jne 0x1007f318
movzx eax, byte [ebp + 0xf9]
mov dword [esp + 0x88], eax
movzx eax, byte [ebp + 0xad]
test al, al
mov byte [esp + 0x110], al
je 0x1007e897
cmp byte [ebp + 0xfb], 0
mov edi, dword [esp + 0x1e8]
je 0x1007e8c1
cmp byte [ebp + 0xf8], 0
je 0x1007e95e
xor eax, eax
mov ecx, dword [esp + 0x88]
jmp 0x1007e971
cmp byte [ebp + 0xf8], 0
mov edi, dword [esp + 0x1e8]
je 0x1007e987
mov cl, 1
cmp byte [ebp + 0xfb], 0
je 0x1007ea70
xor eax, eax
jmp 0x1007ea81
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 0x1007ea93
mov eax, ebx
shr eax, 0xe
and eax, 1
or al, dl
jne 0x1007e7c5
xor edi, edi
lea esi, [esp + 0x160]
jmp 0x1007e91d
inc edi
cmp edi, dword [ebp + 0x14f0]
jge 0x1007e7c5
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.100823c0
add esp, 8
test al, al
je 0x1007e910
mov ecx, dword [esp + 0x18]
push dword [esp + 0x160]
call fcn.10080f70
jmp 0x1007e910
movzx eax, byte [ebp + 0xfa]
mov ecx, dword [esp + 0x88]
or al, cl
sete al
test cl, cl
je 0x1007e97e
cmp byte [ebp + 0xf8], 0
je 0x1007e9dd
mov dword [esp], 0
jmp 0x1007e9ea
xor ecx, ecx
xor eax, eax
jmp 0x1007ea81
cmp byte [esp + 0x88], 0
je 0x1007e648
cmp byte [ebp + 0x1dc0], 0
je 0x1007e9aa
xorps xmm1, xmm1
mov ecx, dword [esp + 0x18]
call fcn.100864a0
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 0x1007e648
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 0x1007eab1
cmp byte [esp + 0x88], 0
je 0x1007eabd
cmp byte [esi], 0
jne 0x1007eabd
movzx ecx, byte [ebp + 0xfb]
test cl, cl
sete bl
mov dword [esp + 0x28], ebx
test al, al
je 0x1007ebad
mov dword [esp + 0x48], edx
mov edx, dword [0x1025afd0]
mov eax, dword [edx + 0x7c]
test eax, eax
mov dword [esp + 0x98], esi
js 0x1008075a
xor ebx, ebx
mov edx, dword [esp + 0x48]
jmp 0x1007eb47
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 0x1007ea1a
cmp byte [esp + 0x88], 0
je 0x1007eaf9
xor edx, edx
mov dword [esp + 0x98], esi
test al, al
je 0x1007ead4
mov eax, dword [0x1025afd0]
mov eax, dword [eax + 0x7c]
xor ebx, ebx
jmp 0x1007eb2f
mov dword [esp + 0x68], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x78], 0
jmp 0x1007ee5c
cmp byte [esi], 0
mov dword [esp + 0x98], esi
je 0x1007eb11
test al, al
je 0x100807a8
xor ebx, ebx
jmp 0x1007eb25
movzx ecx, byte [ebp + 0xfb]
test cl, cl
sete bl
test al, al
je 0x1007ec68
mov eax, dword [0x1025afd0]
mov eax, dword [eax + 0x7c]
xor edx, edx
mov dword [esp + 0x28], 0
mov dword [esp + 0x58], 0
test eax, eax
js 0x1007ecd4
mov dword [esp + 0x48], ebx
mov ebx, edx
mov cl, 1
mov dword [esp + 0x78], ecx
push 1
push eax
call fcn.100587d0
add esp, 8
test al, al
je 0x1007eb9e
test edi, 0xc000
sete al
mov dword [esp + 0x58], eax
jne 0x1007ec8f
cmp dword [esp + 0xc], 0
mov edx, ebx
je 0x1007ec91
mov eax, dword [ebp + 0x1db4]
cmp eax, dword [ebp + 0x1db8]
setne al
mov dword [esp + 0x58], eax
mov ebx, dword [esp + 0x48]
jmp 0x1007ecd4
mov esi, dword [esp + 0x98]
mov edx, ebx
mov ebx, dword [esp + 0x48]
jmp 0x1007ebb7
mov dword [esp + 0x78], 0
xor ebx, ebx
cmp byte [esp + 0x28], 0
mov dword [esp + 0x98], esi
je 0x1007ec56
mov eax, dword [0x1025afd0]
mov eax, dword [eax + 0x5c]
test eax, eax
js 0x1007ec97
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.100587d0
add esp, 8
xor al, 1
or al, bl
or al, byte [esp + 0x28]
mov ecx, eax
xor cl, 1
test al, al
jne 0x1007ecb6
cmp dword [esp + 0xc], 0
je 0x1007ecb6
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 0x1007ec91
xor ecx, ecx
mov ebx, dword [esp + 0x48]
test bl, bl
jne 0x1007ed48
jmp 0x1007ed38
mov dword [esp + 0x28], 0
mov dword [esp + 0x58], 0
jmp 0x1007eccd
test cl, cl
je 0x1008077d
mov dword [esp + 0x68], 0
mov dword [esp + 0x58], 0
xor edx, edx
mov dword [esp + 0x78], 0
jmp 0x1007ee54
mov edx, ebx
mov ebx, dword [esp + 0x48]
jmp 0x1007ecd4
mov al, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x58], 0
mov ecx, 0
cmp byte [esp + 0x78], 0
jne 0x1007ecd4
jmp 0x1007ed44
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 0x1007ed42
mov eax, dword [0x1025afd0]
mov eax, dword [eax + 0x74]
test eax, eax
js 0x1007ed1d
mov esi, edx
push 1
push eax
call fcn.100587d0
add esp, 8
test al, al
je 0x1007ed30
test edi, 0x8000
sete al
jne 0x1007ed12
cmp dword [esp + 0xc], 0
je 0x1007ed12
mov eax, dword [ebp + 0x1db4]
cmp eax, dword [ebp + 0x1db8]
setne al
mov dword [esp + 0x78], eax
mov edx, esi
jmp 0x1007edc1
mov cl, 1
test bl, bl
jne 0x1007ed48
mov dword [esp + 0x78], 0
jmp 0x1007edc1
mov edx, esi
mov cl, 1
test bl, bl
jne 0x1007ed48
mov dword [esp + 0x78], 0
jmp 0x1007edbd
xor ecx, ecx
test bl, bl
je 0x1007ed38
mov eax, dword [0x1025afd0]
mov eax, dword [eax + 0x58]
test eax, eax
js 0x1007eda0
mov dword [esp + 0x48], ecx
mov esi, edx
test di, di
sets bl
push 1
push eax
call fcn.100587d0
add esp, 8
xor al, 1
or al, bl
mov ecx, eax
xor cl, 1
test al, al
jne 0x1007edb3
cmp dword [esp + 0xc], 0
je 0x1007edb3
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 0x1007edc1
jmp 0x1007ee20
mov dword [esp + 0x78], 0
mov ebx, 0
test cl, cl
jne 0x1007edc1
jmp 0x1007ee22
mov dword [esp + 0x78], ecx
mov edx, esi
mov ecx, dword [esp + 0x48]
test cl, cl
je 0x1007ee20
mov eax, dword [0x1025afd0]
mov ecx, dword [eax + 0x78]
test ecx, ecx
js 0x1007ede7
mov bl, 1
push 1
push ecx
mov esi, edx
call fcn.100587d0
mov edx, esi
add esp, 8
test al, al
je 0x1007ee22
jmp 0x1007ee80
cmp byte [esp + 0x28], 0
je 0x1007ee78
mov eax, dword [eax + 0x58]
test eax, eax
mov ecx, dword [esp + 0x1e8]
js 0x1007ee78
test ecx, 0x4000
sete bl
push 1
push eax
mov esi, edx
call fcn.100587d0
mov edx, esi
add esp, 8
and al, bl
mov dword [esp + 0x68], eax
jmp 0x1007ee80
xor ebx, ebx
cmp byte [esp + 0x28], 0
je 0x1007ee48
mov eax, dword [0x1025afd0]
mov eax, dword [eax + 0x58]
test eax, eax
js 0x1007ee48
push 1
push eax
mov esi, edx
call fcn.100587d0
mov edx, esi
add esp, 8
test al, al
jne 0x1007ee50
mov dword [esp + 0x68], 0
test bl, bl
jne 0x1007ee80
mov dword [esp + 0x28], 0
mov dword [esp + 0x48], 0
mov ebx, 0
cmp byte [esp], 0
jne 0x1007eefa
jmp 0x1007ef38
mov dword [esp + 0x68], 0
mov esi, edx
mov ecx, dword [0x1025afd0]
mov eax, dword [ecx + 0x84]
test eax, eax
js 0x1007eea5
push 1
push eax
call fcn.100587d0
add esp, 8
mov ecx, dword [0x1025afd0]
jmp 0x1007eea7
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 0x1007eeec
mov cl, 1
mov dword [esp + 0x28], ecx
push 1
push eax
call fcn.100587d0
add esp, 8
test al, al
jne 0x1007ef27
mov al, 1
mov dword [esp + 0x28], eax
cmp byte [esp], 0
mov edx, esi
jne 0x1007eefa
jmp 0x1007ef30
mov al, 1
mov dword [esp + 0x28], eax
cmp byte [esp], 0
je 0x1007ef34
mov edx, esi
mov eax, dword [0x1025afd0]
mov eax, dword [eax + 0x84]
test eax, eax
js 0x1007ef30
mov esi, edx
push 1
push eax
call fcn.100587d0
add esp, 8
test al, al
je 0x1007ef34
mov ebx, dword [esp + 0x1e8]
and ebx, 0x14000
mov edx, esi
test ebx, ebx
sete bl
jmp 0x1007ef38
xor ebx, ebx
jmp 0x1007ef38
xor ebx, ebx
mov edx, esi
mov edi, dword [esp + 0x88]
shl edi, 0x11
mov eax, dword [0x1025afd0]
mov ecx, dword [eax + 0x38]
test ecx, ecx
js 0x1007ef86
mov esi, edx
push 1
push ecx
call fcn.100587d0
add esp, 8
test al, al
je 0x1007ef7f
cmp byte [esp + 0xc8], 0
mov eax, 0x10000
mov ecx, 0x1000c
cmovne ecx, eax
mov eax, esi
test al, al
mov eax, 0x10004
jmp 0x1007efbc
mov eax, dword [0x1025afd0]
mov edx, esi
mov ecx, dword [eax + 0x3c]
test ecx, ecx
js 0x1007efe8
mov esi, edx
push 1
push ecx
call fcn.100587d0
add esp, 8
test al, al
je 0x1007efe1
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.10080f70
xor ebx, ebx
mov dword [esp], 0
mov eax, dword [esp + 4]
mov edi, dword [esp + 8]
jmp 0x1007f323
mov eax, dword [0x1025afd0]
mov edx, esi
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x1007f048
mov esi, edx
push 1
push ecx
call fcn.100587d0
add esp, 8
cmp dword [esp + 0xc], 0
je 0x1007f041
test al, al
je 0x1007f041
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
je 0x1007f116
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 0x1007f0a9
mov eax, dword [0x1025afd0]
mov edx, esi
mov ecx, dword [eax + 0x44]
test ecx, ecx
js 0x1007f0bb
mov esi, edx
push 1
push ecx
call fcn.100587d0
add esp, 8
cmp dword [esp + 0xc], 0
je 0x1007f0b6
test al, al
je 0x1007f0b6
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
je 0x1007f15d
call fcn.1005b000
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.1005ac60
add esp, 8
jmp 0x1007efcb
mov eax, dword [0x1025afd0]
mov ecx, dword [eax + 0x50]
test ecx, ecx
js 0x1007f0eb
push 1
push ecx
call fcn.100587d0
add esp, 8
test al, al
je 0x1007f0e6
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
add eax, eax
or eax, edi
or eax, 0x10004
jmp 0x1007efc1
mov eax, dword [0x1025afd0]
mov ecx, dword [eax + 0x54]
test ecx, ecx
js 0x1007f12f
push 1
push ecx
call fcn.100587d0
add esp, 8
test al, al
je 0x1007f12a
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
add eax, eax
or eax, edi
or eax, 0x10005
jmp 0x1007efc1
mov eax, esi
movzx eax, al
shl eax, 2
or eax, edi
or eax, 0x10002
jmp 0x1007efc1
mov eax, dword [0x1025afd0]
mov ecx, dword [eax + 0x5c]
test ecx, ecx
js 0x1007f176
push 1
push ecx
call fcn.100587d0
add esp, 8
test dword [esp + 0x1e8], 0x4000
jne 0x1007f171
test al, al
je 0x1007f171
or edi, 0x10008
jmp 0x1007f1f7
mov eax, esi
movzx eax, al
shl eax, 2
or eax, edi
or eax, 0x10003
jmp 0x1007efc1
mov eax, dword [0x1025afd0]
mov ecx, dword [eax + 0x60]
test ecx, ecx
js 0x1007f206
push 1
push ecx
call fcn.100587d0
add esp, 8
test dword [esp + 0x1e8], 0x4000
jne 0x1007f201
test al, al
je 0x1007f201
mov eax, dword [ebp + 0x1db4]
cmp eax, dword [ebp + 0x1db8]
jne 0x1007f1f1
mov eax, 0x3000c
cmp byte [esp + 0xc8], 0
je 0x1007f1e7
cmp byte [esp + 0x110], 0
je 0x1007f1f1
cmp byte [ebp + 0xfb], 0
je 0x1007f1f1
mov eax, dword [esp + 0x98]
cmp byte [eax], 0
jne 0x1007f1f1
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
jne 0x1007f1f1
mov eax, 0x30004
mov ecx, dword [esp + 0x18]
push eax
call fcn.10080f70
or edi, 0x10009
mov ecx, dword [esp + 0x18]
push edi
jmp 0x1007efc6
mov eax, dword [0x1025afd0]
mov eax, dword [eax + 0x68]
test eax, eax
js 0x1007f276
push 1
push eax
call fcn.100587d0
add esp, 8
test al, al
je 0x1007f276
cmp dword [esp + 0xc], 0
je 0x10080855
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
mov edx, dword [esp + 0x1e8]
test edx, 0x800
jne 0x10080937
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 0x10080a5b
mov ecx, eax
mov dword [esp], ecx
test al, al
mov eax, esi
je 0x1008096a
jmp 0x1007f323
test dword [esp + 0x1e8], 0x400
je 0x1007f2b4
mov eax, dword [0x1025afd0]
mov eax, dword [eax + 0x34]
test eax, eax
js 0x1007f2b4
push 1
push eax
call fcn.100587d0
add esp, 8
test al, al
je 0x1007f2b4
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
jne 0x1007f2b4
cmp byte [ebp + 0xf9], 0
je 0x10080a9c
mov eax, dword [0x1025afd0]
mov eax, dword [eax + 0x6c]
test eax, eax
js 0x1007f2df
push 1
push eax
call fcn.100587d0
add esp, 8
test al, al
je 0x1007f2df
mov bl, 1
mov dword [esp], 0
mov al, 1
jmp 0x1007efd8
mov eax, dword [esp + 0x48]
or bl, al
cmp bl, 1
mov edi, dword [esp + 8]
jne 0x100807ca
movzx eax, al
xor eax, 0x1000b
mov ecx, dword [esp + 0x18]
push eax
call fcn.10080f70
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 0x1007f372
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 0x1007f392
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 0x1007f38e
mov edi, dword [ebp + 0x1d88]
dec edi
jmp 0x1007f392
mov dword [esp + 4], 0
mov ebx, dword [esp + 0x1e8]
test al, al
jne 0x1007f896
jmp 0x1007f8a3
xor edi, edi
xor esi, esi
mov dword [esp + 0x68], esi
test bl, bl
mov ebx, dword [esp + 0x1e8]
je 0x1007f3b4
test bl, 0x20
je 0x1007f76b
cmp byte [esp], 0
je 0x1007f76b
test ebx, 0x4000
jne 0x1007f463
mov ecx, dword [ebp + 0x1d7c]
mov eax, dword [ebp + 0x1d98]
lea ebx, [ecx*4 + 1]
cmp eax, ebx
jge 0x1007f43f
test eax, eax
je 0x1007f3e8
mov esi, eax
shr esi, 0x1f
add esi, eax
sar esi, 1
add esi, eax
jmp 0x1007f3ed
mov esi, 8
cmp esi, ebx
cmovle esi, ebx
cmp eax, esi
mov ebp, dword [esp + 0x38]
jge 0x1007f43f
push esi
call fcn.100485a0
add esp, 4
mov ecx, dword [ebp + 0x1d9c]
test ecx, ecx
je 0x1007f433
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.100485d0
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.10048c50
add esp, 0x10
mov ebx, dword [esp + 0x1e8]
test ebx, 0x1c0
je 0x1007f73f
cmp dword [esp + 0x1ec], 0
je 0x10080b27
test bl, 0x40
je 0x1007f4a6
mov eax, dword [0x1025afd0]
mov eax, dword [eax + 0x34]
test eax, eax
js 0x1007f4a6
push 1
push eax
call fcn.100587d0
add esp, 8
test al, al
je 0x1007f4a6
xor eax, eax
mov ecx, 0x40
jmp 0x1007f50e
test bl, bl
jns 0x1007f4f8
mov eax, dword [0x1025afd0]
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x1007f4d6
push 1
push ecx
call fcn.100587d0
add esp, 8
test al, al
je 0x1007f4d1
mov eax, 3
mov ecx, 0x80
jmp 0x1007f50e
mov eax, dword [0x1025afd0]
mov eax, dword [eax + 0x44]
test eax, eax
js 0x1007f4f8
push 1
push eax
call fcn.100587d0
add esp, 8
test al, al
je 0x1007f4f8
mov eax, 4
mov ecx, 0x80
jmp 0x1007f50e
test ebx, 0x100
je 0x1007f73f
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.10048d90
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.10048d90
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.10048d90
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 0x10080b27
mov ecx, dword [esp + 0x17c]
cmp ecx, dword [ebp + 0x1da8]
jne 0x10080b27
mov ecx, dword [esp + 0x1e8]
cmp dword [esp + 0x164], ecx
jne 0x10080b27
mov ecx, dword [esp + 0x184]
cmp ecx, esi
je 0x1007f659
add ecx, eax
push ecx
push eax
call fcn.10048a00
add esp, 8
mov dword [ebp + 0x1db0], eax
mov byte [ebp + 0x2bd8], 1
mov eax, dword [esp + 0x188]
cmp eax, ebx
je 0x1007f67d
mov ecx, dword [esp + 0x174]
add eax, ecx
push eax
push ecx
call fcn.10048a00
add esp, 8
mov dword [ebp + 0x1db4], eax
mov eax, dword [esp + 0x18c]
cmp eax, dword [esp + 4]
mov ebx, dword [esp + 0x1e8]
je 0x1007f6aa
mov ecx, dword [esp + 0x174]
add eax, ecx
push eax
push ecx
call fcn.10048a00
add esp, 8
mov dword [ebp + 0x1db8], eax
cmp byte [esp + 0x180], 0
je 0x1007f73f
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 0x10080b27
test dword [esp + 0x1e8], 0x40000
je 0x1007f702
sub ebx, dword [esp + 0xd8]
jle 0x1007f702
lea ecx, [ebp + 0x1d7c]
add ebx, dword [ecx]
push ebx
call fcn.100822b0
mov esi, dword [esp + 0x174]
push 0
push 0
push esi
push dword [ebp + 0x1d7c]
push dword [ebp + 0x1d84]
call fcn.10048a70
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 0x1007f76b
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 0x1007f76b
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 0x1007f869
test edi, edi
js 0x10080b27
test ebx, 0x40000
je 0x1007f846
cmp dword [esp + 0xd8], edi
je 0x1007f846
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 0x10080b27
mov eax, dword [esp + 0x174]
jmp 0x1007f84d
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.10048570
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 0x1007f8a3
cmp dword [ebp + 0x1a04], edi
jne 0x1007f8a3
call fcn.1004bd00
test ebx, 0x4000
jne 0x1007f8bd
cmp dword [ebp + 0x1a04], edi
jne 0x1007f8bd
mov eax, dword [ebp + 0x1d9c]
mov dword [esp + 0x14], eax
cmp dword [esp + 0xc], 0
jne 0x1007f9c4
mov ebx, dword [esp + 0xb8]
mov esi, dword [ebx + 0x274]
movss xmm0, dword [ebp + 0x1500]
movsd xmm1, qword [0x101a9c30]
movsd qword [esp + 0x160], xmm1
mov dword [esp + 0x168], 0x3b808081
movss dword [esp + 0x16c], xmm0
lea edi, [esp + 0x160]
push edi
call fcn.10048e20
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.10061e50
mov esi, dword [ebx + 0x274]
movss xmm0, dword [ebp + 0x1500]
movsd xmm1, qword [0x101b0a80]
movsd qword [esp + 0x160], xmm1
mov dword [esp + 0x168], 0x3e24a4a5
movss dword [esp + 0x16c], xmm0
push edi
call fcn.10048e20
add esp, 4
movsd xmm0, qword [esp + 0x1a0]
movsd xmm1, qword [esp + 0x1a8]
addps xmm1, xmmword [0x101a9770]
movlps qword [esp + 0x148], xmm1
addps xmm0, xmmword [0x101a9790]
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.10061e50
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 0x1007fa52
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 0x1007fa7a
mov ebx, dword [ebp + 0x1a04]
push 0
push str.SCROLLY
movups xmmword [esp + 0xe0], xmm2
call fcn.1004b890
movups xmm2, xmmword [esp + 0xd8]
cmp ebx, eax
sete al
jmp 0x1007fa7c
movsd xmm1, qword [ebp + 0x1538]
addps xmm1, xmm2
movlps qword [esp + 0x158], xmm1
cmp dword [ebp + 0x1a04], edi
jne 0x1007fba1
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
jmp 0x1007fab4
xor eax, eax
movd xmm1, esi
movd xmm0, edi
mov ecx, dword [esp + 8]
cmp dword [ebp + 0x1a04], ecx
je 0x1007fab4
test al, al
jne 0x1007fab4
xor eax, eax
mov ebx, dword [esp + 0x14]
nop word [eax + eax]
movzx ecx, byte [ebx]
inc ebx
test ecx, ecx
je 0x1007fbcf
cmp ecx, 0xa
jne 0x1007faa0
inc eax
jmp 0x1007faa0
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 0x1007fb5b
test edx, edx
je 0x1007fca5
add ecx, 2
movzx edx, word [ecx]
cmp edx, 0xa
jne 0x1007fb50
inc edi
cmp esi, 0xffffffff
jne 0x1007fb80
mov esi, 0xffffffff
cmp ecx, ebp
jb 0x1007fb80
cmp eax, 2
jl 0x1007fc9f
dec eax
mov esi, edi
nop
cmp ebx, 0xffffffff
jne 0x1007fb58
mov ebx, 0xffffffff
cmp ecx, dword [esp + 0xb8]
jb 0x1007fb58
cmp eax, 2
jl 0x1007fca3
dec eax
mov ebx, edi
jmp 0x1007fb58
push dword [esp + 0x14]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
cmp eax, 0x1fffff
jg 0x1008068c
mov ebx, eax
add ebx, dword [esp + 0x14]
xorps xmm0, xmm0
movups xmmword [esp + 0x38], xmm0
lea edi, [esp + 0x148]
jmp 0x1007fbf3
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 [0x101b0e10]
movsd qword [esp + 0x160], xmm1
mov dword [esp + 0x168], 0x3f3ebebf
movss dword [esp + 0x16c], xmm0
lea eax, [esp + 0x160]
push eax
call fcn.10048e20
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.100624d0
mov edi, dword [esp + 8]
movdqu xmm5, xmmword [esp + 0x38]
cmp dword [esp + 0xc], 0
jne 0x1008060a
jmp 0x1008068c
mov esi, edi
jmp 0x1007fca5
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.10048600
movups xmm4, xmmword [esp + 0x20]
add esp, 8
mov edx, dword [0x1025afd0]
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 0x1007fd59
movzx edx, word [eax]
add eax, 2
cmp edx, 0xd
je 0x1007fd00
cmp edx, 0xa
je 0x1007fd46
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 0x1007fd00
movaps xmm1, xmm5
cmpless xmm1, xmm2
andps xmm2, xmm1
andnps xmm1, xmm5
orps xmm2, xmm1
jmp 0x1007fcfc
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 0x1007fe6d
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.10048600
movups xmm6, xmmword [esp + 0x30]
movups xmm5, xmmword [esp + 0xf0]
movups xmm4, xmmword [esp + 0x20]
add esp, 8
mov edx, dword [0x1025afd0]
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 0x1007fe3f
movzx edi, word [eax]
add eax, 2
cmp edi, 0xd
je 0x1007fdf0
cmp edi, 0xa
je 0x1007fe2c
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 0x1007fdf0
movaps xmm3, xmm2
cmpless xmm2, xmm1
andps xmm1, xmm2
andnps xmm2, xmm3
orps xmm1, xmm2
jmp 0x1007fdeb
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 0x1007fe82
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 0x1007ff98
movaps xmm4, xmm2
test ecx, 0x1000
jne 0x1007fef1
movss xmm1, dword [esp + 0x1b0]
movss xmm0, dword [0x101a9848]
mulss xmm0, xmm1
movss xmm3, dword [ebp + 0x1dac]
ucomiss xmm3, xmm5
jbe 0x1007fefd
movaps xmm1, xmm5
subss xmm1, xmm0
xorps xmm0, xmm0
movaps xmm2, xmm1
cmpless xmm2, xmm0
andnps xmm2, xmm1
jmp 0x1007ff0d
mov dword [ebp + 0x1dac], 0
jmp 0x1007ff1c
movaps xmm2, xmm5
subss xmm2, xmm1
ucomiss xmm2, xmm3
jb 0x1007ff1c
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 0x1007ff98
movss xmm0, dword [edx + 0x5c]
movaps xmm1, xmm6
subss xmm1, xmm7
ucomiss xmm0, xmm1
jbe 0x1007ff5a
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 0x1007ff71
movaps xmm1, xmm6
subss xmm1, dword [esp + 0x1b4]
ucomiss xmm1, xmm0
movaps xmm3, xmm0
jb 0x1007ff71
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 0x10080290
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 0x10080020
movss xmm0, dword [0x101a97b0]
movss dword [esp + 0x38], xmm0
movaps xmm0, xmmword [0x101b0e20]
movups xmmword [esp + 0x160], xmm0
lea eax, [esp + 0x160]
push eax
call fcn.10048e20
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 0x10080290
xorps xmm0, xmm0
movups xmmword [esp + 0x110], xmm0
cmp dword [esp + 0xc], 0
jne 0x1008008c
movss xmm0, dword [0x101a9ae8]
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 0x100800c3
movups xmm4, xmmword [esp + 0x18]
movups xmm5, xmmword [esp + 0x68]
addss xmm5, xmm0
movaps xmm2, xmm4
cmp ebx, esi
jae 0x10080290
movaps xmm1, xmm6
addss xmm1, xmm0
ucomiss xmm5, xmm1
ja 0x10080290
ucomiss xmm7, xmm5
jbe 0x100800f3
nop dword [eax + eax]
cmp ebx, esi
jae 0x100800b4
lea eax, [ebx + 2]
cmp word [ebx], 0xa
mov ebx, eax
jne 0x100800e0
mov ebx, eax
jmp 0x100800b4
subss xmm2, dword [esp + 0xb8]
movaps xmm4, xmm2
mov ecx, dword [0x1025afd0]
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 0x10080161
movzx edx, word [ebx]
add ebx, 2
cmp edx, 0xd
je 0x10080130
cmp edx, 0xa
je 0x10080166
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 0x1008011e
xorps xmm2, xmm2
jmp 0x10080177
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 0x100801ab
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 [0x101a82c0]
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 0x100800aa
pshufd xmm2, xmm1, 0x55
ucomiss xmm6, xmm2
movups xmm4, xmmword [esp + 0x18]
jbe 0x100800af
pshufd xmm2, xmm1, 0xee
ucomiss xmm2, dword [esp + 0xd8]
jbe 0x100800af
movups xmm2, xmmword [esp + 0x88]
ucomiss xmm2, xmm1
jbe 0x100800af
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.10061f10
movups xmm7, xmmword [esp + 0x78]
movups xmm6, xmmword [esp + 0x48]
movups xmm4, xmmword [esp + 0x18]
movss xmm0, dword [ebp + 0x1900]
jmp 0x100800af
movd xmm0, dword [esp + 0xfc]
mov edi, dword [ebp + 0x1da0]
cmp dword [esp + 0xc], 0
jne 0x100802b2
cmp edi, 0x1fffff
jg 0x10080396
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 [0x101b0e10]
movsd qword [esp + 0x160], xmm1
mov dword [esp + 0x168], 0x3f3ebebf
movss dword [esp + 0x16c], xmm0
lea eax, [esp + 0x160]
push eax
call fcn.10048e20
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.100624d0
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 0x1008046e
movss xmm0, dword [ebp + 0x2bd4]
xorps xmm1, xmm1
ucomiss xmm1, xmm0
mov edi, dword [esp + 8]
movups xmm1, xmmword [esp + 0xe8]
jae 0x1008047a
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 [0x101a99a4]
ucomiss xmm0, dword [esp + 0x104]
setae al
movss xmm4, dword [esp + 0x158]
movss xmm0, dword [esp + 0x15c]
movups xmmword [esp + 0x58], xmm0
jmp 0x1008047a
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 [0x101b0e30]
addps xmm6, xmm0
addss xmm1, dword [0x101a82c0]
movss dword [esp + 0x160], xmm4
movss dword [esp + 0x164], xmm1
movlps qword [esp + 0x168], xmm6
test al, al
je 0x100805bb
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 0x100805bb
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.100490d0
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.10061cd0
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 0x100805fb
movups xmm1, xmmword [esp + 0xb8]
subss xmm1, dword [ebp + 0x1900]
addss xmm4, dword [0x101a97b0]
movss dword [ebp + 0x2c80], xmm4
movss dword [ebp + 0x2c84], xmm1
pand xmm5, xmm0
cmp dword [esp + 0xc], 0
je 0x1008068c
movss xmm0, dword [ebp + 0x1900]
mov eax, dword [0x1025afd0]
mov ecx, dword [eax + 0x19e4]
mov byte [ecx + 0x7c], 1
mov eax, dword [eax + 0x19e4]
cmp byte [eax + 0x7f], 0
jne 0x10080682
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.1004c030
add esp, 8
push 0
push 0
push esi
call fcn.1004c080
add esp, 0xc
call fcn.10059750
call fcn.1005b4a0
mov eax, dword [esp + 0x1e8]
test ax, ax
jns 0x1008069f
call fcn.1005ab30
jmp 0x100806be
cmp byte [ebp + 0x2cbc], 0
je 0x100806be
lea eax, [esp + 0x158]
push 0
push dword [esp + 0x18]
push eax
call fcn.100499c0
add esp, 0xc
movss xmm0, dword [esp + 0x1b8]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jbe 0x1008072b
mov eax, dword [esp + 0x14]
cmp byte [eax], 0
jne 0x1008072b
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.100497c0
add esp, 0x14
cmp byte [esp + 4], 0
je 0x1008073b
push edi
call fcn.1004bd90
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 0x1007dc96
test cl, cl
je 0x10080863
mov dword [esp + 0x58], 0
xor ebx, ebx
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x48]
jmp 0x1007ecd4
mov eax, dword [0x1025afd0]
mov eax, dword [eax + 0x58]
test eax, eax
js 0x100807a8
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
xor esi, esi
mov dword [esp + 0x28], 0
jmp 0x1007ed5a
mov dword [esp + 0x68], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x28], 0
mov edx, 0
jmp 0x1007eaec
cmp byte [esp + 0x28], 0
je 0x1008081b
mov eax, dword [0x1025afd0]
mov eax, dword [eax + 0x70]
test eax, eax
js 0x1008081b
push 1
push eax
call fcn.100587d0
add esp, 8
test al, al
je 0x1008081b
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 0x1007f316
mov eax, dword [esp + 0x78]
or al, byte [esp + 0x58]
cmp al, 1
jne 0x1008088d
cmp dword [ebp + 0xcc], 0
je 0x10080a02
mov eax, dword [ebp + 0x1db4]
mov ebx, dword [ebp + 0x1db8]
cmp eax, ebx
jne 0x100809af
mov ebx, dword [ebp + 0x1da4]
xor edi, edi
jmp 0x100809b7
mov al, 1
mov dword [esp], eax
xor ebx, ebx
mov al, 1
jmp 0x1007efd8
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 0x1007ebd9
jmp 0x1007ecd4
xor ebx, ebx
cmp byte [esp + 0x68], 0
je 0x1007f318
call fcn.1004cbe0
test eax, eax
je 0x10080b11
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.100485a0
add esp, 4
mov ebp, eax
cmp byte [ebx], 0
je 0x10080b02
xor esi, esi
lea edi, [esp + 0x160]
jmp 0x100808df
cmp byte [ebx], 0
je 0x10080a6c
push 0
push ebx
push edi
call fcn.10048350
add esp, 0xc
mov ecx, dword [esp + 0x160]
test ecx, ecx
je 0x10080a6c
add ebx, eax
cmp ecx, 0xffff
ja 0x100808d6
mov ecx, edi
mov edx, dword [esp + 0x1e8]
push dword [esp + 0x1f0]
push dword [esp + 0x1f0]
call fcn.100823c0
add esp, 8
test al, al
je 0x100808d6
movzx eax, word [esp + 0x160]
mov word [ebp + esi*2], ax
inc esi
jmp 0x100808d6
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 0x10080a65
test al, al
mov eax, ecx
je 0x1007f323
mov dword [esp + 0x160], 0xa
lea ecx, [esp + 0x160]
push dword [esp + 0x1f0]
push dword [esp + 0x1f0]
call fcn.100823c0
add esp, 8
test al, al
je 0x1007f316
mov ecx, dword [esp + 0x18]
push dword [esp + 0x160]
call fcn.10080f70
jmp 0x1007f316
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.10082320
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.10048c50
add esp, 0x10
push dword [ebp + 0x1d9c]
call fcn.1004cc10
add esp, 4
mov edi, dword [esp + 8]
xor ebx, ebx
cmp byte [esp + 0x58], 0
je 0x1007f318
mov eax, dword [ebp + 0x1db4]
cmp eax, dword [ebp + 0x1db8]
jne 0x10080a40
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.10082530
jmp 0x1007f316
mov dword [esp], eax
mov eax, esi
jmp 0x1007f323
mov eax, ecx
jmp 0x1007f323
mov word [ebp + esi*2], 0
test esi, esi
jle 0x10080b08
mov edi, dword [esp + 0x38]
lea edx, [edi + 0x1db0]
mov ecx, dword [esp + 0x18]
push esi
push ebp
call fcn.100825b0
add esp, 8
mov byte [edi + 0x2bd8], 1
jmp 0x10080b08
test dword [esp + 0x1e8], 0x4000
jne 0x1007f2b4
mov eax, dword [esp + 0x98]
cmp byte [eax], 0
jne 0x1007f2b4
mov dword [esp + 0x160], 9
lea ecx, [esp + 0x160]
mov edx, dword [esp + 0x1e8]
push dword [esp + 0x1f0]
push dword [esp + 0x1f0]
call fcn.100823c0
add esp, 8
test al, al
je 0x10080b11
mov ecx, dword [esp + 0x18]
push dword [esp + 0x160]
call fcn.10080f70
jmp 0x10080b11
mov word [ebp], 0
push ebp
call fcn.100485d0
add esp, 4
xor ebx, ebx
mov dword [esp], 0
mov eax, dword [esp + 4]
mov ebp, dword [esp + 0x38]
jmp 0x1007efd8
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3