41b086:	85 f6                	test   %esi,%esi
41b088:	78 a1                	js     0x41b02b
41b08a:	83 fb 04             	cmp    $0x4,%ebx
41b08d:	73 12                	jae    0x41b0a1
41b08f:	68 b8 57 40 00       	push   $0x4057b8
41b094:	8b cf                	mov    %edi,%ecx
41b096:	e8 21 f0 ff ff       	call   0x41a0bc
41b09b:	8b f0                	mov    %eax,%esi
41b09d:	85 f6                	test   %esi,%esi
41b09f:	78 8a                	js     0x41b02b
41b0a1:	43                   	inc    %ebx
41b0a2:	83 fb 05             	cmp    $0x5,%ebx
41b0a5:	72 cf                	jb     0x41b076
41b0a7:	8b 45 10             	mov    0x10(%ebp),%eax
41b0aa:	c6 00 01             	movb   $0x1,(%eax)
41b0ad:	e9 a0 01 00 00       	jmp    0x41b252
41b0b2:	6a 01                	push   $0x1
41b0b4:	68 e0 43 40 00       	push   $0x4043e0
41b0b9:	56                   	push   %esi
41b0ba:	ff 15 8c 35 42 00    	call   *0x42358c
41b0c0:	83 c4 0c             	add    $0xc,%esp
41b0c3:	85 c0                	test   %eax,%eax
41b0c5:	75 16                	jne    0x41b0dd
41b0c7:	51                   	push   %ecx
41b0c8:	56                   	push   %esi
41b0c9:	51                   	push   %ecx
41b0ca:	ba ff 7f 00 00       	mov    $0x7fff,%edx
41b0cf:	8b cf                	mov    %edi,%ecx
41b0d1:	e8 96 ef ff ff       	call   0x41a06c
41b0d6:	8b f0                	mov    %eax,%esi
41b0d8:	e9 78 01 00 00       	jmp    0x41b255
41b0dd:	8b ce                	mov    %esi,%ecx
41b0df:	33 db                	xor    %ebx,%ebx
41b0e1:	8d 51 02             	lea    0x2(%ecx),%edx
41b0e4:	66 8b 01             	mov    (%ecx),%ax
41b0e7:	83 c1 02             	add    $0x2,%ecx
41b0ea:	66 3b c3             	cmp    %bx,%ax
41b0ed:	75 f5                	jne    0x41b0e4
41b0ef:	2b ca                	sub    %edx,%ecx
41b0f1:	d1 f9                	sar    $1,%ecx
41b0f3:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
41b0f6:	89 45 fc             	mov    %eax,-0x4(%ebp)
41b0f9:	83 c0 02             	add    $0x2,%eax
41b0fc:	50                   	push   %eax
41b0fd:	e8 16 08 00 00       	call   0x41b918
41b102:	8b d8                	mov    %eax,%ebx
41b104:	59                   	pop    %ecx
41b105:	85 db                	test   %ebx,%ebx
41b107:	0f 84 19 ff ff ff    	je     0x41b026
41b10d:	8b 45 fc             	mov    -0x4(%ebp),%eax
41b110:	83 c0 02             	add    $0x2,%eax
41b113:	50                   	push   %eax
41b114:	33 c0                	xor    %eax,%eax
41b116:	50                   	push   %eax
41b117:	53                   	push   %ebx
41b118:	e8 04 15 00 00       	call   0x41c621
41b11d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41b120:	51                   	push   %ecx
41b121:	56                   	push   %esi
41b122:	8d 41 02             	lea    0x2(%ecx),%eax
41b125:	50                   	push   %eax
41b126:	53                   	push   %ebx
41b127:	ff 15 90 35 42 00    	call   *0x423590
41b12d:	83 c4 1c             	add    $0x1c,%esp
41b130:	8b cf                	mov    %edi,%ecx
41b132:	56                   	push   %esi
41b133:	e8 84 ef ff ff       	call   0x41a0bc
41b138:	8b f0                	mov    %eax,%esi
41b13a:	89 75 e8             	mov    %esi,-0x18(%ebp)
41b13d:	85 f6                	test   %esi,%esi
41b13f:	0f 88 e6 fe ff ff    	js     0x41b02b
41b145:	8d 45 f4             	lea    -0xc(%ebp),%eax
41b148:	50                   	push   %eax
41b149:	8d 45 f0             	lea    -0x10(%ebp),%eax
41b14c:	50                   	push   %eax
41b14d:	53                   	push   %ebx
41b14e:	ff 15 94 35 42 00    	call   *0x423594
41b154:	8b d0                	mov    %eax,%edx
41b156:	83 c4 0c             	add    $0xc,%esp
41b159:	89 55 fc             	mov    %edx,-0x4(%ebp)
41b15c:	85 d2                	test   %edx,%edx
41b15e:	0f 84 a4 00 00 00    	je     0x41b208
41b164:	8b 7d f8             	mov    -0x8(%ebp),%edi
41b167:	33 f6                	xor    %esi,%esi
41b169:	8b de                	mov    %esi,%ebx
41b16b:	8b 0c 9d 40 00 42 00 	mov    0x420040(,%ebx,4),%ecx
41b172:	8d 41 02             	lea    0x2(%ecx),%eax
41b175:	89 45 ec             	mov    %eax,-0x14(%ebp)
41b178:	66 8b 01             	mov    (%ecx),%ax
41b17b:	83 c1 02             	add    $0x2,%ecx
41b17e:	66 3b c6             	cmp    %si,%ax
41b181:	75 f5                	jne    0x41b178
41b183:	2b 4d ec             	sub    -0x14(%ebp),%ecx
41b186:	d1 f9                	sar    $1,%ecx
41b188:	51                   	push   %ecx
41b189:	52                   	push   %edx
41b18a:	ff 34 9d 40 00 42 00 	push   0x420040(,%ebx,4)
41b191:	ff 15 8c 35 42 00    	call   *0x42358c
41b197:	83 c4 0c             	add    $0xc,%esp
41b19a:	85 c0                	test   %eax,%eax
41b19c:	75 36                	jne    0x41b1d4
41b19e:	8b 14 9d 40 00 42 00 	mov    0x420040(,%ebx,4),%edx
41b1a5:	8d 4a 02             	lea    0x2(%edx),%ecx
41b1a8:	66 8b 02             	mov    (%edx),%ax
41b1ab:	83 c2 02             	add    $0x2,%edx
41b1ae:	66 3b c6             	cmp    %si,%ax
41b1b1:	75 f5                	jne    0x41b1a8
41b1b3:	2b d1                	sub    %ecx,%edx
41b1b5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41b1b8:	d1 fa                	sar    $1,%edx
41b1ba:	8d 41 02             	lea    0x2(%ecx),%eax
41b1bd:	89 45 ec             	mov    %eax,-0x14(%ebp)
41b1c0:	66 8b 01             	mov    (%ecx),%ax
41b1c3:	83 c1 02             	add    $0x2,%ecx
41b1c6:	66 3b c6             	cmp    %si,%ax
41b1c9:	75 f5                	jne    0x41b1c0
41b1cb:	2b 4d ec             	sub    -0x14(%ebp),%ecx
41b1ce:	d1 f9                	sar    $1,%ecx
41b1d0:	3b d1                	cmp    %ecx,%edx
41b1d2:	74 0b                	je     0x41b1df
41b1d4:	43                   	inc    %ebx
41b1d5:	83 fb 05             	cmp    $0x5,%ebx
41b1d8:	73 09                	jae    0x41b1e3
41b1da:	8b 55 fc             	mov    -0x4(%ebp),%edx
41b1dd:	eb 8c                	jmp    0x41b16b
41b1df:	c6 04 3b 01          	movb   $0x1,(%ebx,%edi,1)
41b1e3:	8d 45 f4             	lea    -0xc(%ebp),%eax
41b1e6:	50                   	push   %eax
41b1e7:	8d 45 f0             	lea    -0x10(%ebp),%eax
41b1ea:	50                   	push   %eax
41b1eb:	56                   	push   %esi
41b1ec:	ff 15 94 35 42 00    	call   *0x423594
41b1f2:	8b d0                	mov    %eax,%edx
41b1f4:	89 45 fc             	mov    %eax,-0x4(%ebp)
41b1f7:	83 c4 0c             	add    $0xc,%esp
41b1fa:	85 d2                	test   %edx,%edx
41b1fc:	0f 85 67 ff ff ff    	jne    0x41b169
41b202:	8b 75 e8             	mov    -0x18(%ebp),%esi
41b205:	8b 7d e4             	mov    -0x1c(%ebp),%edi
41b208:	33 c0                	xor    %eax,%eax
41b20a:	8b d8                	mov    %eax,%ebx
41b20c:	8b 45 f8             	mov    -0x8(%ebp),%eax
41b20f:	80 3c 03 00          	cmpb   $0x0,(%ebx,%eax,1)
41b213:	75 37                	jne    0x41b24c
41b215:	68 b8 57 40 00       	push   $0x4057b8
41b21a:	8b cf                	mov    %edi,%ecx
41b21c:	e8 9b ee ff ff       	call   0x41a0bc
41b221:	8b f0                	mov    %eax,%esi
41b223:	85 f6                	test   %esi,%esi
41b225:	0f 88 00 fe ff ff    	js     0x41b02b
41b22b:	ff 34 9d 40 00 42 00 	push   0x420040(,%ebx,4)
41b232:	8b cf                	mov    %edi,%ecx
41b234:	e8 83 ee ff ff       	call   0x41a0bc
41b239:	8b f0                	mov    %eax,%esi
41b23b:	85 f6                	test   %esi,%esi
41b23d:	0f 88 e8 fd ff ff    	js     0x41b02b
41b243:	8b 45 10             	mov    0x10(%ebp),%eax
41b246:	c6 00 01             	movb   $0x1,(%eax)
41b249:	8b 45 f8             	mov    -0x8(%ebp),%eax
41b24c:	43                   	inc    %ebx
41b24d:	83 fb 05             	cmp    $0x5,%ebx
41b250:	72 bd                	jb     0x41b20f
41b252:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41b255:	85 f6                	test   %esi,%esi
41b257:	0f 88 ce fd ff ff    	js     0x41b02b
41b25d:	89 3b                	mov    %edi,(%ebx)
41b25f:	e9 de fd ff ff       	jmp    0x41b042
41b264:	8b ff                	mov    %edi,%edi
41b266:	56                   	push   %esi
41b267:	8b f1                	mov    %ecx,%esi
41b269:	33 c0                	xor    %eax,%eax
41b26b:	0f b7 0e             	movzwl (%esi),%ecx
41b26e:	f6 c1 01             	test   $0x1,%cl
41b271:	75 29                	jne    0x41b29c
41b273:	0f b7 56 02          	movzwl 0x2(%esi),%edx
41b277:	f6 c2 01             	test   $0x1,%dl
41b27a:	75 20                	jne    0x41b29c
41b27c:	66 3b ca             	cmp    %dx,%cx
41b27f:	77 1b                	ja     0x41b29c
41b281:	57                   	push   %edi
41b282:	bf fe ff 00 00       	mov    $0xfffe,%edi
41b287:	66 3b d7             	cmp    %di,%dx
41b28a:	5f                   	pop    %edi
41b28b:	77 0f                	ja     0x41b29c
41b28d:	39 46 04             	cmp    %eax,0x4(%esi)
41b290:	75 0f                	jne    0x41b2a1
41b292:	66 85 c9             	test   %cx,%cx
41b295:	75 05                	jne    0x41b29c
41b297:	66 85 d2             	test   %dx,%dx
41b29a:	74 05                	je     0x41b2a1
41b29c:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
41b2a1:	5e                   	pop    %esi
41b2a2:	c3                   	ret
41b2a3:	e9 76 06 00 00       	jmp    0x41b91e
41b2a8:	8b ff                	mov    %edi,%edi
41b2aa:	55                   	push   %ebp
41b2ab:	8b ec                	mov    %esp,%ebp
41b2ad:	56                   	push   %esi
41b2ae:	eb 0d                	jmp    0x41b2bd
41b2b0:	ff 75 08             	push   0x8(%ebp)
41b2b3:	e8 6c 06 00 00       	call   0x41b924
41b2b8:	59                   	pop    %ecx
41b2b9:	85 c0                	test   %eax,%eax
41b2bb:	74 0f                	je     0x41b2cc
41b2bd:	ff 75 08             	push   0x8(%ebp)
41b2c0:	e8 53 06 00 00       	call   0x41b918
41b2c5:	8b f0                	mov    %eax,%esi
41b2c7:	59                   	pop    %ecx
41b2c8:	85 f6                	test   %esi,%esi
41b2ca:	74 e4                	je     0x41b2b0
41b2cc:	8b c6                	mov    %esi,%eax
41b2ce:	5e                   	pop    %esi
41b2cf:	5d                   	pop    %ebp
41b2d0:	c3                   	ret
41b2d1:	8b ff                	mov    %edi,%edi
41b2d3:	55                   	push   %ebp
41b2d4:	8b ec                	mov    %esp,%ebp
41b2d6:	5d                   	pop    %ebp
41b2d7:	e9 cc ff ff ff       	jmp    0x41b2a8
41b2dc:	e9 c2 ff ff ff       	jmp    0x41b2a3
41b2e1:	cc                   	int3
41b2e2:	cc                   	int3
41b2e3:	cc                   	int3
41b2e4:	cc                   	int3
41b2e5:	cc                   	int3
41b2e6:	cc                   	int3
41b2e7:	cc                   	int3
41b2e8:	cc                   	int3
41b2e9:	cc                   	int3
41b2ea:	cc                   	int3
41b2eb:	cc                   	int3
41b2ec:	cc                   	int3
41b2ed:	cc                   	int3
41b2ee:	cc                   	int3
41b2ef:	cc                   	int3
41b2f0:	e8 aa 02 00 00       	call   0x41b59f
41b2f5:	6a 02                	push   $0x2
41b2f7:	a3 b8 06 42 00       	mov    %eax,0x4206b8
41b2fc:	e8 07 07 00 00       	call   0x41ba08
41b301:	50                   	push   %eax
41b302:	ff 15 1c 35 42 00    	call   *0x42351c
41b308:	83 0d 98 21 42 00 ff 	orl    $0xffffffff,0x422198
41b30f:	83 0d 9c 21 42 00 ff 	orl    $0xffffffff,0x42219c
41b316:	59                   	pop    %ecx
41b317:	59                   	pop    %ecx
41b318:	ff 15 10 35 42 00    	call   *0x423510
41b31e:	8b 0d e8 09 42 00    	mov    0x4209e8,%ecx
41b324:	89 08                	mov    %ecx,(%eax)
41b326:	ff 15 28 35 42 00    	call   *0x423528
41b32c:	8b 0d dc 09 42 00    	mov    0x4209dc,%ecx
41b332:	89 08                	mov    %ecx,(%eax)
41b334:	e8 17 07 00 00       	call   0x41ba50
41b339:	83 3d e0 05 42 00 00 	cmpl   $0x0,0x4205e0
41b340:	75 0c                	jne    0x41b34e
41b342:	68 50 ba 41 00       	push   $0x41ba50
41b347:	ff 15 0c 35 42 00    	call   *0x42350c
41b34d:	59                   	pop    %ecx
41b34e:	e8 ea 08 00 00       	call   0x41bc3d
41b353:	33 c0                	xor    %eax,%eax
41b355:	c3                   	ret
41b356:	cc                   	int3
41b357:	cc                   	int3
41b358:	cc                   	int3
41b359:	cc                   	int3
41b35a:	cc                   	int3
41b35b:	cc                   	int3
41b35c:	cc                   	int3
41b35d:	cc                   	int3
41b35e:	cc                   	int3
41b35f:	cc                   	int3
41b360:	a1 e4 09 42 00       	mov    0x4209e4,%eax
41b365:	68 bc 06 42 00       	push   $0x4206bc
41b36a:	ff 35 e0 09 42 00    	push   0x4209e0
41b370:	a3 bc 06 42 00       	mov    %eax,0x4206bc
41b375:	68 b0 06 42 00       	push   $0x4206b0
41b37a:	68 ac 06 42 00       	push   $0x4206ac
41b37f:	68 a8 06 42 00       	push   $0x4206a8
41b384:	ff 15 20 35 42 00    	call   *0x423520
41b38a:	83 c4 14             	add    $0x14,%esp
41b38d:	a3 b4 06 42 00       	mov    %eax,0x4206b4
41b392:	c3                   	ret
41b393:	6a 58                	push   $0x58
41b395:	68 f8 fd 41 00       	push   $0x41fdf8
41b39a:	e8 b9 08 00 00       	call   0x41bc58
41b39f:	33 db                	xor    %ebx,%ebx
41b3a1:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
41b3a4:	8d 45 98             	lea    -0x68(%ebp),%eax
41b3a7:	50                   	push   %eax
41b3a8:	ff 15 a8 30 42 00    	call   *0x4230a8
41b3ae:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41b3b1:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
41b3b7:	8b 70 04             	mov    0x4(%eax),%esi
41b3ba:	8b fb                	mov    %ebx,%edi
41b3bc:	ba 90 21 42 00       	mov    $0x422190,%edx
41b3c1:	8b ce                	mov    %esi,%ecx
41b3c3:	33 c0                	xor    %eax,%eax
41b3c5:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
41b3c9:	85 c0                	test   %eax,%eax
41b3cb:	74 18                	je     0x41b3e5
41b3cd:	3b c6                	cmp    %esi,%eax
41b3cf:	75 07                	jne    0x41b3d8
41b3d1:	33 f6                	xor    %esi,%esi
41b3d3:	46                   	inc    %esi
41b3d4:	8b fe                	mov    %esi,%edi
41b3d6:	eb 10                	jmp    0x41b3e8
41b3d8:	68 e8 03 00 00       	push   $0x3e8
41b3dd:	ff 15 7c 30 42 00    	call   *0x42307c
41b3e3:	eb d7                	jmp    0x41b3bc
41b3e5:	33 f6                	xor    %esi,%esi
41b3e7:	46                   	inc    %esi
41b3e8:	39 35 94 21 42 00    	cmp    %esi,0x422194
41b3ee:	75 0a                	jne    0x41b3fa
41b3f0:	6a 1f                	push   $0x1f
41b3f2:	e8 47 06 00 00       	call   0x41ba3e
41b3f7:	59                   	pop    %ecx
41b3f8:	eb 3a                	jmp    0x41b434
41b3fa:	39 1d 94 21 42 00    	cmp    %ebx,0x422194
41b400:	75 2c                	jne    0x41b42e
41b402:	89 35 94 21 42 00    	mov    %esi,0x422194
41b408:	68 08 3e 40 00       	push   $0x403e08
41b40d:	68 fc 3d 40 00       	push   $0x403dfc
41b412:	e8 57 01 00 00       	call   0x41b56e
41b417:	59                   	pop    %ecx
41b418:	59                   	pop    %ecx
41b419:	85 c0                	test   %eax,%eax
41b41b:	74 17                	je     0x41b434
41b41d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41b424:	b8 ff 00 00 00       	mov    $0xff,%eax
41b429:	e9 30 01 00 00       	jmp    0x41b55e
41b42e:	89 35 a4 06 42 00    	mov    %esi,0x4206a4
41b434:	39 35 94 21 42 00    	cmp    %esi,0x422194
41b43a:	75 1b                	jne    0x41b457
41b43c:	68 f8 3d 40 00       	push   $0x403df8
41b441:	68 e0 3d 40 00       	push   $0x403de0
41b446:	e8 05 08 00 00       	call   0x41bc50
41b44b:	59                   	pop    %ecx
41b44c:	59                   	pop    %ecx
41b44d:	c7 05 94 21 42 00 02 	movl   $0x2,0x422194
41b454:	00 00 00
41b457:	85 ff                	test   %edi,%edi
41b459:	75 09                	jne    0x41b464
41b45b:	33 c0                	xor    %eax,%eax
41b45d:	b9 90 21 42 00       	mov    $0x422190,%ecx
41b462:	87 01                	xchg   %eax,(%ecx)
41b464:	83 3d a0 21 42 00 00 	cmpl   $0x0,0x4221a0
41b46b:	74 23                	je     0x41b490
41b46d:	68 a0 21 42 00       	push   $0x4221a0
41b472:	e8 39 06 00 00       	call   0x41bab0
41b477:	59                   	pop    %ecx
41b478:	85 c0                	test   %eax,%eax