418f8e:	7f 1e                	jg     0x418fae
418f90:	85 c0                	test   %eax,%eax
418f92:	78 1a                	js     0x418fae
418f94:	3b 46 30             	cmp    0x30(%esi),%eax
418f97:	75 05                	jne    0x418f9e
418f99:	8b 76 08             	mov    0x8(%esi),%esi
418f9c:	eb 12                	jmp    0x418fb0
418f9e:	50                   	push   %eax
418f9f:	8d 4e 2c             	lea    0x2c(%esi),%ecx
418fa2:	0f ae e8             	lfence
418fa5:	e8 a5 ff ff ff       	call   0x418f4f
418faa:	8b 30                	mov    (%eax),%esi
418fac:	eb 02                	jmp    0x418fb0
418fae:	33 f6                	xor    %esi,%esi
418fb0:	57                   	push   %edi
418fb1:	ff 15 3c c1 41 00    	call   *0x41c13c
418fb7:	5f                   	pop    %edi
418fb8:	8b c6                	mov    %esi,%eax
418fba:	5e                   	pop    %esi
418fbb:	5d                   	pop    %ebp
418fbc:	c2 04 00             	ret    $0x4
418fbf:	56                   	push   %esi
418fc0:	8b f1                	mov    %ecx,%esi
418fc2:	83 3e 00             	cmpl   $0x0,(%esi)
418fc5:	74 0b                	je     0x418fd2
418fc7:	ff 36                	push   (%esi)
418fc9:	e8 ad 32 ff ff       	call   0x40c27b
418fce:	83 26 00             	andl   $0x0,(%esi)
418fd1:	59                   	pop    %ecx
418fd2:	83 66 04 00          	andl   $0x0,0x4(%esi)
418fd6:	83 66 08 00          	andl   $0x0,0x8(%esi)
418fda:	5e                   	pop    %esi
418fdb:	c3                   	ret
418fdc:	cc                   	int3
418fdd:	cc                   	int3
418fde:	cc                   	int3
418fdf:	cc                   	int3
418fe0:	55                   	push   %ebp
418fe1:	8b ec                	mov    %esp,%ebp
418fe3:	8b 45 08             	mov    0x8(%ebp),%eax
418fe6:	33 d2                	xor    %edx,%edx
418fe8:	53                   	push   %ebx
418fe9:	56                   	push   %esi
418fea:	57                   	push   %edi
418feb:	8b 48 3c             	mov    0x3c(%eax),%ecx
418fee:	03 c8                	add    %eax,%ecx
418ff0:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
418ff4:	0f b7 59 06          	movzwl 0x6(%ecx),%ebx
418ff8:	83 c0 18             	add    $0x18,%eax
418ffb:	03 c1                	add    %ecx,%eax
418ffd:	85 db                	test   %ebx,%ebx
418fff:	74 1b                	je     0x41901c
419001:	8b 7d 0c             	mov    0xc(%ebp),%edi
419004:	8b 70 0c             	mov    0xc(%eax),%esi
419007:	3b fe                	cmp    %esi,%edi
419009:	72 09                	jb     0x419014
41900b:	8b 48 08             	mov    0x8(%eax),%ecx
41900e:	03 ce                	add    %esi,%ecx
419010:	3b f9                	cmp    %ecx,%edi
419012:	72 0a                	jb     0x41901e
419014:	42                   	inc    %edx
419015:	83 c0 28             	add    $0x28,%eax
419018:	3b d3                	cmp    %ebx,%edx
41901a:	72 e8                	jb     0x419004
41901c:	33 c0                	xor    %eax,%eax
41901e:	5f                   	pop    %edi
41901f:	5e                   	pop    %esi
419020:	5b                   	pop    %ebx
419021:	5d                   	pop    %ebp
419022:	c3                   	ret
419023:	cc                   	int3
419024:	cc                   	int3
419025:	cc                   	int3
419026:	cc                   	int3
419027:	cc                   	int3
419028:	cc                   	int3
419029:	cc                   	int3
41902a:	cc                   	int3
41902b:	cc                   	int3
41902c:	cc                   	int3
41902d:	cc                   	int3
41902e:	cc                   	int3
41902f:	cc                   	int3
419030:	55                   	push   %ebp
419031:	8b ec                	mov    %esp,%ebp
419033:	6a fe                	push   $0xfffffffe
419035:	68 80 41 42 00       	push   $0x424180
41903a:	68 70 8d 40 00       	push   $0x408d70
41903f:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
419045:	50                   	push   %eax
419046:	83 ec 08             	sub    $0x8,%esp
419049:	53                   	push   %ebx
41904a:	56                   	push   %esi
41904b:	57                   	push   %edi
41904c:	a1 18 60 42 00       	mov    0x426018,%eax
419051:	31 45 f8             	xor    %eax,-0x8(%ebp)
419054:	33 c5                	xor    %ebp,%eax
419056:	50                   	push   %eax
419057:	8d 45 f0             	lea    -0x10(%ebp),%eax
41905a:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
419060:	89 65 e8             	mov    %esp,-0x18(%ebp)
419063:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
41906a:	68 00 00 40 00       	push   $0x400000
41906f:	e8 7c 00 00 00       	call   0x4190f0
419074:	83 c4 04             	add    $0x4,%esp
419077:	85 c0                	test   %eax,%eax
419079:	74 54                	je     0x4190cf
41907b:	8b 45 08             	mov    0x8(%ebp),%eax
41907e:	2d 00 00 40 00       	sub    $0x400000,%eax
419083:	50                   	push   %eax
419084:	68 00 00 40 00       	push   $0x400000
419089:	e8 52 ff ff ff       	call   0x418fe0
41908e:	83 c4 08             	add    $0x8,%esp
419091:	85 c0                	test   %eax,%eax
419093:	74 3a                	je     0x4190cf
419095:	8b 40 24             	mov    0x24(%eax),%eax
419098:	c1 e8 1f             	shr    $0x1f,%eax
41909b:	f7 d0                	not    %eax
41909d:	83 e0 01             	and    $0x1,%eax
4190a0:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4190a7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4190aa:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4190b1:	59                   	pop    %ecx
4190b2:	5f                   	pop    %edi
4190b3:	5e                   	pop    %esi
4190b4:	5b                   	pop    %ebx
4190b5:	8b e5                	mov    %ebp,%esp
4190b7:	5d                   	pop    %ebp
4190b8:	c3                   	ret
4190b9:	8b 45 ec             	mov    -0x14(%ebp),%eax
4190bc:	8b 00                	mov    (%eax),%eax
4190be:	33 c9                	xor    %ecx,%ecx
4190c0:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
4190c6:	0f 94 c1             	sete   %cl
4190c9:	8b c1                	mov    %ecx,%eax
4190cb:	c3                   	ret
4190cc:	8b 65 e8             	mov    -0x18(%ebp),%esp
4190cf:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4190d6:	33 c0                	xor    %eax,%eax
4190d8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4190db:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4190e2:	59                   	pop    %ecx
4190e3:	5f                   	pop    %edi
4190e4:	5e                   	pop    %esi
4190e5:	5b                   	pop    %ebx
4190e6:	8b e5                	mov    %ebp,%esp
4190e8:	5d                   	pop    %ebp
4190e9:	c3                   	ret
4190ea:	cc                   	int3
4190eb:	cc                   	int3
4190ec:	cc                   	int3
4190ed:	cc                   	int3
4190ee:	cc                   	int3
4190ef:	cc                   	int3
4190f0:	55                   	push   %ebp
4190f1:	8b ec                	mov    %esp,%ebp
4190f3:	8b 45 08             	mov    0x8(%ebp),%eax
4190f6:	b9 4d 5a 00 00       	mov    $0x5a4d,%ecx
4190fb:	66 39 08             	cmp    %cx,(%eax)
4190fe:	75 1d                	jne    0x41911d
419100:	8b 48 3c             	mov    0x3c(%eax),%ecx
419103:	03 c8                	add    %eax,%ecx
419105:	81 39 50 45 00 00    	cmpl   $0x4550,(%ecx)
41910b:	75 10                	jne    0x41911d
41910d:	ba 0b 01 00 00       	mov    $0x10b,%edx
419112:	33 c0                	xor    %eax,%eax
419114:	66 39 51 18          	cmp    %dx,0x18(%ecx)
419118:	0f 94 c0             	sete   %al
41911b:	5d                   	pop    %ebp
41911c:	c3                   	ret
41911d:	33 c0                	xor    %eax,%eax
41911f:	5d                   	pop    %ebp
419120:	c3                   	ret
419121:	cc                   	int3
419122:	cc                   	int3
419123:	cc                   	int3
419124:	cc                   	int3
419125:	cc                   	int3
419126:	cc                   	int3
419127:	cc                   	int3
419128:	cc                   	int3
419129:	cc                   	int3
41912a:	cc                   	int3
41912b:	cc                   	int3
41912c:	cc                   	int3
41912d:	cc                   	int3
41912e:	cc                   	int3
41912f:	cc                   	int3
419130:	55                   	push   %ebp
419131:	8b ec                	mov    %esp,%ebp
419133:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
419137:	56                   	push   %esi
419138:	8b f1                	mov    %ecx,%esi
41913a:	c7 06 50 12 42 00    	movl   $0x421250,(%esi)
419140:	74 0a                	je     0x41914c
419142:	6a 0c                	push   $0xc
419144:	56                   	push   %esi
419145:	e8 a6 00 00 00       	call   0x4191f0
41914a:	59                   	pop    %ecx
41914b:	59                   	pop    %ecx
41914c:	8b c6                	mov    %esi,%eax
41914e:	5e                   	pop    %esi
41914f:	5d                   	pop    %ebp
419150:	c2 04 00             	ret    $0x4
419153:	8b 4d f4             	mov    -0xc(%ebp),%ecx
419156:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41915d:	59                   	pop    %ecx
41915e:	5f                   	pop    %edi
41915f:	5f                   	pop    %edi
419160:	5e                   	pop    %esi
419161:	5b                   	pop    %ebx
419162:	8b e5                	mov    %ebp,%esp
419164:	5d                   	pop    %ebp
419165:	51                   	push   %ecx
419166:	c3                   	ret
419167:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41916a:	33 cd                	xor    %ebp,%ecx
41916c:	e8 84 fa fe ff       	call   0x408bf5
419171:	e9 dd ff ff ff       	jmp    0x419153
419176:	50                   	push   %eax
419177:	64 ff 35 00 00 00 00 	push   %fs:0x0
41917e:	8d 44 24 0c          	lea    0xc(%esp),%eax
419182:	2b 64 24 0c          	sub    0xc(%esp),%esp
419186:	53                   	push   %ebx
419187:	56                   	push   %esi
419188:	57                   	push   %edi
419189:	89 28                	mov    %ebp,(%eax)
41918b:	8b e8                	mov    %eax,%ebp
41918d:	a1 18 60 42 00       	mov    0x426018,%eax
419192:	33 c5                	xor    %ebp,%eax
419194:	50                   	push   %eax
419195:	89 45 f0             	mov    %eax,-0x10(%ebp)
419198:	ff 75 fc             	push   -0x4(%ebp)
41919b:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
4191a2:	8d 45 f4             	lea    -0xc(%ebp),%eax
4191a5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4191ab:	c3                   	ret
4191ac:	50                   	push   %eax
4191ad:	64 ff 35 00 00 00 00 	push   %fs:0x0
4191b4:	8d 44 24 0c          	lea    0xc(%esp),%eax
4191b8:	2b 64 24 0c          	sub    0xc(%esp),%esp
4191bc:	53                   	push   %ebx
4191bd:	56                   	push   %esi
4191be:	57                   	push   %edi
4191bf:	89 28                	mov    %ebp,(%eax)
4191c1:	8b e8                	mov    %eax,%ebp
4191c3:	a1 18 60 42 00       	mov    0x426018,%eax
4191c8:	33 c5                	xor    %ebp,%eax
4191ca:	50                   	push   %eax
4191cb:	89 65 f0             	mov    %esp,-0x10(%ebp)
4191ce:	ff 75 fc             	push   -0x4(%ebp)
4191d1:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
4191d8:	8d 45 f4             	lea    -0xc(%ebp),%eax
4191db:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4191e1:	c3                   	ret
4191e2:	cc                   	int3
4191e3:	cc                   	int3
4191e4:	cc                   	int3
4191e5:	cc                   	int3
4191e6:	cc                   	int3
4191e7:	cc                   	int3
4191e8:	cc                   	int3
4191e9:	cc                   	int3
4191ea:	cc                   	int3
4191eb:	cc                   	int3
4191ec:	cc                   	int3
4191ed:	cc                   	int3
4191ee:	cc                   	int3
4191ef:	cc                   	int3
4191f0:	55                   	push   %ebp
4191f1:	8b ec                	mov    %esp,%ebp
4191f3:	ff 75 08             	push   0x8(%ebp)
4191f6:	e8 f1 02 00 00       	call   0x4194ec
4191fb:	59                   	pop    %ecx
4191fc:	5d                   	pop    %ebp
4191fd:	c3                   	ret
4191fe:	cc                   	int3
4191ff:	cc                   	int3
419200:	56                   	push   %esi
419201:	8b 44 24 14          	mov    0x14(%esp),%eax
419205:	0b c0                	or     %eax,%eax
419207:	75 28                	jne    0x419231
419209:	8b 4c 24 10          	mov    0x10(%esp),%ecx
41920d:	8b 44 24 0c          	mov    0xc(%esp),%eax
419211:	33 d2                	xor    %edx,%edx
419213:	f7 f1                	div    %ecx
419215:	8b d8                	mov    %eax,%ebx
419217:	8b 44 24 08          	mov    0x8(%esp),%eax
41921b:	f7 f1                	div    %ecx
41921d:	8b f0                	mov    %eax,%esi
41921f:	8b c3                	mov    %ebx,%eax
419221:	f7 64 24 10          	mull   0x10(%esp)
419225:	8b c8                	mov    %eax,%ecx
419227:	8b c6                	mov    %esi,%eax
419229:	f7 64 24 10          	mull   0x10(%esp)
41922d:	03 d1                	add    %ecx,%edx
41922f:	eb 47                	jmp    0x419278
419231:	8b c8                	mov    %eax,%ecx
419233:	8b 5c 24 10          	mov    0x10(%esp),%ebx
419237:	8b 54 24 0c          	mov    0xc(%esp),%edx
41923b:	8b 44 24 08          	mov    0x8(%esp),%eax
41923f:	d1 e9                	shr    $1,%ecx
419241:	d1 db                	rcr    $1,%ebx
419243:	d1 ea                	shr    $1,%edx
419245:	d1 d8                	rcr    $1,%eax
419247:	0b c9                	or     %ecx,%ecx
419249:	75 f4                	jne    0x41923f
41924b:	f7 f3                	div    %ebx
41924d:	8b f0                	mov    %eax,%esi
41924f:	f7 64 24 14          	mull   0x14(%esp)
419253:	8b c8                	mov    %eax,%ecx
419255:	8b 44 24 10          	mov    0x10(%esp),%eax
419259:	f7 e6                	mul    %esi
41925b:	03 d1                	add    %ecx,%edx
41925d:	72 0e                	jb     0x41926d
41925f:	3b 54 24 0c          	cmp    0xc(%esp),%edx
419263:	77 08                	ja     0x41926d
419265:	72 0f                	jb     0x419276
419267:	3b 44 24 08          	cmp    0x8(%esp),%eax
41926b:	76 09                	jbe    0x419276
41926d:	4e                   	dec    %esi
41926e:	2b 44 24 10          	sub    0x10(%esp),%eax
419272:	1b 54 24 14          	sbb    0x14(%esp),%edx
419276:	33 db                	xor    %ebx,%ebx
419278:	2b 44 24 08          	sub    0x8(%esp),%eax
41927c:	1b 54 24 0c          	sbb    0xc(%esp),%edx
419280:	f7 da                	neg    %edx
419282:	f7 d8                	neg    %eax
419284:	83 da 00             	sbb    $0x0,%edx
419287:	8b ca                	mov    %edx,%ecx
419289:	8b d3                	mov    %ebx,%edx
41928b:	8b d9                	mov    %ecx,%ebx
41928d:	8b c8                	mov    %eax,%ecx
41928f:	8b c6                	mov    %esi,%eax
419291:	5e                   	pop    %esi
419292:	c2 10 00             	ret    $0x10
419295:	cc                   	int3
419296:	cc                   	int3
419297:	cc                   	int3
419298:	cc                   	int3
419299:	cc                   	int3
41929a:	cc                   	int3
41929b:	cc                   	int3
41929c:	cc                   	int3
41929d:	cc                   	int3
41929e:	cc                   	int3
41929f:	cc                   	int3
4192a0:	8b 44 24 08          	mov    0x8(%esp),%eax
4192a4:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4192a8:	0b c8                	or     %eax,%ecx