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
40eb3f:	68 c4 10 40 00       	push   $0x4010c4
40eb44:	68 bc 10 40 00       	push   $0x4010bc
40eb49:	e8 e2 06 00 00       	call   0x40f230
40eb4e:	59                   	pop    %ecx
40eb4f:	59                   	pop    %ecx
40eb50:	c7 05 c8 14 41 00 02 	movl   $0x2,0x4114c8
40eb57:	00 00 00
40eb5a:	85 ff                	test   %edi,%edi
40eb5c:	75 09                	jne    0x40eb67
40eb5e:	33 c0                	xor    %eax,%eax
40eb60:	b9 c4 14 41 00       	mov    $0x4114c4,%ecx
40eb65:	87 01                	xchg   %eax,(%ecx)
40eb67:	83 3d cc 14 41 00 00 	cmpl   $0x0,0x4114cc
40eb6e:	74 23                	je     0x40eb93
40eb70:	68 cc 14 41 00       	push   $0x4114cc
40eb75:	e8 16 05 00 00       	call   0x40f090
40eb7a:	59                   	pop    %ecx
40eb7b:	85 c0                	test   %eax,%eax
40eb7d:	74 14                	je     0x40eb93
40eb7f:	53                   	push   %ebx
40eb80:	6a 02                	push   $0x2
40eb82:	53                   	push   %ebx
40eb83:	8b 35 cc 14 41 00    	mov    0x4114cc,%esi
40eb89:	8b ce                	mov    %esi,%ecx
40eb8b:	ff 15 20 23 41 00    	call   *0x412320
40eb91:	ff d6                	call   *%esi
40eb93:	ff 35 60 10 41 00    	push   0x411060
40eb99:	ff 35 5c 10 41 00    	push   0x41105c
40eb9f:	ff 35 58 10 41 00    	push   0x411058
40eba5:	e8 7a 6e ff ff       	call   0x405a24
40ebaa:	83 c4 0c             	add    $0xc,%esp
40ebad:	a3 50 10 41 00       	mov    %eax,0x411050
40ebb2:	83 3d 68 10 41 00 00 	cmpl   $0x0,0x411068
40ebb9:	75 36                	jne    0x40ebf1
40ebbb:	50                   	push   %eax
40ebbc:	ff 15 98 22 41 00    	call   *0x412298
40ebc2:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40ebc5:	8b 01                	mov    (%ecx),%eax
40ebc7:	8b 00                	mov    (%eax),%eax
40ebc9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40ebcc:	51                   	push   %ecx
40ebcd:	50                   	push   %eax
40ebce:	e8 9b 03 00 00       	call   0x40ef6e
40ebd3:	59                   	pop    %ecx
40ebd4:	59                   	pop    %ecx
40ebd5:	c3                   	ret
40ebd6:	8b 65 e8             	mov    -0x18(%ebp),%esp
40ebd9:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40ebdc:	a3 50 10 41 00       	mov    %eax,0x411050
40ebe1:	83 3d 68 10 41 00 00 	cmpl   $0x0,0x411068
40ebe8:	75 07                	jne    0x40ebf1
40ebea:	50                   	push   %eax
40ebeb:	ff 15 94 22 41 00    	call   *0x412294
40ebf1:	83 3d 54 10 41 00 00 	cmpl   $0x0,0x411054
40ebf8:	75 0b                	jne    0x40ec05
40ebfa:	ff 15 90 22 41 00    	call   *0x412290
40ec00:	a1 50 10 41 00       	mov    0x411050,%eax
40ec05:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40ec0c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40ec0f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ec16:	59                   	pop    %ecx
40ec17:	5f                   	pop    %edi
40ec18:	5e                   	pop    %esi
40ec19:	5b                   	pop    %ebx
40ec1a:	c9                   	leave
40ec1b:	c3                   	ret
40ec1c:	8b ff                	mov    %edi,%edi
40ec1e:	55                   	push   %ebp
40ec1f:	8b ec                	mov    %esp,%ebp
40ec21:	56                   	push   %esi
40ec22:	8b 75 08             	mov    0x8(%ebp),%esi
40ec25:	33 c0                	xor    %eax,%eax
40ec27:	3b 75 0c             	cmp    0xc(%ebp),%esi
40ec2a:	73 1e                	jae    0x40ec4a
40ec2c:	57                   	push   %edi
40ec2d:	85 c0                	test   %eax,%eax
40ec2f:	75 18                	jne    0x40ec49
40ec31:	8b 3e                	mov    (%esi),%edi
40ec33:	85 ff                	test   %edi,%edi
40ec35:	74 0a                	je     0x40ec41
40ec37:	8b cf                	mov    %edi,%ecx
40ec39:	ff 15 20 23 41 00    	call   *0x412320
40ec3f:	ff d7                	call   *%edi
40ec41:	83 c6 04             	add    $0x4,%esi
40ec44:	3b 75 0c             	cmp    0xc(%ebp),%esi
40ec47:	72 e4                	jb     0x40ec2d
40ec49:	5f                   	pop    %edi
40ec4a:	5e                   	pop    %esi
40ec4b:	5d                   	pop    %ebp
40ec4c:	c3                   	ret
40ec4d:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
40ec52:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
40ec59:	75 55                	jne    0x40ecb0
40ec5b:	8b 0d 3c 00 40 00    	mov    0x40003c,%ecx
40ec61:	81 b9 00 00 40 00 50 	cmpl   $0x4550,0x400000(%ecx)
40ec68:	45 00 00
40ec6b:	75 43                	jne    0x40ecb0
40ec6d:	0f b7 81 18 00 40 00 	movzwl 0x400018(%ecx),%eax
40ec74:	ba 0b 01 00 00       	mov    $0x10b,%edx
40ec79:	66 3b c2             	cmp    %dx,%ax
40ec7c:	74 1f                	je     0x40ec9d
40ec7e:	ba 0b 02 00 00       	mov    $0x20b,%edx
40ec83:	66 3b c2             	cmp    %dx,%ax
40ec86:	75 28                	jne    0x40ecb0
40ec88:	83 b9 84 00 40 00 0e 	cmpl   $0xe,0x400084(%ecx)
40ec8f:	76 1f                	jbe    0x40ecb0
40ec91:	33 c0                	xor    %eax,%eax
40ec93:	39 81 f8 00 40 00    	cmp    %eax,0x4000f8(%ecx)
40ec99:	0f 95 c0             	setne  %al
40ec9c:	c3                   	ret
40ec9d:	83 b9 74 00 40 00 0e 	cmpl   $0xe,0x400074(%ecx)
40eca4:	76 0a                	jbe    0x40ecb0
40eca6:	33 c0                	xor    %eax,%eax
40eca8:	39 81 e8 00 40 00    	cmp    %eax,0x4000e8(%ecx)
40ecae:	eb e9                	jmp    0x40ec99
40ecb0:	33 c0                	xor    %eax,%eax
40ecb2:	c3                   	ret
40ecb3:	cc                   	int3
40ecb4:	cc                   	int3
40ecb5:	cc                   	int3
40ecb6:	cc                   	int3
40ecb7:	cc                   	int3
40ecb8:	cc                   	int3
40ecb9:	cc                   	int3
40ecba:	cc                   	int3
40ecbb:	cc                   	int3
40ecbc:	cc                   	int3
40ecbd:	cc                   	int3
40ecbe:	cc                   	int3
40ecbf:	cc                   	int3
40ecc0:	e8 c0 04 00 00       	call   0x40f185
40ecc5:	e9 d9 fd ff ff       	jmp    0x40eaa3
40ecca:	ff 25 54 22 41 00    	jmp    *0x412254
40ecd0:	3b 0d 44 10 41 00    	cmp    0x411044,%ecx
40ecd6:	75 03                	jne    0x40ecdb
40ecd8:	c2 00 00             	ret    $0x0
40ecdb:	e9 5e 00 00 00       	jmp    0x40ed3e
40ece0:	8b ff                	mov    %edi,%edi
40ece2:	55                   	push   %ebp
40ece3:	8b ec                	mov    %esp,%ebp
40ece5:	56                   	push   %esi
40ece6:	8b f1                	mov    %ecx,%esi
40ece8:	ff 15 80 22 41 00    	call   *0x412280
40ecee:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40ecf2:	74 07                	je     0x40ecfb
40ecf4:	56                   	push   %esi
40ecf5:	e8 d3 fc ff ff       	call   0x40e9cd
40ecfa:	59                   	pop    %ecx
40ecfb:	8b c6                	mov    %esi,%eax
40ecfd:	5e                   	pop    %esi
40ecfe:	5d                   	pop    %ebp
40ecff:	c2 04 00             	ret    $0x4
40ed02:	ff 25 c8 22 41 00    	jmp    *0x4122c8
40ed08:	ff 25 b4 22 41 00    	jmp    *0x4122b4
40ed0e:	ff 25 b0 22 41 00    	jmp    *0x4122b0
40ed14:	8b ff                	mov    %edi,%edi
40ed16:	55                   	push   %ebp
40ed17:	8b ec                	mov    %esp,%ebp
40ed19:	6a 00                	push   $0x0
40ed1b:	ff 15 f8 20 41 00    	call   *0x4120f8
40ed21:	ff 75 08             	push   0x8(%ebp)
40ed24:	ff 15 f4 20 41 00    	call   *0x4120f4
40ed2a:	68 09 04 00 c0       	push   $0xc0000409
40ed2f:	ff 15 38 20 41 00    	call   *0x412038
40ed35:	50                   	push   %eax
40ed36:	ff 15 64 20 41 00    	call   *0x412064
40ed3c:	5d                   	pop    %ebp
40ed3d:	c3                   	ret
40ed3e:	8b ff                	mov    %edi,%edi
40ed40:	55                   	push   %ebp
40ed41:	8b ec                	mov    %esp,%ebp
40ed43:	81 ec 24 03 00 00    	sub    $0x324,%esp
40ed49:	a3 70 11 41 00       	mov    %eax,0x411170
40ed4e:	89 0d 6c 11 41 00    	mov    %ecx,0x41116c
40ed54:	89 15 68 11 41 00    	mov    %edx,0x411168