40e6d3:	68 7c 14 40 00       	push   $0x40147c
40e6d8:	56                   	push   %esi
40e6d9:	ff 15 60 22 41 00    	call   *0x412260
40e6df:	8b 7c 24 18          	mov    0x18(%esp),%edi
40e6e3:	89 44 24 40          	mov    %eax,0x40(%esp)
40e6e7:	59                   	pop    %ecx
40e6e8:	59                   	pop    %ecx
40e6e9:	85 c0                	test   %eax,%eax
40e6eb:	74 64                	je     0x40e751
40e6ed:	8b d8                	mov    %eax,%ebx
40e6ef:	8b d3                	mov    %ebx,%edx
40e6f1:	8b cf                	mov    %edi,%ecx
40e6f3:	e8 f5 bd ff ff       	call   0x40a4ed
40e6f8:	68 7c 14 40 00       	push   $0x40147c
40e6fd:	6a 00                	push   $0x0
40e6ff:	ff 15 60 22 41 00    	call   *0x412260
40e705:	8b d8                	mov    %eax,%ebx
40e707:	59                   	pop    %ecx
40e708:	59                   	pop    %ecx
40e709:	85 db                	test   %ebx,%ebx
40e70b:	74 40                	je     0x40e74d
40e70d:	8b ce                	mov    %esi,%ecx
40e70f:	e8 e6 c6 ff ff       	call   0x40adfa
40e714:	d1 e8                	shr    $1,%eax
40e716:	8d 4c 24 40          	lea    0x40(%esp),%ecx
40e71a:	50                   	push   %eax
40e71b:	ba 68 18 40 00       	mov    $0x401868,%edx
40e720:	e8 d1 bc ff ff       	call   0x40a3f6
40e725:	8b 54 24 3c          	mov    0x3c(%esp),%edx
40e729:	8d 4c 24 40          	lea    0x40(%esp),%ecx
40e72d:	6a 00                	push   $0x0
40e72f:	e8 ab b9 ff ff       	call   0x40a0df
40e734:	ba 7c 14 40 00       	mov    $0x40147c,%edx
40e739:	8b cf                	mov    %edi,%ecx
40e73b:	e8 ad bd ff ff       	call   0x40a4ed
40e740:	8d 54 24 40          	lea    0x40(%esp),%edx
40e744:	8b cf                	mov    %edi,%ecx
40e746:	e8 a2 bd ff ff       	call   0x40a4ed
40e74b:	eb a2                	jmp    0x40e6ef
40e74d:	8b 5c 24 20          	mov    0x20(%esp),%ebx
40e751:	ba 7c 14 40 00       	mov    $0x40147c,%edx
40e756:	8b cf                	mov    %edi,%ecx
40e758:	e8 90 bd ff ff       	call   0x40a4ed
40e75d:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40e761:	81 c3 94 02 00 00    	add    $0x294,%ebx
40e767:	40                   	inc    %eax
40e768:	89 5c 24 20          	mov    %ebx,0x20(%esp)
40e76c:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40e770:	83 f8 0d             	cmp    $0xd,%eax
40e773:	0f 82 cd fe ff ff    	jb     0x40e646
40e779:	8b 5c 24 24          	mov    0x24(%esp),%ebx
40e77d:	8d 43 01             	lea    0x1(%ebx),%eax
40e780:	3b 44 24 28          	cmp    0x28(%esp),%eax
40e784:	73 0c                	jae    0x40e792
40e786:	ba 7c 14 40 00       	mov    $0x40147c,%edx
40e78b:	8b cf                	mov    %edi,%ecx
40e78d:	e8 5b bd ff ff       	call   0x40a4ed
40e792:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40e796:	43                   	inc    %ebx
40e797:	89 5c 24 24          	mov    %ebx,0x24(%esp)
40e79b:	3b 5c 24 28          	cmp    0x28(%esp),%ebx
40e79f:	0f 82 77 fe ff ff    	jb     0x40e61c
40e7a5:	eb 17                	jmp    0x40e7be
40e7a7:	ff 15 48 20 41 00    	call   *0x412048
40e7ad:	85 c0                	test   %eax,%eax
40e7af:	75 08                	jne    0x40e7b9
40e7b1:	6a 57                	push   $0x57
40e7b3:	ff 15 74 20 41 00    	call   *0x412074
40e7b9:	e8 36 b0 ff ff       	call   0x4097f4
40e7be:	8b 8c 24 c4 00 00 00 	mov    0xc4(%esp),%ecx
40e7c5:	5f                   	pop    %edi
40e7c6:	5e                   	pop    %esi
40e7c7:	5b                   	pop    %ebx
40e7c8:	33 cc                	xor    %esp,%ecx
40e7ca:	e8 01 05 00 00       	call   0x40ecd0
40e7cf:	8b e5                	mov    %ebp,%esp
40e7d1:	5d                   	pop    %ebp
40e7d2:	c2 0c 00             	ret    $0xc
40e7d5:	8b ff                	mov    %edi,%edi
40e7d7:	55                   	push   %ebp
40e7d8:	8b ec                	mov    %esp,%ebp
40e7da:	83 e4 f8             	and    $0xfffffff8,%esp
40e7dd:	83 ec 1c             	sub    $0x1c,%esp
40e7e0:	53                   	push   %ebx
40e7e1:	56                   	push   %esi
40e7e2:	57                   	push   %edi
40e7e3:	8b f9                	mov    %ecx,%edi
40e7e5:	85 ff                	test   %edi,%edi
40e7e7:	0f 84 c0 01 00 00    	je     0x40e9ad
40e7ed:	8b 75 08             	mov    0x8(%ebp),%esi
40e7f0:	85 f6                	test   %esi,%esi
40e7f2:	0f 84 b5 01 00 00    	je     0x40e9ad
40e7f8:	6a 01                	push   $0x1
40e7fa:	68 00 10 00 00       	push   $0x1000
40e7ff:	6a 16                	push   $0x16
40e801:	33 d2                	xor    %edx,%edx
40e803:	59                   	pop    %ecx
40e804:	e8 9a ad ff ff       	call   0x4095a3
40e809:	8b d8                	mov    %eax,%ebx
40e80b:	85 db                	test   %ebx,%ebx
40e80d:	75 15                	jne    0x40e824
40e80f:	ff 15 48 20 41 00    	call   *0x412048
40e815:	85 c0                	test   %eax,%eax
40e817:	0f 85 a2 01 00 00    	jne    0x40e9bf
40e81d:	6a 08                	push   $0x8
40e81f:	e9 95 01 00 00       	jmp    0x40e9b9
40e824:	f7 45 0c 00 10 00 00 	testl  $0x1000,0xc(%ebp)
40e82b:	75 6e                	jne    0x40e89b
40e82d:	6a 0d                	push   $0xd
40e82f:	58                   	pop    %eax
40e830:	33 c9                	xor    %ecx,%ecx
40e832:	89 44 24 14          	mov    %eax,0x14(%esp)
40e836:	f7 86 04 02 00 00 00 	testl  $0x1000,0x204(%esi)
40e83d:	10 00 00
40e840:	75 3b                	jne    0x40e87d
40e842:	83 f9 01             	cmp    $0x1,%ecx
40e845:	75 0c                	jne    0x40e853
40e847:	ba 44 1a 40 00       	mov    $0x401a44,%edx
40e84c:	8b cf                	mov    %edi,%ecx
40e84e:	e8 9a bc ff ff       	call   0x40a4ed
40e853:	56                   	push   %esi
40e854:	68 48 1a 40 00       	push   $0x401a48
40e859:	8b cb                	mov    %ebx,%ecx
40e85b:	e8 9a c5 ff ff       	call   0x40adfa
40e860:	d1 e8                	shr    $1,%eax
40e862:	48                   	dec    %eax
40e863:	50                   	push   %eax
40e864:	53                   	push   %ebx
40e865:	e8 ba ab ff ff       	call   0x409424
40e86a:	83 c4 10             	add    $0x10,%esp
40e86d:	8b d3                	mov    %ebx,%edx
40e86f:	8b cf                	mov    %edi,%ecx
40e871:	e8 77 bc ff ff       	call   0x40a4ed
40e876:	8b 44 24 14          	mov    0x14(%esp),%eax
40e87a:	33 c9                	xor    %ecx,%ecx
40e87c:	41                   	inc    %ecx
40e87d:	81 c6 94 02 00 00    	add    $0x294,%esi
40e883:	83 e8 01             	sub    $0x1,%eax
40e886:	89 44 24 14          	mov    %eax,0x14(%esp)
40e88a:	75 aa                	jne    0x40e836
40e88c:	ba 7c 14 40 00       	mov    $0x40147c,%edx
40e891:	8b cf                	mov    %edi,%ecx
40e893:	e8 55 bc ff ff       	call   0x40a4ed
40e898:	8b 75 08             	mov    0x8(%ebp),%esi
40e89b:	8b 4d 10             	mov    0x10(%ebp),%ecx
40e89e:	e8 15 a5 ff ff       	call   0x408db8
40e8a3:	8b c8                	mov    %eax,%ecx
40e8a5:	33 c0                	xor    %eax,%eax
40e8a7:	89 4c 24 24          	mov    %ecx,0x24(%esp)
40e8ab:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40e8af:	85 c9                	test   %ecx,%ecx
40e8b1:	0f 84 0d 01 00 00    	je     0x40e9c4
40e8b7:	8b 4d 10             	mov    0x10(%ebp),%ecx
40e8ba:	8b d0                	mov    %eax,%edx
40e8bc:	e8 2a a5 ff ff       	call   0x408deb
40e8c1:	89 44 24 20          	mov    %eax,0x20(%esp)
40e8c5:	85 c0                	test   %eax,%eax
40e8c7:	0f 84 c8 00 00 00    	je     0x40e995
40e8cd:	83 64 24 18 00       	andl   $0x0,0x18(%esp)
40e8d2:	83 64 24 14 00       	andl   $0x0,0x14(%esp)
40e8d7:	81 c6 00 02 00 00    	add    $0x200,%esi
40e8dd:	89 74 24 10          	mov    %esi,0x10(%esp)
40e8e1:	8b cb                	mov    %ebx,%ecx
40e8e3:	e8 12 c5 ff ff       	call   0x40adfa
40e8e8:	d1 e8                	shr    $1,%eax
40e8ea:	ba 30 12 40 00       	mov    $0x401230,%edx
40e8ef:	50                   	push   %eax
40e8f0:	8b cb                	mov    %ebx,%ecx
40e8f2:	e8 ff ba ff ff       	call   0x40a3f6
40e8f7:	f7 46 04 00 10 00 00 	testl  $0x1000,0x4(%esi)
40e8fe:	75 6d                	jne    0x40e96d
40e900:	8b 36                	mov    (%esi),%esi
40e902:	8b cb                	mov    %ebx,%ecx
40e904:	e8 f1 c4 ff ff       	call   0x40adfa
40e909:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40e90d:	8b 54 24 14          	mov    0x14(%esp),%edx
40e911:	d1 e8                	shr    $1,%eax
40e913:	68 44 1a 40 00       	push   $0x401a44
40e918:	ff 74 24 24          	push   0x24(%esp)
40e91c:	89 01                	mov    %eax,(%ecx)
40e91e:	81 c1 00 fe ff ff    	add    $0xfffffe00,%ecx
40e924:	e8 e0 f2 ff ff       	call   0x40dc09
40e929:	8b 44 24 10          	mov    0x10(%esp),%eax
40e92d:	89 30                	mov    %esi,(%eax)
40e92f:	33 f6                	xor    %esi,%esi
40e931:	46                   	inc    %esi
40e932:	39 74 24 18          	cmp    %esi,0x18(%esp)
40e936:	75 0c                	jne    0x40e944
40e938:	ba 44 1a 40 00       	mov    $0x401a44,%edx
40e93d:	8b cf                	mov    %edi,%ecx
40e93f:	e8 a9 bb ff ff       	call   0x40a4ed
40e944:	ba 54 1a 40 00       	mov    $0x401a54,%edx
40e949:	8b cf                	mov    %edi,%ecx
40e94b:	e8 9d bb ff ff       	call   0x40a4ed
40e950:	8b d3                	mov    %ebx,%edx
40e952:	8b cf                	mov    %edi,%ecx
40e954:	e8 94 bb ff ff       	call   0x40a4ed
40e959:	ba 54 1a 40 00       	mov    $0x401a54,%edx
40e95e:	8b cf                	mov    %edi,%ecx
40e960:	e8 88 bb ff ff       	call   0x40a4ed
40e965:	89 74 24 18          	mov    %esi,0x18(%esp)
40e969:	8b 74 24 10          	mov    0x10(%esp),%esi
40e96d:	8b 44 24 14          	mov    0x14(%esp),%eax
40e971:	81 c6 94 02 00 00    	add    $0x294,%esi
40e977:	40                   	inc    %eax
40e978:	89 74 24 10          	mov    %esi,0x10(%esp)
40e97c:	89 44 24 14          	mov    %eax,0x14(%esp)
40e980:	83 f8 0d             	cmp    $0xd,%eax
40e983:	0f 82 58 ff ff ff    	jb     0x40e8e1
40e989:	ba 7c 14 40 00       	mov    $0x40147c,%edx
40e98e:	8b cf                	mov    %edi,%ecx
40e990:	e8 58 bb ff ff       	call   0x40a4ed
40e995:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40e999:	8b 75 08             	mov    0x8(%ebp),%esi
40e99c:	40                   	inc    %eax
40e99d:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40e9a1:	3b 44 24 24          	cmp    0x24(%esp),%eax
40e9a5:	0f 82 0c ff ff ff    	jb     0x40e8b7
40e9ab:	eb 17                	jmp    0x40e9c4
40e9ad:	ff 15 48 20 41 00    	call   *0x412048
40e9b3:	85 c0                	test   %eax,%eax
40e9b5:	75 08                	jne    0x40e9bf
40e9b7:	6a 57                	push   $0x57
40e9b9:	ff 15 74 20 41 00    	call   *0x412074
40e9bf:	e8 30 ae ff ff       	call   0x4097f4
40e9c4:	5f                   	pop    %edi
40e9c5:	5e                   	pop    %esi
40e9c6:	5b                   	pop    %ebx
40e9c7:	8b e5                	mov    %ebp,%esp
40e9c9:	5d                   	pop    %ebp
40e9ca:	c2 0c 00             	ret    $0xc
40e9cd:	e9 30 03 00 00       	jmp    0x40ed02
40e9d2:	8b ff                	mov    %edi,%edi
40e9d4:	55                   	push   %ebp
40e9d5:	8b ec                	mov    %esp,%ebp
40e9d7:	56                   	push   %esi
40e9d8:	eb 0d                	jmp    0x40e9e7
40e9da:	ff 75 08             	push   0x8(%ebp)
40e9dd:	e8 2c 03 00 00       	call   0x40ed0e
40e9e2:	59                   	pop    %ecx
40e9e3:	85 c0                	test   %eax,%eax
40e9e5:	74 0f                	je     0x40e9f6
40e9e7:	ff 75 08             	push   0x8(%ebp)
40e9ea:	e8 19 03 00 00       	call   0x40ed08
40e9ef:	8b f0                	mov    %eax,%esi
40e9f1:	59                   	pop    %ecx
40e9f2:	85 f6                	test   %esi,%esi
40e9f4:	74 e4                	je     0x40e9da
40e9f6:	8b c6                	mov    %esi,%eax
40e9f8:	5e                   	pop    %esi
40e9f9:	5d                   	pop    %ebp
40e9fa:	c3                   	ret
40e9fb:	cc                   	int3
40e9fc:	cc                   	int3
40e9fd:	cc                   	int3
40e9fe:	cc                   	int3
40e9ff:	cc                   	int3
40ea00:	e8 48 02 00 00       	call   0x40ec4d
40ea05:	6a 01                	push   $0x1
40ea07:	a3 68 10 41 00       	mov    %eax,0x411068
40ea0c:	e8 d7 05 00 00       	call   0x40efe8
40ea11:	50                   	push   %eax
40ea12:	ff 15 9c 22 41 00    	call   *0x41229c
40ea18:	83 0d bc 14 41 00 ff 	orl    $0xffffffff,0x4114bc
40ea1f:	83 0d c0 14 41 00 ff 	orl    $0xffffffff,0x4114c0
40ea26:	59                   	pop    %ecx
40ea27:	59                   	pop    %ecx
40ea28:	ff 15 8c 22 41 00    	call   *0x41228c
40ea2e:	8b 0d 98 13 41 00    	mov    0x411398,%ecx
40ea34:	89 08                	mov    %ecx,(%eax)
40ea36:	ff 15 a8 22 41 00    	call   *0x4122a8
40ea3c:	8b 0d 8c 13 41 00    	mov    0x41138c,%ecx
40ea42:	89 08                	mov    %ecx,(%eax)
40ea44:	e8 e7 05 00 00       	call   0x40f030
40ea49:	83 3d 40 10 41 00 00 	cmpl   $0x0,0x411040
40ea50:	75 0c                	jne    0x40ea5e
40ea52:	68 30 f0 40 00       	push   $0x40f030
40ea57:	ff 15 88 22 41 00    	call   *0x412288
40ea5d:	59                   	pop    %ecx
40ea5e:	e8 ba 07 00 00       	call   0x40f21d
40ea63:	33 c0                	xor    %eax,%eax
40ea65:	c3                   	ret
40ea66:	cc                   	int3
40ea67:	cc                   	int3
40ea68:	cc                   	int3
40ea69:	cc                   	int3
40ea6a:	cc                   	int3
40ea6b:	cc                   	int3
40ea6c:	cc                   	int3
40ea6d:	cc                   	int3
40ea6e:	cc                   	int3
40ea6f:	cc                   	int3
40ea70:	a1 94 13 41 00       	mov    0x411394,%eax
40ea75:	68 6c 10 41 00       	push   $0x41106c
40ea7a:	ff 35 90 13 41 00    	push   0x411390
40ea80:	a3 6c 10 41 00       	mov    %eax,0x41106c
40ea85:	68 60 10 41 00       	push   $0x411060
40ea8a:	68 5c 10 41 00       	push   $0x41105c
40ea8f:	68 58 10 41 00       	push   $0x411058
40ea94:	ff 15 a0 22 41 00    	call   *0x4122a0
40ea9a:	83 c4 14             	add    $0x14,%esp
40ea9d:	a3 64 10 41 00       	mov    %eax,0x411064
40eaa2:	c3                   	ret
40eaa3:	6a 0c                	push   $0xc
40eaa5:	68 00 0e 41 00       	push   $0x410e00
40eaaa:	e8 89 07 00 00       	call   0x40f238
40eaaf:	33 db                	xor    %ebx,%ebx
40eab1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40eab4:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
40eaba:	8b 70 04             	mov    0x4(%eax),%esi
40eabd:	8b fb                	mov    %ebx,%edi
40eabf:	ba c4 14 41 00       	mov    $0x4114c4,%edx
40eac4:	8b ce                	mov    %esi,%ecx
40eac6:	33 c0                	xor    %eax,%eax
40eac8:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
40eacc:	85 c0                	test   %eax,%eax
40eace:	74 18                	je     0x40eae8
40ead0:	3b c6                	cmp    %esi,%eax
40ead2:	75 07                	jne    0x40eadb
40ead4:	33 f6                	xor    %esi,%esi
40ead6:	46                   	inc    %esi
40ead7:	8b fe                	mov    %esi,%edi
40ead9:	eb 10                	jmp    0x40eaeb
40eadb:	68 e8 03 00 00       	push   $0x3e8
40eae0:	ff 15 f0 20 41 00    	call   *0x4120f0
40eae6:	eb d7                	jmp    0x40eabf
40eae8:	33 f6                	xor    %esi,%esi
40eaea:	46                   	inc    %esi
40eaeb:	39 35 c8 14 41 00    	cmp    %esi,0x4114c8
40eaf1:	75 0a                	jne    0x40eafd
40eaf3:	6a 1f                	push   $0x1f
40eaf5:	e8 24 05 00 00       	call   0x40f01e
40eafa:	59                   	pop    %ecx
40eafb:	eb 3a                	jmp    0x40eb37
40eafd:	39 1d c8 14 41 00    	cmp    %ebx,0x4114c8
40eb03:	75 2c                	jne    0x40eb31
40eb05:	89 35 c8 14 41 00    	mov    %esi,0x4114c8
40eb0b:	68 d4 10 40 00       	push   $0x4010d4
40eb10:	68 c8 10 40 00       	push   $0x4010c8
40eb15:	e8 02 01 00 00       	call   0x40ec1c
40eb1a:	59                   	pop    %ecx
40eb1b:	59                   	pop    %ecx
40eb1c:	85 c0                	test   %eax,%eax
40eb1e:	74 17                	je     0x40eb37
40eb20:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40eb27:	b8 ff 00 00 00       	mov    $0xff,%eax
40eb2c:	e9 db 00 00 00       	jmp    0x40ec0c
40eb31:	89 35 54 10 41 00    	mov    %esi,0x411054
40eb37:	39 35 c8 14 41 00    	cmp    %esi,0x4114c8
40eb3d:	75 1b                	jne    0x40eb5a