40b209:	e8 a2 c1 ff ff       	call   0x4073b0
40b20e:	b8 57 00 07 80       	mov    $0x80070057,%eax
40b213:	eb 2c                	jmp    0x40b241
40b215:	33 d2                	xor    %edx,%edx
40b217:	8d 8e ec 02 00 00    	lea    0x2ec(%esi),%ecx
40b21d:	42                   	inc    %edx
40b21e:	33 c0                	xor    %eax,%eax
40b220:	f0 0f b1 11          	lock cmpxchg %edx,(%ecx)
40b224:	85 c0                	test   %eax,%eax
40b226:	75 17                	jne    0x40b23f
40b228:	ff b6 10 02 00 00    	push   0x210(%esi)
40b22e:	ff b6 b8 01 00 00    	push   0x1b8(%esi)
40b234:	ff 75 08             	push   0x8(%ebp)
40b237:	ff 15 bc c4 42 00    	call   *0x42c4bc
40b23d:	8b f8                	mov    %eax,%edi
40b23f:	8b c7                	mov    %edi,%eax
40b241:	5f                   	pop    %edi
40b242:	5e                   	pop    %esi
40b243:	59                   	pop    %ecx
40b244:	5d                   	pop    %ebp
40b245:	c2 04 00             	ret    $0x4
40b248:	8b ff                	mov    %edi,%edi
40b24a:	55                   	push   %ebp
40b24b:	8b ec                	mov    %esp,%ebp
40b24d:	83 e4 f8             	and    $0xfffffff8,%esp
40b250:	51                   	push   %ecx
40b251:	83 24 24 00          	andl   $0x0,(%esp)
40b255:	53                   	push   %ebx
40b256:	56                   	push   %esi
40b257:	57                   	push   %edi
40b258:	8b 7d 08             	mov    0x8(%ebp),%edi
40b25b:	33 db                	xor    %ebx,%ebx
40b25d:	43                   	inc    %ebx
40b25e:	8b f1                	mov    %ecx,%esi
40b260:	8b 47 04             	mov    0x4(%edi),%eax
40b263:	83 e8 00             	sub    $0x0,%eax
40b266:	74 46                	je     0x40b2ae
40b268:	83 e8 04             	sub    $0x4,%eax
40b26b:	0f 84 f9 00 00 00    	je     0x40b36a
40b271:	2b c3                	sub    %ebx,%eax
40b273:	74 7e                	je     0x40b2f3
40b275:	2b c3                	sub    %ebx,%eax
40b277:	74 2f                	je     0x40b2a8
40b279:	83 e8 03             	sub    $0x3,%eax
40b27c:	75 40                	jne    0x40b2be
40b27e:	83 7f 0c 03          	cmpl   $0x3,0xc(%edi)
40b282:	75 3a                	jne    0x40b2be
40b284:	e8 4f eb ff ff       	call   0x409dd8
40b289:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40b28f:	33 c9                	xor    %ecx,%ecx
40b291:	39 48 28             	cmp    %ecx,0x28(%eax)
40b294:	74 28                	je     0x40b2be
40b296:	39 8e 88 01 00 00    	cmp    %ecx,0x188(%esi)
40b29c:	75 20                	jne    0x40b2be
40b29e:	51                   	push   %ecx
40b29f:	8b ce                	mov    %esi,%ecx
40b2a1:	e8 f1 e4 ff ff       	call   0x409797
40b2a6:	eb 16                	jmp    0x40b2be
40b2a8:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
40b2ac:	75 10                	jne    0x40b2be
40b2ae:	83 be 88 01 00 00 00 	cmpl   $0x0,0x188(%esi)
40b2b5:	75 07                	jne    0x40b2be
40b2b7:	ff 37                	push   (%edi)
40b2b9:	e8 1a ff ff ff       	call   0x40b1d8
40b2be:	8b 8e e8 02 00 00    	mov    0x2e8(%esi),%ecx
40b2c4:	85 c9                	test   %ecx,%ecx
40b2c6:	74 1e                	je     0x40b2e6
40b2c8:	85 db                	test   %ebx,%ebx
40b2ca:	74 1a                	je     0x40b2e6
40b2cc:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b2d0:	8d 54 24 0c          	lea    0xc(%esp),%edx
40b2d4:	f7 d8                	neg    %eax
40b2d6:	1b c0                	sbb    %eax,%eax
40b2d8:	f7 d0                	not    %eax
40b2da:	23 c2                	and    %edx,%eax
40b2dc:	8b 56 48             	mov    0x48(%esi),%edx
40b2df:	50                   	push   %eax
40b2e0:	57                   	push   %edi
40b2e1:	e8 7f d3 00 00       	call   0x418665
40b2e6:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b2ea:	5f                   	pop    %edi
40b2eb:	5e                   	pop    %esi
40b2ec:	5b                   	pop    %ebx
40b2ed:	8b e5                	mov    %ebp,%esp
40b2ef:	5d                   	pop    %ebp
40b2f0:	c2 04 00             	ret    $0x4
40b2f3:	a1 00 b0 42 00       	mov    0x42b000,%eax
40b2f8:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40b2fd:	74 19                	je     0x40b318
40b2ff:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
40b303:	74 13                	je     0x40b318
40b305:	ff 70 14             	push   0x14(%eax)
40b308:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40b30d:	ff 70 10             	push   0x10(%eax)
40b310:	6a 68                	push   $0x68
40b312:	59                   	pop    %ecx
40b313:	e8 98 c0 ff ff       	call   0x4073b0
40b318:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40b31e:	33 db                	xor    %ebx,%ebx
40b320:	f6 80 84 9a 00 00 04 	testb  $0x4,0x9a84(%eax)
40b327:	75 09                	jne    0x40b332
40b329:	6a 02                	push   $0x2
40b32b:	8b ce                	mov    %esi,%ecx
40b32d:	e8 ba e2 ff ff       	call   0x4095ec
40b332:	8b ce                	mov    %esi,%ecx
40b334:	e8 25 eb ff ff       	call   0x409e5e
40b339:	8b ce                	mov    %esi,%ecx
40b33b:	e8 98 ea ff ff       	call   0x409dd8
40b340:	6a 01                	push   $0x1
40b342:	8b ce                	mov    %esi,%ecx
40b344:	e8 4e e4 ff ff       	call   0x409797
40b349:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40b34f:	8b ce                	mov    %esi,%ecx
40b351:	8b 40 38             	mov    0x38(%eax),%eax
40b354:	24 02                	and    $0x2,%al
40b356:	0f b6 c0             	movzbl %al,%eax
40b359:	f7 d8                	neg    %eax
40b35b:	1b c0                	sbb    %eax,%eax
40b35d:	25 ac 21 40 00       	and    $0x4021ac,%eax
40b362:	50                   	push   %eax
40b363:	e8 07 e9 ff ff       	call   0x409c6f
40b368:	eb 3e                	jmp    0x40b3a8
40b36a:	a1 00 b0 42 00       	mov    0x42b000,%eax
40b36f:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40b374:	74 19                	je     0x40b38f
40b376:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
40b37a:	74 13                	je     0x40b38f
40b37c:	ff 70 14             	push   0x14(%eax)
40b37f:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40b384:	ff 70 10             	push   0x10(%eax)
40b387:	6a 67                	push   $0x67
40b389:	59                   	pop    %ecx
40b38a:	e8 21 c0 ff ff       	call   0x4073b0
40b38f:	6a 04                	push   $0x4
40b391:	8b ce                	mov    %esi,%ecx
40b393:	33 db                	xor    %ebx,%ebx
40b395:	e8 52 e2 ff ff       	call   0x4095ec
40b39a:	8b ce                	mov    %esi,%ecx
40b39c:	e8 bd ea ff ff       	call   0x409e5e
40b3a1:	8b ce                	mov    %esi,%ecx
40b3a3:	e8 30 ea ff ff       	call   0x409dd8
40b3a8:	c7 44 24 0c 01 00 00 	movl   $0x1,0xc(%esp)
40b3af:	00
40b3b0:	e9 09 ff ff ff       	jmp    0x40b2be
40b3b5:	cc                   	int3
40b3b6:	cc                   	int3
40b3b7:	cc                   	int3
40b3b8:	cc                   	int3
40b3b9:	cc                   	int3
40b3ba:	cc                   	int3
40b3bb:	cc                   	int3
40b3bc:	cc                   	int3
40b3bd:	cc                   	int3
40b3be:	cc                   	int3
40b3bf:	cc                   	int3
40b3c0:	8b ff                	mov    %edi,%edi
40b3c2:	55                   	push   %ebp
40b3c3:	8b ec                	mov    %esp,%ebp
40b3c5:	ff 75 0c             	push   0xc(%ebp)
40b3c8:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b3cb:	e8 78 fe ff ff       	call   0x40b248
40b3d0:	5d                   	pop    %ebp
40b3d1:	c2 08 00             	ret    $0x8
40b3d4:	8b ff                	mov    %edi,%edi
40b3d6:	55                   	push   %ebp
40b3d7:	8b ec                	mov    %esp,%ebp
40b3d9:	51                   	push   %ecx
40b3da:	56                   	push   %esi
40b3db:	8b f1                	mov    %ecx,%esi
40b3dd:	89 75 fc             	mov    %esi,-0x4(%ebp)
40b3e0:	e8 bc 08 00 00       	call   0x40bca1
40b3e5:	8d 8e b0 01 00 00    	lea    0x1b0(%esi),%ecx
40b3eb:	e8 d8 b4 00 00       	call   0x4168c8
40b3f0:	33 c9                	xor    %ecx,%ecx
40b3f2:	6a 03                	push   $0x3
40b3f4:	58                   	pop    %eax
40b3f5:	89 86 98 01 00 00    	mov    %eax,0x198(%esi)
40b3fb:	89 86 88 01 00 00    	mov    %eax,0x188(%esi)
40b401:	8b c6                	mov    %esi,%eax
40b403:	89 8e a4 01 00 00    	mov    %ecx,0x1a4(%esi)
40b409:	89 8e a8 01 00 00    	mov    %ecx,0x1a8(%esi)
40b40f:	89 8e 8c 01 00 00    	mov    %ecx,0x18c(%esi)
40b415:	89 8e 90 01 00 00    	mov    %ecx,0x190(%esi)
40b41b:	89 8e 94 01 00 00    	mov    %ecx,0x194(%esi)
40b421:	89 8e 9c 01 00 00    	mov    %ecx,0x19c(%esi)
40b427:	89 8e a0 01 00 00    	mov    %ecx,0x1a0(%esi)
40b42d:	89 8e e4 02 00 00    	mov    %ecx,0x2e4(%esi)
40b433:	89 8e e0 02 00 00    	mov    %ecx,0x2e0(%esi)
40b439:	89 8e e8 02 00 00    	mov    %ecx,0x2e8(%esi)
40b43f:	89 8e ec 02 00 00    	mov    %ecx,0x2ec(%esi)
40b445:	5e                   	pop    %esi
40b446:	c9                   	leave
40b447:	c3                   	ret
40b448:	8b ff                	mov    %edi,%edi
40b44a:	55                   	push   %ebp
40b44b:	8b ec                	mov    %esp,%ebp
40b44d:	6a ff                	push   $0xffffffff
40b44f:	68 44 85 42 00       	push   $0x428544
40b454:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40b45a:	50                   	push   %eax
40b45b:	56                   	push   %esi
40b45c:	57                   	push   %edi
40b45d:	a1 74 b6 42 00       	mov    0x42b674,%eax
40b462:	33 c5                	xor    %ebp,%eax
40b464:	50                   	push   %eax
40b465:	8d 45 f4             	lea    -0xc(%ebp),%eax
40b468:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40b46e:	8b f1                	mov    %ecx,%esi
40b470:	8b 86 a8 01 00 00    	mov    0x1a8(%esi),%eax
40b476:	33 ff                	xor    %edi,%edi
40b478:	85 c0                	test   %eax,%eax
40b47a:	74 0d                	je     0x40b489
40b47c:	50                   	push   %eax
40b47d:	ff 15 30 c2 42 00    	call   *0x42c230
40b483:	89 be a8 01 00 00    	mov    %edi,0x1a8(%esi)
40b489:	8b 86 a4 01 00 00    	mov    0x1a4(%esi),%eax
40b48f:	85 c0                	test   %eax,%eax
40b491:	74 0d                	je     0x40b4a0
40b493:	50                   	push   %eax
40b494:	ff 15 30 c2 42 00    	call   *0x42c230
40b49a:	89 be a4 01 00 00    	mov    %edi,0x1a4(%esi)
40b4a0:	8b 86 98 01 00 00    	mov    0x198(%esi),%eax
40b4a6:	83 f8 01             	cmp    $0x1,%eax
40b4a9:	75 2a                	jne    0x40b4d5
40b4ab:	8b 86 90 01 00 00    	mov    0x190(%esi),%eax
40b4b1:	85 c0                	test   %eax,%eax
40b4b3:	74 0d                	je     0x40b4c2
40b4b5:	50                   	push   %eax
40b4b6:	ff 15 50 c2 42 00    	call   *0x42c250
40b4bc:	89 be 90 01 00 00    	mov    %edi,0x190(%esi)
40b4c2:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40b4c8:	85 c0                	test   %eax,%eax
40b4ca:	74 42                	je     0x40b50e
40b4cc:	50                   	push   %eax
40b4cd:	e8 69 c8 01 00       	call   0x427d3b
40b4d2:	59                   	pop    %ecx
40b4d3:	eb 33                	jmp    0x40b508
40b4d5:	83 f8 02             	cmp    $0x2,%eax
40b4d8:	75 19                	jne    0x40b4f3
40b4da:	8b 86 94 01 00 00    	mov    0x194(%esi),%eax
40b4e0:	85 c0                	test   %eax,%eax
40b4e2:	74 de                	je     0x40b4c2
40b4e4:	50                   	push   %eax
40b4e5:	ff 15 50 c2 42 00    	call   *0x42c250
40b4eb:	89 be 94 01 00 00    	mov    %edi,0x194(%esi)
40b4f1:	eb cf                	jmp    0x40b4c2
40b4f3:	85 c0                	test   %eax,%eax
40b4f5:	75 17                	jne    0x40b50e
40b4f7:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40b4fd:	85 c0                	test   %eax,%eax
40b4ff:	74 0d                	je     0x40b50e
40b501:	50                   	push   %eax
40b502:	ff 15 50 c2 42 00    	call   *0x42c250
40b508:	89 be 8c 01 00 00    	mov    %edi,0x18c(%esi)
40b50e:	8d 8e e8 02 00 00    	lea    0x2e8(%esi),%ecx
40b514:	39 39                	cmp    %edi,(%ecx)
40b516:	74 05                	je     0x40b51d
40b518:	e8 46 d2 00 00       	call   0x418763
40b51d:	8d 8e b0 01 00 00    	lea    0x1b0(%esi),%ecx
40b523:	e8 fc b4 00 00       	call   0x416a24
40b528:	8b ce                	mov    %esi,%ecx
40b52a:	e8 b1 c2 ff ff       	call   0x4077e0
40b52f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b532:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40b539:	59                   	pop    %ecx
40b53a:	5f                   	pop    %edi
40b53b:	5e                   	pop    %esi
40b53c:	c9                   	leave
40b53d:	c3                   	ret
40b53e:	8b ff                	mov    %edi,%edi
40b540:	55                   	push   %ebp
40b541:	8b ec                	mov    %esp,%ebp
40b543:	56                   	push   %esi
40b544:	33 f6                	xor    %esi,%esi
40b546:	85 d2                	test   %edx,%edx
40b548:	74 08                	je     0x40b552
40b54a:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
40b550:	76 05                	jbe    0x40b557
40b552:	be 57 00 07 80       	mov    $0x80070057,%esi
40b557:	85 f6                	test   %esi,%esi
40b559:	78 41                	js     0x40b59c
40b55b:	8b f2                	mov    %edx,%esi
40b55d:	85 d2                	test   %edx,%edx
40b55f:	74 28                	je     0x40b589
40b561:	57                   	push   %edi
40b562:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
40b567:	2b fa                	sub    %edx,%edi
40b569:	8b 55 08             	mov    0x8(%ebp),%edx
40b56c:	2b d1                	sub    %ecx,%edx
40b56e:	8d 04 37             	lea    (%edi,%esi,1),%eax
40b571:	85 c0                	test   %eax,%eax
40b573:	74 0f                	je     0x40b584
40b575:	8a 04 0a             	mov    (%edx,%ecx,1),%al
40b578:	84 c0                	test   %al,%al
40b57a:	74 08                	je     0x40b584
40b57c:	88 01                	mov    %al,(%ecx)
40b57e:	41                   	inc    %ecx
40b57f:	83 ee 01             	sub    $0x1,%esi
40b582:	75 ea                	jne    0x40b56e
40b584:	5f                   	pop    %edi
40b585:	85 f6                	test   %esi,%esi
40b587:	75 01                	jne    0x40b58a
40b589:	49                   	dec    %ecx
40b58a:	f7 de                	neg    %esi
40b58c:	1b f6                	sbb    %esi,%esi
40b58e:	81 e6 86 ff f8 7f    	and    $0x7ff8ff86,%esi
40b594:	81 c6 7a 00 07 80    	add    $0x8007007a,%esi
40b59a:	eb 04                	jmp    0x40b5a0
40b59c:	85 d2                	test   %edx,%edx
40b59e:	74 03                	je     0x40b5a3
40b5a0:	c6 01 00             	movb   $0x0,(%ecx)
40b5a3:	8b c6                	mov    %esi,%eax
40b5a5:	5e                   	pop    %esi
40b5a6:	5d                   	pop    %ebp
40b5a7:	c2 04 00             	ret    $0x4
40b5aa:	85 c9                	test   %ecx,%ecx
40b5ac:	7e 0b                	jle    0x40b5b9
40b5ae:	0f b7 c9             	movzwl %cx,%ecx
40b5b1:	81 c9 00 00 07 80    	or     $0x80070000,%ecx
40b5b7:	85 c9                	test   %ecx,%ecx
40b5b9:	b8 05 40 00 80       	mov    $0x80004005,%eax
40b5be:	79 02                	jns    0x40b5c2
40b5c0:	8b c1                	mov    %ecx,%eax
40b5c2:	c3                   	ret
40b5c3:	8b ff                	mov    %edi,%edi
40b5c5:	55                   	push   %ebp
40b5c6:	8b ec                	mov    %esp,%ebp
40b5c8:	85 d2                	test   %edx,%edx
40b5ca:	74 3b                	je     0x40b607
40b5cc:	8b 45 08             	mov    0x8(%ebp),%eax
40b5cf:	85 c0                	test   %eax,%eax
40b5d1:	74 34                	je     0x40b607
40b5d3:	f7 c1 00 08 00 00    	test   $0x800,%ecx
40b5d9:	74 03                	je     0x40b5de
40b5db:	83 08 20             	orl    $0x20,(%eax)
40b5de:	8b 45 0c             	mov    0xc(%ebp),%eax
40b5e1:	85 c0                	test   %eax,%eax
40b5e3:	74 0b                	je     0x40b5f0
40b5e5:	f7 c1 00 10 00 00    	test   $0x1000,%ecx
40b5eb:	74 03                	je     0x40b5f0
40b5ed:	83 08 02             	orl    $0x2,(%eax)
40b5f0:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
40b5f6:	74 03                	je     0x40b5fb
40b5f8:	83 0a 60             	orl    $0x60,(%edx)
40b5fb:	f6 c1 40             	test   $0x40,%cl
40b5fe:	74 03                	je     0x40b603
40b600:	83 0a 01             	orl    $0x1,(%edx)
40b603:	33 c0                	xor    %eax,%eax
40b605:	eb 2a                	jmp    0x40b631
40b607:	a1 00 b0 42 00       	mov    0x42b000,%eax