402973:	57                   	push   %edi
402974:	ff 75 04             	push   0x4(%ebp)
402977:	55                   	push   %ebp
402978:	e8 c9 0c 00 00       	call   0x403646
40297d:	8b d0                	mov    %eax,%edx
40297f:	8d 7a 08             	lea    0x8(%edx),%edi
402982:	85 ff                	test   %edi,%edi
402984:	74 05                	je     0x40298b
402986:	6a 48                	push   $0x48
402988:	59                   	pop    %ecx
402989:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40298b:	8b 4b 14             	mov    0x14(%ebx),%ecx
40298e:	b8 c7 67 dd 00       	mov    $0xdd67c7,%eax
402993:	2b c1                	sub    %ecx,%eax
402995:	5f                   	pop    %edi
402996:	83 f8 01             	cmp    $0x1,%eax
402999:	72 1d                	jb     0x4029b8
40299b:	8d 41 01             	lea    0x1(%ecx),%eax
40299e:	89 43 14             	mov    %eax,0x14(%ebx)
4029a1:	89 55 04             	mov    %edx,0x4(%ebp)
4029a4:	8b 42 04             	mov    0x4(%edx),%eax
4029a7:	5e                   	pop    %esi
4029a8:	5d                   	pop    %ebp
4029a9:	5b                   	pop    %ebx
4029aa:	89 10                	mov    %edx,(%eax)
4029ac:	8b 44 24 0c          	mov    0xc(%esp),%eax
4029b0:	83 20 00             	andl   $0x0,(%eax)
4029b3:	33 c0                	xor    %eax,%eax
4029b5:	c2 0c 00             	ret    $0xc
4029b8:	68 28 93 43 00       	push   $0x439328
4029bd:	e8 57 6f 00 00       	call   0x409919
4029c2:	cc                   	int3
4029c3:	55                   	push   %ebp
4029c4:	8b ec                	mov    %esp,%ebp
4029c6:	8b 45 0c             	mov    0xc(%ebp),%eax
4029c9:	53                   	push   %ebx
4029ca:	57                   	push   %edi
4029cb:	ff 75 08             	push   0x8(%ebp)
4029ce:	8b f9                	mov    %ecx,%edi
4029d0:	33 db                	xor    %ebx,%ebx
4029d2:	89 47 10             	mov    %eax,0x10(%edi)
4029d5:	8d 8f 30 01 02 00    	lea    0x20130(%edi),%ecx
4029db:	8b 45 10             	mov    0x10(%ebp),%eax
4029de:	89 47 14             	mov    %eax,0x14(%edi)
4029e1:	8b 45 14             	mov    0x14(%ebp),%eax
4029e4:	89 47 18             	mov    %eax,0x18(%edi)
4029e7:	8b 45 18             	mov    0x18(%ebp),%eax
4029ea:	89 47 1c             	mov    %eax,0x1c(%edi)
4029ed:	8b 45 1c             	mov    0x1c(%ebp),%eax
4029f0:	89 47 20             	mov    %eax,0x20(%edi)
4029f3:	8b 45 20             	mov    0x20(%ebp),%eax
4029f6:	89 47 24             	mov    %eax,0x24(%edi)
4029f9:	8b 45 2c             	mov    0x2c(%ebp),%eax
4029fc:	89 1f                	mov    %ebx,(%edi)
4029fe:	89 5f 04             	mov    %ebx,0x4(%edi)
402a01:	89 5f 08             	mov    %ebx,0x8(%edi)
402a04:	89 5f 0c             	mov    %ebx,0xc(%edi)
402a07:	89 47 28             	mov    %eax,0x28(%edi)
402a0a:	c6 87 2c 01 02 00 01 	movb   $0x1,0x2012c(%edi)
402a11:	e8 54 f6 ff ff       	call   0x40206a
402a16:	83 8f 48 01 02 00 ff 	orl    $0xffffffff,0x20148(%edi)
402a1d:	8d 87 5c 01 02 00    	lea    0x2015c(%edi),%eax
402a23:	83 8f 4c 01 02 00 ff 	orl    $0xffffffff,0x2014c(%edi)
402a2a:	50                   	push   %eax
402a2b:	66 89 9f 50 01 02 00 	mov    %bx,0x20150(%edi)
402a32:	89 9f 54 01 02 00    	mov    %ebx,0x20154(%edi)
402a38:	89 9f 58 01 02 00    	mov    %ebx,0x20158(%edi)
402a3e:	ff 15 f0 10 43 00    	call   *0x4310f0
402a44:	8d 87 74 01 02 00    	lea    0x20174(%edi),%eax
402a4a:	50                   	push   %eax
402a4b:	ff 15 f0 10 43 00    	call   *0x4310f0
402a51:	8d 47 2c             	lea    0x2c(%edi),%eax
402a54:	39 5d 24             	cmp    %ebx,0x24(%ebp)
402a57:	74 13                	je     0x402a6c
402a59:	68 00 00 02 00       	push   $0x20000
402a5e:	ff 75 24             	push   0x24(%ebp)
402a61:	50                   	push   %eax
402a62:	e8 69 06 01 00       	call   0x4130d0
402a67:	83 c4 0c             	add    $0xc,%esp
402a6a:	eb 02                	jmp    0x402a6e
402a6c:	88 18                	mov    %bl,(%eax)
402a6e:	8d 87 2c 00 02 00    	lea    0x2002c(%edi),%eax
402a74:	39 5d 28             	cmp    %ebx,0x28(%ebp)
402a77:	74 13                	je     0x402a8c
402a79:	68 80 00 00 00       	push   $0x80
402a7e:	ff 75 28             	push   0x28(%ebp)
402a81:	50                   	push   %eax
402a82:	e8 09 06 01 00       	call   0x413090
402a87:	83 c4 0c             	add    $0xc,%esp
402a8a:	eb 05                	jmp    0x402a91
402a8c:	33 c9                	xor    %ecx,%ecx
402a8e:	66 89 08             	mov    %cx,(%eax)
402a91:	8b c7                	mov    %edi,%eax
402a93:	5f                   	pop    %edi
402a94:	5b                   	pop    %ebx
402a95:	5d                   	pop    %ebp
402a96:	c2 2c 00             	ret    $0x2c
402a99:	56                   	push   %esi
402a9a:	8b 35 20 10 43 00    	mov    0x431020,%esi
402aa0:	57                   	push   %edi
402aa1:	8b f9                	mov    %ecx,%edi
402aa3:	80 bf 50 01 02 00 00 	cmpb   $0x0,0x20150(%edi)
402aaa:	74 0e                	je     0x402aba
402aac:	8b 87 48 01 02 00    	mov    0x20148(%edi),%eax
402ab2:	83 f8 ff             	cmp    $0xffffffff,%eax
402ab5:	74 03                	je     0x402aba
402ab7:	50                   	push   %eax
402ab8:	ff d6                	call   *%esi
402aba:	80 bf 51 01 02 00 00 	cmpb   $0x0,0x20151(%edi)
402ac1:	74 0e                	je     0x402ad1
402ac3:	8b 87 4c 01 02 00    	mov    0x2014c(%edi),%eax
402ac9:	83 f8 ff             	cmp    $0xffffffff,%eax
402acc:	74 03                	je     0x402ad1
402ace:	50                   	push   %eax
402acf:	ff d6                	call   *%esi
402ad1:	83 3f 00             	cmpl   $0x0,(%edi)
402ad4:	8b 35 44 11 43 00    	mov    0x431144,%esi
402ada:	74 04                	je     0x402ae0
402adc:	ff 37                	push   (%edi)
402ade:	ff d6                	call   *%esi
402ae0:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
402ae4:	74 05                	je     0x402aeb
402ae6:	ff 77 08             	push   0x8(%edi)
402ae9:	ff d6                	call   *%esi
402aeb:	8b 35 1c 11 43 00    	mov    0x43111c,%esi
402af1:	8d 87 74 01 02 00    	lea    0x20174(%edi),%eax
402af7:	50                   	push   %eax
402af8:	ff d6                	call   *%esi
402afa:	8d 87 5c 01 02 00    	lea    0x2015c(%edi),%eax
402b00:	50                   	push   %eax
402b01:	ff d6                	call   *%esi
402b03:	6a 00                	push   $0x0
402b05:	6a 01                	push   $0x1
402b07:	8d 8f 30 01 02 00    	lea    0x20130(%edi),%ecx
402b0d:	e8 b3 f5 ff ff       	call   0x4020c5
402b12:	5f                   	pop    %edi
402b13:	5e                   	pop    %esi
402b14:	c3                   	ret
402b15:	81 ec 74 03 00 00    	sub    $0x374,%esp
402b1b:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
402b20:	33 c4                	xor    %esp,%eax
402b22:	89 84 24 6c 03 00 00 	mov    %eax,0x36c(%esp)
402b29:	53                   	push   %ebx
402b2a:	55                   	push   %ebp
402b2b:	56                   	push   %esi
402b2c:	57                   	push   %edi
402b2d:	8b f9                	mov    %ecx,%edi
402b2f:	83 cd ff             	or     $0xffffffff,%ebp
402b32:	8b 47 28             	mov    0x28(%edi),%eax
402b35:	d1 e8                	shr    $1,%eax
402b37:	25 01 ff ff ff       	and    $0xffffff01,%eax
402b3c:	89 44 24 28          	mov    %eax,0x28(%esp)
402b40:	39 af 48 01 02 00    	cmp    %ebp,0x20148(%edi)
402b46:	0f 84 6b 03 00 00    	je     0x402eb7
402b4c:	84 c0                	test   %al,%al
402b4e:	74 0c                	je     0x402b5c
402b50:	39 af 4c 01 02 00    	cmp    %ebp,0x2014c(%edi)
402b56:	0f 84 5b 03 00 00    	je     0x402eb7
402b5c:	e8 b3 05 00 00       	call   0x403114
402b61:	89 44 24 24          	mov    %eax,0x24(%esp)
402b65:	85 c0                	test   %eax,%eax
402b67:	0f 84 4a 03 00 00    	je     0x402eb7
402b6d:	8b 4f 20             	mov    0x20(%edi),%ecx
402b70:	85 c9                	test   %ecx,%ecx
402b72:	74 21                	je     0x402b95
402b74:	8a 97 2c 01 02 00    	mov    0x2012c(%edi),%dl
402b7a:	84 d2                	test   %dl,%dl
402b7c:	74 05                	je     0x402b83
402b7e:	8b 47 1c             	mov    0x1c(%edi),%eax
402b81:	eb 03                	jmp    0x402b86
402b83:	8b 47 18             	mov    0x18(%edi),%eax
402b86:	89 44 24 2c          	mov    %eax,0x2c(%esp)
402b8a:	0f b6 c2             	movzbl %dl,%eax
402b8d:	89 4c 24 30          	mov    %ecx,0x30(%esp)
402b91:	89 44 24 34          	mov    %eax,0x34(%esp)
402b95:	33 db                	xor    %ebx,%ebx
402b97:	6a 03                	push   $0x3
402b99:	89 5c 24 6c          	mov    %ebx,0x6c(%esp)
402b9d:	89 5c 24 70          	mov    %ebx,0x70(%esp)
402ba1:	5a                   	pop    %edx
402ba2:	38 9f 2c 01 02 00    	cmp    %bl,0x2012c(%edi)
402ba8:	75 0d                	jne    0x402bb7
402baa:	8b 47 18             	mov    0x18(%edi),%eax
402bad:	89 54 24 64          	mov    %edx,0x64(%esp)
402bb1:	89 44 24 68          	mov    %eax,0x68(%esp)
402bb5:	eb 08                	jmp    0x402bbf
402bb7:	c7 44 24 64 02 00 00 	movl   $0x2,0x64(%esp)
402bbe:	00
402bbf:	8b 47 1c             	mov    0x1c(%edi),%eax
402bc2:	89 44 24 6c          	mov    %eax,0x6c(%esp)
402bc6:	8b 87 54 01 02 00    	mov    0x20154(%edi),%eax
402bcc:	85 c0                	test   %eax,%eax
402bce:	74 04                	je     0x402bd4
402bd0:	8b 08                	mov    (%eax),%ecx
402bd2:	eb 02                	jmp    0x402bd6
402bd4:	8b cb                	mov    %ebx,%ecx
402bd6:	33 c0                	xor    %eax,%eax
402bd8:	38 47 2c             	cmp    %al,0x2c(%edi)
402bdb:	6a 0c                	push   $0xc
402bdd:	0f 95 c0             	setne  %al
402be0:	03 c2                	add    %edx,%eax
402be2:	03 c1                	add    %ecx,%eax
402be4:	59                   	pop    %ecx
402be5:	f7 e1                	mul    %ecx
402be7:	0f 42 c5             	cmovb  %ebp,%eax
402bea:	50                   	push   %eax
402beb:	e8 d0 3d 00 00       	call   0x4069c0
402bf0:	8b f0                	mov    %eax,%esi
402bf2:	33 ed                	xor    %ebp,%ebp
402bf4:	8d 44 24 68          	lea    0x68(%esp),%eax
402bf8:	45                   	inc    %ebp
402bf9:	68 fe 00 00 00       	push   $0xfe
402bfe:	53                   	push   %ebx
402bff:	c7 06 01 00 67 47    	movl   $0x47670001,(%esi)
402c05:	c7 46 04 0c 00 00 00 	movl   $0xc,0x4(%esi)
402c0c:	89 46 08             	mov    %eax,0x8(%esi)
402c0f:	8b 47 24             	mov    0x24(%edi),%eax
402c12:	89 44 24 2c          	mov    %eax,0x2c(%esp)
402c16:	33 c0                	xor    %eax,%eax
402c18:	66 89 44 24 7c       	mov    %ax,0x7c(%esp)
402c1d:	8d 44 24 7e          	lea    0x7e(%esp),%eax
402c21:	50                   	push   %eax
402c22:	89 6c 24 28          	mov    %ebp,0x28(%esp)
402c26:	89 74 24 2c          	mov    %esi,0x2c(%esp)
402c2a:	e8 91 87 00 00       	call   0x40b3c0
402c2f:	68 08 02 00 00       	push   $0x208
402c34:	8d 84 24 84 01 00 00 	lea    0x184(%esp),%eax
402c3b:	53                   	push   %ebx
402c3c:	50                   	push   %eax
402c3d:	e8 7e 87 00 00       	call   0x40b3c0
402c42:	8b 44 24 3c          	mov    0x3c(%esp),%eax
402c46:	83 c4 1c             	add    $0x1c,%esp
402c49:	85 c0                	test   %eax,%eax
402c4b:	0f 84 83 00 00 00    	je     0x402cd4
402c51:	bd 08 03 00 00       	mov    $0x308,%ebp
402c56:	38 9f 2c 01 02 00    	cmp    %bl,0x2012c(%edi)
402c5c:	74 60                	je     0x402cbe
402c5e:	8d 4c 24 20          	lea    0x20(%esp),%ecx
402c62:	89 5c 24 20          	mov    %ebx,0x20(%esp)
402c66:	51                   	push   %ecx
402c67:	55                   	push   %ebp
402c68:	8d 4c 24 78          	lea    0x78(%esp),%ecx
402c6c:	51                   	push   %ecx
402c6d:	50                   	push   %eax
402c6e:	ff 77 10             	push   0x10(%edi)
402c71:	ff 15 2c 11 43 00    	call   *0x43112c
402c77:	85 c0                	test   %eax,%eax
402c79:	74 06                	je     0x402c81
402c7b:	39 6c 24 20          	cmp    %ebp,0x20(%esp)
402c7f:	74 39                	je     0x402cba
402c81:	8b 2d 20 10 43 00    	mov    0x431020,%ebp
402c87:	38 9f 50 01 02 00    	cmp    %bl,0x20150(%edi)
402c8d:	74 08                	je     0x402c97
402c8f:	ff b7 48 01 02 00    	push   0x20148(%edi)
402c95:	ff d5                	call   *%ebp
402c97:	38 9f 51 01 02 00    	cmp    %bl,0x20151(%edi)
402c9d:	0f 84 09 02 00 00    	je     0x402eac
402ca3:	8b 87 4c 01 02 00    	mov    0x2014c(%edi),%eax
402ca9:	83 f8 ff             	cmp    $0xffffffff,%eax
402cac:	0f 84 fa 01 00 00    	je     0x402eac
402cb2:	50                   	push   %eax
402cb3:	ff d5                	call   *%ebp
402cb5:	e9 f2 01 00 00       	jmp    0x402eac
402cba:	8d 44 24 70          	lea    0x70(%esp),%eax
402cbe:	c7 46 0c 02 00 67 47 	movl   $0x47670002,0xc(%esi)
402cc5:	89 6e 10             	mov    %ebp,0x10(%esi)
402cc8:	89 46 14             	mov    %eax,0x14(%esi)
402ccb:	8b 6c 24 18          	mov    0x18(%esp),%ebp
402ccf:	45                   	inc    %ebp
402cd0:	89 6c 24 18          	mov    %ebp,0x18(%esp)
402cd4:	8b 87 54 01 02 00    	mov    0x20154(%edi),%eax
402cda:	85 c0                	test   %eax,%eax
402cdc:	74 57                	je     0x402d35
402cde:	39 18                	cmp    %ebx,(%eax)
402ce0:	76 53                	jbe    0x402d35
402ce2:	8b d3                	mov    %ebx,%edx
402ce4:	8b 40 04             	mov    0x4(%eax),%eax
402ce7:	6b cd 0c             	imul   $0xc,%ebp,%ecx
402cea:	8b 04 02             	mov    (%edx,%eax,1),%eax
402ced:	8d 52 0c             	lea    0xc(%edx),%edx
402cf0:	89 04 31             	mov    %eax,(%ecx,%esi,1)
402cf3:	6b 4c 24 18 0c       	imul   $0xc,0x18(%esp),%ecx
402cf8:	8b 87 54 01 02 00    	mov    0x20154(%edi),%eax
402cfe:	8b 40 04             	mov    0x4(%eax),%eax
402d01:	8b 44 10 f8          	mov    -0x8(%eax,%edx,1),%eax
402d05:	89 44 31 04          	mov    %eax,0x4(%ecx,%esi,1)
402d09:	6b 4c 24 18 0c       	imul   $0xc,0x18(%esp),%ecx
402d0e:	43                   	inc    %ebx
402d0f:	8b 87 54 01 02 00    	mov    0x20154(%edi),%eax
402d15:	8b 40 04             	mov    0x4(%eax),%eax
402d18:	8b 44 10 fc          	mov    -0x4(%eax,%edx,1),%eax
402d1c:	89 44 31 08          	mov    %eax,0x8(%ecx,%esi,1)
402d20:	8b 6c 24 18          	mov    0x18(%esp),%ebp
402d24:	8b 87 54 01 02 00    	mov    0x20154(%edi),%eax
402d2a:	45                   	inc    %ebp
402d2b:	89 6c 24 18          	mov    %ebp,0x18(%esp)
402d2f:	3b 18                	cmp    (%eax),%ebx
402d31:	72 b1                	jb     0x402ce4
402d33:	33 db                	xor    %ebx,%ebx
402d35:	80 7f 2c 00          	cmpb   $0x0,0x2c(%edi)
402d39:	74 3d                	je     0x402d78
402d3b:	6b c5 0c             	imul   $0xc,%ebp,%eax
402d3e:	8d 4f 2c             	lea    0x2c(%edi),%ecx
402d41:	8d 51 01             	lea    0x1(%ecx),%edx
402d44:	c7 04 30 0a 00 00 00 	movl   $0xa,(%eax,%esi,1)
402d4b:	8a 01                	mov    (%ecx),%al
402d4d:	41                   	inc    %ecx
402d4e:	84 c0                	test   %al,%al
402d50:	75 f9                	jne    0x402d4b
402d52:	2b ca                	sub    %edx,%ecx
402d54:	b8 00 00 02 00       	mov    $0x20000,%eax
402d59:	3b c8                	cmp    %eax,%ecx
402d5b:	0f 47 c8             	cmova  %eax,%ecx
402d5e:	6b 44 24 18 0c       	imul   $0xc,0x18(%esp),%eax
402d63:	41                   	inc    %ecx
402d64:	89 4c 30 04          	mov    %ecx,0x4(%eax,%esi,1)
402d68:	8d 4f 2c             	lea    0x2c(%edi),%ecx
402d6b:	6b 44 24 18 0c       	imul   $0xc,0x18(%esp),%eax
402d70:	89 4c 30 08          	mov    %ecx,0x8(%eax,%esi,1)
402d74:	ff 44 24 18          	incl   0x18(%esp)
402d78:	53                   	push   %ebx
402d79:	53                   	push   %ebx
402d7a:	89 5c 24 40          	mov    %ebx,0x40(%esp)
402d7e:	89 5c 24 44          	mov    %ebx,0x44(%esp)
402d82:	89 5c 24 48          	mov    %ebx,0x48(%esp)
402d86:	89 5c 24 4c          	mov    %ebx,0x4c(%esp)
402d8a:	89 5c 24 54          	mov    %ebx,0x54(%esp)
402d8e:	e8 b3 08 00 00       	call   0x403646
402d93:	83 7f 20 00          	cmpl   $0x0,0x20(%edi)
402d97:	89 44 24 48          	mov    %eax,0x48(%esp)
402d9b:	89 5c 24 50          	mov    %ebx,0x50(%esp)
402d9f:	89 5c 24 54          	mov    %ebx,0x54(%esp)
402da3:	89 5c 24 58          	mov    %ebx,0x58(%esp)
402da7:	74 53                	je     0x402dfc
402da9:	f6 47 28 04          	testb  $0x4,0x28(%edi)
402dad:	75 4d                	jne    0x402dfc
402daf:	ff 77 20             	push   0x20(%edi)
402db2:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
402db6:	ff 77 10             	push   0x10(%edi)
402db9:	e8 69 fa ff ff       	call   0x402827
402dbe:	84 c0                	test   %al,%al
402dc0:	75 3a                	jne    0x402dfc
402dc2:	8b 2d 20 10 43 00    	mov    0x431020,%ebp
402dc8:	38 87 50 01 02 00    	cmp    %al,0x20150(%edi)
402dce:	74 08                	je     0x402dd8
402dd0:	ff b7 48 01 02 00    	push   0x20148(%edi)
402dd6:	ff d5                	call   *%ebp
402dd8:	80 bf 51 01 02 00 00 	cmpb   $0x0,0x20151(%edi)
402ddf:	0f 84 be 00 00 00    	je     0x402ea3
402de5:	8b 87 4c 01 02 00    	mov    0x2014c(%edi),%eax