40f923:	ff 56 28             	call   *0x28(%esi)
40f926:	85 c0                	test   %eax,%eax
40f928:	79 0d                	jns    0x40f937
40f92a:	50                   	push   %eax
40f92b:	68 48 40 40 00       	push   $0x404048
40f930:	68 96 03 00 00       	push   $0x396
40f935:	eb 28                	jmp    0x40f95f
40f937:	8b 45 f0             	mov    -0x10(%ebp),%eax
40f93a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40f93d:	53                   	push   %ebx
40f93e:	51                   	push   %ecx
40f93f:	50                   	push   %eax
40f940:	8b 30                	mov    (%eax),%esi
40f942:	8b 4e 30             	mov    0x30(%esi),%ecx
40f945:	ff 15 28 63 41 00    	call   *0x416328
40f94b:	ff 56 30             	call   *0x30(%esi)
40f94e:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40f952:	75 16                	jne    0x40f96a
40f954:	50                   	push   %eax
40f955:	68 48 40 40 00       	push   $0x404048
40f95a:	68 9f 03 00 00       	push   $0x39f
40f95f:	68 60 3f 40 00       	push   $0x403f60
40f964:	51                   	push   %ecx
40f965:	e8 68 16 00 00       	call   0x410fd2
40f96a:	83 3f 00             	cmpl   $0x0,(%edi)
40f96d:	74 0a                	je     0x40f979
40f96f:	ff 37                	push   (%edi)
40f971:	ff 15 b8 61 41 00    	call   *0x4161b8
40f977:	89 1f                	mov    %ebx,(%edi)
40f979:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
40f97d:	74 0c                	je     0x40f98b
40f97f:	ff 77 04             	push   0x4(%edi)
40f982:	ff 15 b8 61 41 00    	call   *0x4161b8
40f988:	89 5f 04             	mov    %ebx,0x4(%edi)
40f98b:	57                   	push   %edi
40f98c:	53                   	push   %ebx
40f98d:	ff 15 e0 60 41 00    	call   *0x4160e0
40f993:	50                   	push   %eax
40f994:	ff 15 e4 60 41 00    	call   *0x4160e4
40f99a:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40f99d:	e8 4d 70 ff ff       	call   0x4069ef
40f9a2:	33 c0                	xor    %eax,%eax
40f9a4:	e8 83 2b 00 00       	call   0x41252c
40f9a9:	c2 04 00             	ret    $0x4
40f9ac:	8b ff                	mov    %edi,%edi
40f9ae:	55                   	push   %ebp
40f9af:	8b ec                	mov    %esp,%ebp
40f9b1:	6a ff                	push   $0xffffffff
40f9b3:	68 dc 30 41 00       	push   $0x4130dc
40f9b8:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40f9be:	50                   	push   %eax
40f9bf:	56                   	push   %esi
40f9c0:	57                   	push   %edi
40f9c1:	a1 f4 51 41 00       	mov    0x4151f4,%eax
40f9c6:	33 c5                	xor    %ebp,%eax
40f9c8:	50                   	push   %eax
40f9c9:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f9cc:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40f9d2:	8b f9                	mov    %ecx,%edi
40f9d4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f9d8:	8b 4f 04             	mov    0x4(%edi),%ecx
40f9db:	c7 07 e8 19 40 00    	movl   $0x4019e8,(%edi)
40f9e1:	85 c9                	test   %ecx,%ecx
40f9e3:	74 1f                	je     0x40fa04
40f9e5:	8b 01                	mov    (%ecx),%eax
40f9e7:	51                   	push   %ecx
40f9e8:	8b 70 08             	mov    0x8(%eax),%esi
40f9eb:	8b ce                	mov    %esi,%ecx
40f9ed:	ff 15 28 63 41 00    	call   *0x416328
40f9f3:	ff d6                	call   *%esi
40f9f5:	83 67 04 00          	andl   $0x0,0x4(%edi)
40f9f9:	33 c9                	xor    %ecx,%ecx
40f9fb:	85 c9                	test   %ecx,%ecx
40f9fd:	74 05                	je     0x40fa04
40f9ff:	e8 cb df ff ff       	call   0x40d9cf
40fa04:	ff 77 24             	push   0x24(%edi)
40fa07:	ff 15 b8 61 41 00    	call   *0x4161b8
40fa0d:	57                   	push   %edi
40fa0e:	ff 15 d0 62 41 00    	call   *0x4162d0
40fa14:	59                   	pop    %ecx
40fa15:	8b c7                	mov    %edi,%eax
40fa17:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40fa1a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40fa21:	59                   	pop    %ecx
40fa22:	5f                   	pop    %edi
40fa23:	5e                   	pop    %esi
40fa24:	c9                   	leave
40fa25:	c2 04 00             	ret    $0x4
40fa28:	cc                   	int3
40fa29:	cc                   	int3
40fa2a:	cc                   	int3
40fa2b:	cc                   	int3
40fa2c:	cc                   	int3
40fa2d:	cc                   	int3
40fa2e:	cc                   	int3
40fa2f:	cc                   	int3
40fa30:	8b ff                	mov    %edi,%edi
40fa32:	55                   	push   %ebp
40fa33:	8b ec                	mov    %esp,%ebp
40fa35:	8b 4d 08             	mov    0x8(%ebp),%ecx
40fa38:	83 c8 ff             	or     $0xffffffff,%eax
40fa3b:	8d 51 08             	lea    0x8(%ecx),%edx
40fa3e:	f0 0f c1 02          	lock xadd %eax,(%edx)
40fa42:	75 0e                	jne    0x40fa52
40fa44:	85 c9                	test   %ecx,%ecx
40fa46:	74 06                	je     0x40fa4e
40fa48:	51                   	push   %ecx
40fa49:	e8 5e ff ff ff       	call   0x40f9ac
40fa4e:	33 c0                	xor    %eax,%eax
40fa50:	eb 02                	jmp    0x40fa54
40fa52:	8b 02                	mov    (%edx),%eax
40fa54:	5d                   	pop    %ebp
40fa55:	c2 04 00             	ret    $0x4
40fa58:	8b ff                	mov    %edi,%edi
40fa5a:	55                   	push   %ebp
40fa5b:	8b ec                	mov    %esp,%ebp
40fa5d:	53                   	push   %ebx
40fa5e:	8b d9                	mov    %ecx,%ebx
40fa60:	56                   	push   %esi
40fa61:	57                   	push   %edi
40fa62:	33 f6                	xor    %esi,%esi
40fa64:	8d 7b 24             	lea    0x24(%ebx),%edi
40fa67:	39 37                	cmp    %esi,(%edi)
40fa69:	75 37                	jne    0x40faa2
40fa6b:	68 00 00 00 f0       	push   $0xf0000000
40fa70:	6a 01                	push   $0x1
40fa72:	68 90 40 40 00       	push   $0x404090
40fa77:	56                   	push   %esi
40fa78:	57                   	push   %edi
40fa79:	ff 15 7c 60 41 00    	call   *0x41607c
40fa7f:	85 c0                	test   %eax,%eax
40fa81:	75 1f                	jne    0x40faa2
40fa83:	ff 15 68 61 41 00    	call   *0x416168
40fa89:	8b f0                	mov    %eax,%esi
40fa8b:	85 f6                	test   %esi,%esi
40fa8d:	7e 09                	jle    0x40fa98
40fa8f:	0f b7 f6             	movzwl %si,%esi
40fa92:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40fa98:	56                   	push   %esi
40fa99:	68 e8 40 40 00       	push   $0x4040e8
40fa9e:	6a 4a                	push   $0x4a
40faa0:	eb 74                	jmp    0x40fb16
40faa2:	39 75 08             	cmp    %esi,0x8(%ebp)
40faa5:	74 7a                	je     0x40fb21
40faa7:	83 c3 28             	add    $0x28,%ebx
40faaa:	39 33                	cmp    %esi,(%ebx)
40faac:	75 73                	jne    0x40fb21
40faae:	53                   	push   %ebx
40faaf:	6a 01                	push   $0x1
40fab1:	ff 37                	push   (%edi)
40fab3:	ff 15 80 60 41 00    	call   *0x416080
40fab9:	85 c0                	test   %eax,%eax
40fabb:	75 64                	jne    0x40fb21
40fabd:	ff 15 68 61 41 00    	call   *0x416168
40fac3:	3d 0d 00 09 80       	cmp    $0x8009000d,%eax
40fac8:	75 2f                	jne    0x40faf9
40faca:	53                   	push   %ebx
40facb:	56                   	push   %esi
40facc:	6a 01                	push   $0x1
40face:	ff 37                	push   (%edi)
40fad0:	ff 15 84 60 41 00    	call   *0x416084
40fad6:	85 c0                	test   %eax,%eax
40fad8:	75 47                	jne    0x40fb21
40fada:	ff 15 68 61 41 00    	call   *0x416168
40fae0:	8b f0                	mov    %eax,%esi
40fae2:	85 f6                	test   %esi,%esi
40fae4:	7e 09                	jle    0x40faef
40fae6:	0f b7 f6             	movzwl %si,%esi
40fae9:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40faef:	56                   	push   %esi
40faf0:	68 e8 40 40 00       	push   $0x4040e8
40faf5:	6a 68                	push   $0x68
40faf7:	eb 1d                	jmp    0x40fb16
40faf9:	ff 15 68 61 41 00    	call   *0x416168
40faff:	8b f0                	mov    %eax,%esi
40fb01:	85 f6                	test   %esi,%esi
40fb03:	7e 09                	jle    0x40fb0e
40fb05:	0f b7 f6             	movzwl %si,%esi
40fb08:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40fb0e:	56                   	push   %esi
40fb0f:	68 e8 40 40 00       	push   $0x4040e8
40fb14:	6a 70                	push   $0x70
40fb16:	68 20 41 40 00       	push   $0x404120
40fb1b:	51                   	push   %ecx
40fb1c:	e8 b1 14 00 00       	call   0x410fd2
40fb21:	5f                   	pop    %edi
40fb22:	8b c6                	mov    %esi,%eax
40fb24:	5e                   	pop    %esi
40fb25:	5b                   	pop    %ebx
40fb26:	5d                   	pop    %ebp
40fb27:	c2 04 00             	ret    $0x4
40fb2a:	68 18 02 00 00       	push   $0x218
40fb2f:	b8 0d 31 41 00       	mov    $0x41310d,%eax
40fb34:	e8 58 2a 00 00       	call   0x412591
40fb39:	8b f9                	mov    %ecx,%edi
40fb3b:	8b 5d 08             	mov    0x8(%ebp),%ebx
40fb3e:	33 c0                	xor    %eax,%eax
40fb40:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40fb46:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fb49:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
40fb4f:	68 08 02 00 00       	push   $0x208
40fb54:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40fb58:	50                   	push   %eax
40fb59:	89 85 dc fd ff ff    	mov    %eax,-0x224(%ebp)
40fb5f:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40fb65:	50                   	push   %eax
40fb66:	e8 86 2f 00 00       	call   0x412af1
40fb6b:	83 c4 0c             	add    $0xc,%esp
40fb6e:	8b cf                	mov    %edi,%ecx
40fb70:	6a 01                	push   $0x1
40fb72:	e8 e1 fe ff ff       	call   0x40fa58
40fb77:	8b f0                	mov    %eax,%esi
40fb79:	85 f6                	test   %esi,%esi
40fb7b:	79 10                	jns    0x40fb8d
40fb7d:	56                   	push   %esi
40fb7e:	68 80 41 40 00       	push   $0x404180
40fb83:	68 9e 00 00 00       	push   $0x9e
40fb88:	e9 6e 01 00 00       	jmp    0x40fcfb
40fb8d:	8d 85 dc fd ff ff    	lea    -0x224(%ebp),%eax
40fb93:	50                   	push   %eax
40fb94:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
40fb9a:	50                   	push   %eax
40fb9b:	6a 06                	push   $0x6
40fb9d:	33 c0                	xor    %eax,%eax
40fb9f:	50                   	push   %eax
40fba0:	ff 77 28             	push   0x28(%edi)
40fba3:	e8 88 01 00 00       	call   0x40fd30
40fba8:	8b f0                	mov    %eax,%esi
40fbaa:	85 f6                	test   %esi,%esi
40fbac:	79 10                	jns    0x40fbbe
40fbae:	56                   	push   %esi
40fbaf:	68 80 41 40 00       	push   $0x404180
40fbb4:	68 ab 00 00 00       	push   $0xab
40fbb9:	e9 3d 01 00 00       	jmp    0x40fcfb
40fbbe:	8b cb                	mov    %ebx,%ecx
40fbc0:	33 f6                	xor    %esi,%esi
40fbc2:	8d 51 02             	lea    0x2(%ecx),%edx
40fbc5:	66 8b 01             	mov    (%ecx),%ax
40fbc8:	83 c1 02             	add    $0x2,%ecx
40fbcb:	66 3b c6             	cmp    %si,%ax
40fbce:	75 f5                	jne    0x40fbc5
40fbd0:	2b ca                	sub    %edx,%ecx
40fbd2:	d1 f9                	sar    $1,%ecx
40fbd4:	8d 41 03             	lea    0x3(%ecx),%eax
40fbd7:	50                   	push   %eax
40fbd8:	68 d8 41 40 00       	push   $0x4041d8
40fbdd:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40fbe3:	68 04 01 00 00       	push   $0x104
40fbe8:	50                   	push   %eax
40fbe9:	e8 e4 b4 ff ff       	call   0x40b0d2
40fbee:	8b f0                	mov    %eax,%esi
40fbf0:	83 c4 10             	add    $0x10,%esp
40fbf3:	85 f6                	test   %esi,%esi
40fbf5:	79 10                	jns    0x40fc07
40fbf7:	56                   	push   %esi
40fbf8:	68 80 41 40 00       	push   $0x404180
40fbfd:	68 bb 00 00 00       	push   $0xbb
40fc02:	e9 f4 00 00 00       	jmp    0x40fcfb
40fc07:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40fc0d:	50                   	push   %eax
40fc0e:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
40fc14:	e8 87 9c ff ff       	call   0x4098a0
40fc19:	53                   	push   %ebx
40fc1a:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
40fc20:	e8 5c f0 ff ff       	call   0x40ec81
40fc25:	8b 85 dc fd ff ff    	mov    -0x224(%ebp),%eax
40fc2b:	85 c0                	test   %eax,%eax
40fc2d:	0f 84 88 00 00 00    	je     0x40fcbb
40fc33:	83 c0 03             	add    $0x3,%eax
40fc36:	50                   	push   %eax
40fc37:	68 e8 41 40 00       	push   $0x4041e8
40fc3c:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40fc42:	68 04 01 00 00       	push   $0x104
40fc47:	50                   	push   %eax
40fc48:	e8 85 b4 ff ff       	call   0x40b0d2
40fc4d:	8b f0                	mov    %eax,%esi
40fc4f:	83 c4 10             	add    $0x10,%esp
40fc52:	85 f6                	test   %esi,%esi
40fc54:	79 10                	jns    0x40fc66
40fc56:	56                   	push   %esi
40fc57:	68 80 41 40 00       	push   $0x404180
40fc5c:	68 c9 00 00 00       	push   $0xc9
40fc61:	e9 95 00 00 00       	jmp    0x40fcfb
40fc66:	8d 8d e8 fd ff ff    	lea    -0x218(%ebp),%ecx
40fc6c:	33 db                	xor    %ebx,%ebx
40fc6e:	8d 51 02             	lea    0x2(%ecx),%edx
40fc71:	66 8b 01             	mov    (%ecx),%ax
40fc74:	83 c1 02             	add    $0x2,%ecx
40fc77:	66 3b c3             	cmp    %bx,%ax
40fc7a:	75 f5                	jne    0x40fc71
40fc7c:	2b ca                	sub    %edx,%ecx
40fc7e:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40fc84:	d1 f9                	sar    $1,%ecx
40fc86:	51                   	push   %ecx
40fc87:	50                   	push   %eax
40fc88:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
40fc8e:	e8 84 0f 00 00       	call   0x410c17
40fc93:	8b f0                	mov    %eax,%esi
40fc95:	85 f6                	test   %esi,%esi
40fc97:	79 0d                	jns    0x40fca6
40fc99:	56                   	push   %esi
40fc9a:	68 80 41 40 00       	push   $0x404180
40fc9f:	68 cd 00 00 00       	push   $0xcd
40fca4:	eb 55                	jmp    0x40fcfb
40fca6:	ff b5 e0 fd ff ff    	push   -0x220(%ebp)
40fcac:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
40fcb2:	e8 ca ef ff ff       	call   0x40ec81
40fcb7:	85 c0                	test   %eax,%eax
40fcb9:	78 6d                	js     0x40fd28
40fcbb:	8b 4f 04             	mov    0x4(%edi),%ecx
40fcbe:	85 c9                	test   %ecx,%ecx
40fcc0:	74 29                	je     0x40fceb
40fcc2:	8b 01                	mov    (%ecx),%eax
40fcc4:	ff b5 e4 fd ff ff    	push   -0x21c(%ebp)
40fcca:	51                   	push   %ecx
40fccb:	8b 70 1c             	mov    0x1c(%eax),%esi
40fcce:	8b ce                	mov    %esi,%ecx
40fcd0:	ff 15 28 63 41 00    	call   *0x416328
40fcd6:	ff d6                	call   *%esi
40fcd8:	8b f0                	mov    %eax,%esi
40fcda:	85 f6                	test   %esi,%esi
40fcdc:	79 28                	jns    0x40fd06
40fcde:	56                   	push   %esi
40fcdf:	68 80 41 40 00       	push   $0x404180
40fce4:	68 d9 00 00 00       	push   $0xd9
40fce9:	eb 10                	jmp    0x40fcfb
40fceb:	be 03 40 00 80       	mov    $0x80004003,%esi
40fcf0:	56                   	push   %esi
40fcf1:	68 80 41 40 00       	push   $0x404180
40fcf6:	68 de 00 00 00       	push   $0xde
40fcfb:	68 20 41 40 00       	push   $0x404120
40fd00:	51                   	push   %ecx
40fd01:	e8 cc 12 00 00       	call   0x410fd2
40fd06:	ff b5 e4 fd ff ff    	push   -0x21c(%ebp)
40fd0c:	ff 15 b8 61 41 00    	call   *0x4161b8
40fd12:	ff b5 e0 fd ff ff    	push   -0x220(%ebp)
40fd18:	ff 15 b8 61 41 00    	call   *0x4161b8
40fd1e:	8b c6                	mov    %esi,%eax
40fd20:	e8 1b 28 00 00       	call   0x412540
40fd25:	c2 04 00             	ret    $0x4
40fd28:	8b c8                	mov    %eax,%ecx
40fd2a:	e8 c0 4e ff ff       	call   0x404bef
40fd2f:	cc                   	int3
40fd30:	8b ff                	mov    %edi,%edi
40fd32:	55                   	push   %ebp
40fd33:	8b ec                	mov    %esp,%ebp
40fd35:	51                   	push   %ecx
40fd36:	56                   	push   %esi
40fd37:	33 f6                	xor    %esi,%esi
40fd39:	57                   	push   %edi