40bb97:	0f 42 df             	cmovb  %edi,%ebx
40bb9a:	53                   	push   %ebx
40bb9b:	e8 30 02 00 00       	call   0x40bdd0
40bba0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40bba3:	8b f8                	mov    %eax,%edi
40bba5:	8b 45 fc             	mov    -0x4(%ebp),%eax
40bba8:	8b 55 f8             	mov    -0x8(%ebp),%edx
40bbab:	8d 04 87             	lea    (%edi,%eax,4),%eax
40bbae:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bbb1:	8b 09                	mov    (%ecx),%ecx
40bbb3:	89 08                	mov    %ecx,(%eax)
40bbb5:	8b 46 04             	mov    0x4(%esi),%eax
40bbb8:	8b 0e                	mov    (%esi),%ecx
40bbba:	3b d0                	cmp    %eax,%edx
40bbbc:	75 0f                	jne    0x40bbcd
40bbbe:	2b c1                	sub    %ecx,%eax
40bbc0:	50                   	push   %eax
40bbc1:	51                   	push   %ecx
40bbc2:	57                   	push   %edi
40bbc3:	e8 b8 fa 00 00       	call   0x41b680
40bbc8:	83 c4 0c             	add    $0xc,%esp
40bbcb:	eb 23                	jmp    0x40bbf0
40bbcd:	2b d1                	sub    %ecx,%edx
40bbcf:	52                   	push   %edx
40bbd0:	51                   	push   %ecx
40bbd1:	57                   	push   %edi
40bbd2:	e8 a9 fa 00 00       	call   0x41b680
40bbd7:	8b 46 04             	mov    0x4(%esi),%eax
40bbda:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40bbdd:	2b c1                	sub    %ecx,%eax
40bbdf:	50                   	push   %eax
40bbe0:	8b 45 fc             	mov    -0x4(%ebp),%eax
40bbe3:	51                   	push   %ecx
40bbe4:	83 c0 04             	add    $0x4,%eax
40bbe7:	50                   	push   %eax
40bbe8:	e8 93 fa 00 00       	call   0x41b680
40bbed:	83 c4 18             	add    $0x18,%esp
40bbf0:	8b 06                	mov    (%esi),%eax
40bbf2:	85 c0                	test   %eax,%eax
40bbf4:	74 2c                	je     0x40bc22
40bbf6:	8b 4e 08             	mov    0x8(%esi),%ecx
40bbf9:	2b c8                	sub    %eax,%ecx
40bbfb:	83 e1 fc             	and    $0xfffffffc,%ecx
40bbfe:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40bc04:	72 12                	jb     0x40bc18
40bc06:	8b 50 fc             	mov    -0x4(%eax),%edx
40bc09:	83 c1 23             	add    $0x23,%ecx
40bc0c:	2b c2                	sub    %edx,%eax
40bc0e:	83 c0 fc             	add    $0xfffffffc,%eax
40bc11:	83 f8 1f             	cmp    $0x1f,%eax
40bc14:	77 29                	ja     0x40bc3f
40bc16:	8b c2                	mov    %edx,%eax
40bc18:	51                   	push   %ecx
40bc19:	50                   	push   %eax
40bc1a:	e8 99 df 00 00       	call   0x419bb8
40bc1f:	83 c4 08             	add    $0x8,%esp
40bc22:	8b 45 f4             	mov    -0xc(%ebp),%eax
40bc25:	89 3e                	mov    %edi,(%esi)
40bc27:	8d 0c 87             	lea    (%edi,%eax,4),%ecx
40bc2a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40bc2d:	89 4e 04             	mov    %ecx,0x4(%esi)
40bc30:	8d 0c 9f             	lea    (%edi,%ebx,4),%ecx
40bc33:	5f                   	pop    %edi
40bc34:	89 4e 08             	mov    %ecx,0x8(%esi)
40bc37:	5e                   	pop    %esi
40bc38:	5b                   	pop    %ebx
40bc39:	8b e5                	mov    %ebp,%esp
40bc3b:	5d                   	pop    %ebp
40bc3c:	c2 08 00             	ret    $0x8
40bc3f:	e8 4f 3d 01 00       	call   0x41f993
40bc44:	e8 97 9a ff ff       	call   0x4056e0
40bc49:	cc                   	int3
40bc4a:	cc                   	int3
40bc4b:	cc                   	int3
40bc4c:	cc                   	int3
40bc4d:	cc                   	int3
40bc4e:	cc                   	int3
40bc4f:	cc                   	int3
40bc50:	55                   	push   %ebp
40bc51:	8b ec                	mov    %esp,%ebp
40bc53:	8b 01                	mov    (%ecx),%eax
40bc55:	83 ec 08             	sub    $0x8,%esp
40bc58:	56                   	push   %esi
40bc59:	8b 70 04             	mov    0x4(%eax),%esi
40bc5c:	57                   	push   %edi
40bc5d:	8b 7d 08             	mov    0x8(%ebp),%edi
40bc60:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
40bc64:	89 37                	mov    %esi,(%edi)
40bc66:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
40bc6d:	89 47 08             	mov    %eax,0x8(%edi)
40bc70:	75 58                	jne    0x40bcca
40bc72:	53                   	push   %ebx
40bc73:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40bc76:	8b 4b 14             	mov    0x14(%ebx),%ecx
40bc79:	8b 43 10             	mov    0x10(%ebx),%eax
40bc7c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40bc7f:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bc82:	89 37                	mov    %esi,(%edi)
40bc84:	8b c3                	mov    %ebx,%eax
40bc86:	83 f9 08             	cmp    $0x8,%ecx
40bc89:	72 02                	jb     0x40bc8d
40bc8b:	8b 03                	mov    (%ebx),%eax
40bc8d:	83 7e 24 08          	cmpl   $0x8,0x24(%esi)
40bc91:	8d 4e 10             	lea    0x10(%esi),%ecx
40bc94:	72 03                	jb     0x40bc99
40bc96:	8b 4e 10             	mov    0x10(%esi),%ecx
40bc99:	ff 75 fc             	push   -0x4(%ebp)
40bc9c:	8b 56 20             	mov    0x20(%esi),%edx
40bc9f:	50                   	push   %eax
40bca0:	e8 db 93 ff ff       	call   0x405080
40bca5:	83 c4 08             	add    $0x8,%esp
40bca8:	85 c0                	test   %eax,%eax
40bcaa:	79 07                	jns    0x40bcb3
40bcac:	8b 76 08             	mov    0x8(%esi),%esi
40bcaf:	33 c0                	xor    %eax,%eax
40bcb1:	eb 0a                	jmp    0x40bcbd
40bcb3:	89 77 08             	mov    %esi,0x8(%edi)
40bcb6:	b8 01 00 00 00       	mov    $0x1,%eax
40bcbb:	8b 36                	mov    (%esi),%esi
40bcbd:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40bcc0:	89 47 04             	mov    %eax,0x4(%edi)
40bcc3:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
40bcc7:	74 b9                	je     0x40bc82
40bcc9:	5b                   	pop    %ebx
40bcca:	8b c7                	mov    %edi,%eax
40bccc:	5f                   	pop    %edi
40bccd:	5e                   	pop    %esi
40bcce:	8b e5                	mov    %ebp,%esp
40bcd0:	5d                   	pop    %ebp
40bcd1:	c2 08 00             	ret    $0x8
40bcd4:	cc                   	int3
40bcd5:	cc                   	int3
40bcd6:	cc                   	int3
40bcd7:	cc                   	int3
40bcd8:	cc                   	int3
40bcd9:	cc                   	int3
40bcda:	cc                   	int3
40bcdb:	cc                   	int3
40bcdc:	cc                   	int3
40bcdd:	cc                   	int3
40bcde:	cc                   	int3
40bcdf:	cc                   	int3
40bce0:	55                   	push   %ebp
40bce1:	8b ec                	mov    %esp,%ebp
40bce3:	51                   	push   %ecx
40bce4:	8b 45 08             	mov    0x8(%ebp),%eax
40bce7:	53                   	push   %ebx
40bce8:	56                   	push   %esi
40bce9:	8b 75 0c             	mov    0xc(%ebp),%esi
40bcec:	8b d9                	mov    %ecx,%ebx
40bcee:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bcf1:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
40bcf5:	75 2d                	jne    0x40bd24
40bcf7:	57                   	push   %edi
40bcf8:	ff 76 08             	push   0x8(%esi)
40bcfb:	8b cb                	mov    %ebx,%ecx
40bcfd:	50                   	push   %eax
40bcfe:	e8 dd ff ff ff       	call   0x40bce0
40bd03:	8b fe                	mov    %esi,%edi
40bd05:	8b 36                	mov    (%esi),%esi
40bd07:	8d 4f 10             	lea    0x10(%edi),%ecx
40bd0a:	e8 21 00 00 00       	call   0x40bd30
40bd0f:	6a 34                	push   $0x34
40bd11:	57                   	push   %edi
40bd12:	e8 a1 de 00 00       	call   0x419bb8
40bd17:	8b 45 fc             	mov    -0x4(%ebp),%eax
40bd1a:	83 c4 08             	add    $0x8,%esp
40bd1d:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
40bd21:	74 d5                	je     0x40bcf8
40bd23:	5f                   	pop    %edi
40bd24:	5e                   	pop    %esi
40bd25:	5b                   	pop    %ebx
40bd26:	8b e5                	mov    %ebp,%esp
40bd28:	5d                   	pop    %ebp
40bd29:	c2 08 00             	ret    $0x8
40bd2c:	cc                   	int3
40bd2d:	cc                   	int3
40bd2e:	cc                   	int3
40bd2f:	cc                   	int3
40bd30:	56                   	push   %esi
40bd31:	8b f1                	mov    %ecx,%esi
40bd33:	8b 46 18             	mov    0x18(%esi),%eax
40bd36:	85 c0                	test   %eax,%eax
40bd38:	74 41                	je     0x40bd7b
40bd3a:	8b 4e 20             	mov    0x20(%esi),%ecx
40bd3d:	2b c8                	sub    %eax,%ecx
40bd3f:	83 e1 fc             	and    $0xfffffffc,%ecx
40bd42:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40bd48:	72 12                	jb     0x40bd5c
40bd4a:	8b 50 fc             	mov    -0x4(%eax),%edx
40bd4d:	83 c1 23             	add    $0x23,%ecx
40bd50:	2b c2                	sub    %edx,%eax
40bd52:	83 c0 fc             	add    $0xfffffffc,%eax
40bd55:	83 f8 1f             	cmp    $0x1f,%eax
40bd58:	77 6b                	ja     0x40bdc5
40bd5a:	8b c2                	mov    %edx,%eax
40bd5c:	51                   	push   %ecx
40bd5d:	50                   	push   %eax
40bd5e:	e8 55 de 00 00       	call   0x419bb8
40bd63:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
40bd6a:	83 c4 08             	add    $0x8,%esp
40bd6d:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
40bd74:	c7 46 20 00 00 00 00 	movl   $0x0,0x20(%esi)
40bd7b:	8b 4e 14             	mov    0x14(%esi),%ecx
40bd7e:	83 f9 08             	cmp    $0x8,%ecx
40bd81:	72 2d                	jb     0x40bdb0
40bd83:	8b 06                	mov    (%esi),%eax
40bd85:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40bd8c:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40bd92:	72 12                	jb     0x40bda6
40bd94:	8b 50 fc             	mov    -0x4(%eax),%edx
40bd97:	83 c1 23             	add    $0x23,%ecx
40bd9a:	2b c2                	sub    %edx,%eax
40bd9c:	83 c0 fc             	add    $0xfffffffc,%eax
40bd9f:	83 f8 1f             	cmp    $0x1f,%eax
40bda2:	77 21                	ja     0x40bdc5
40bda4:	8b c2                	mov    %edx,%eax
40bda6:	51                   	push   %ecx
40bda7:	50                   	push   %eax
40bda8:	e8 0b de 00 00       	call   0x419bb8
40bdad:	83 c4 08             	add    $0x8,%esp
40bdb0:	33 c0                	xor    %eax,%eax
40bdb2:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40bdb9:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
40bdc0:	66 89 06             	mov    %ax,(%esi)
40bdc3:	5e                   	pop    %esi
40bdc4:	c3                   	ret
40bdc5:	e8 c9 3b 01 00       	call   0x41f993
40bdca:	cc                   	int3
40bdcb:	cc                   	int3
40bdcc:	cc                   	int3
40bdcd:	cc                   	int3
40bdce:	cc                   	int3
40bdcf:	cc                   	int3
40bdd0:	55                   	push   %ebp
40bdd1:	8b ec                	mov    %esp,%ebp
40bdd3:	8b 45 08             	mov    0x8(%ebp),%eax
40bdd6:	3d ff ff ff 3f       	cmp    $0x3fffffff,%eax
40bddb:	77 44                	ja     0x40be21
40bddd:	c1 e0 02             	shl    $0x2,%eax
40bde0:	3d 00 10 00 00       	cmp    $0x1000,%eax
40bde5:	72 23                	jb     0x40be0a
40bde7:	8d 48 23             	lea    0x23(%eax),%ecx
40bdea:	3b c8                	cmp    %eax,%ecx
40bdec:	76 33                	jbe    0x40be21
40bdee:	51                   	push   %ecx
40bdef:	e8 d2 dd 00 00       	call   0x419bc6
40bdf4:	8b c8                	mov    %eax,%ecx
40bdf6:	83 c4 04             	add    $0x4,%esp
40bdf9:	85 c9                	test   %ecx,%ecx
40bdfb:	74 29                	je     0x40be26
40bdfd:	8d 41 23             	lea    0x23(%ecx),%eax
40be00:	83 e0 e0             	and    $0xffffffe0,%eax
40be03:	89 48 fc             	mov    %ecx,-0x4(%eax)
40be06:	5d                   	pop    %ebp
40be07:	c2 04 00             	ret    $0x4
40be0a:	85 c0                	test   %eax,%eax
40be0c:	74 0d                	je     0x40be1b
40be0e:	50                   	push   %eax
40be0f:	e8 b2 dd 00 00       	call   0x419bc6
40be14:	83 c4 04             	add    $0x4,%esp
40be17:	5d                   	pop    %ebp
40be18:	c2 04 00             	ret    $0x4
40be1b:	33 c0                	xor    %eax,%eax
40be1d:	5d                   	pop    %ebp
40be1e:	c2 04 00             	ret    $0x4
40be21:	e8 9a 54 ff ff       	call   0x4012c0
40be26:	e8 68 3b 01 00       	call   0x41f993
40be2b:	cc                   	int3
40be2c:	cc                   	int3
40be2d:	cc                   	int3
40be2e:	cc                   	int3
40be2f:	cc                   	int3
40be30:	55                   	push   %ebp
40be31:	8b ec                	mov    %esp,%ebp
40be33:	6a ff                	push   $0xffffffff
40be35:	68 4d c3 43 00       	push   $0x43c34d
40be3a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40be40:	50                   	push   %eax
40be41:	83 ec 08             	sub    $0x8,%esp
40be44:	56                   	push   %esi
40be45:	57                   	push   %edi
40be46:	a1 14 50 45 00       	mov    0x455014,%eax
40be4b:	33 c5                	xor    %ebp,%eax
40be4d:	50                   	push   %eax
40be4e:	8d 45 f4             	lea    -0xc(%ebp),%eax
40be51:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40be57:	8b f9                	mov    %ecx,%edi
40be59:	89 7d f0             	mov    %edi,-0x10(%ebp)
40be5c:	33 c0                	xor    %eax,%eax
40be5e:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40be64:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
40be6b:	c7 47 14 00 00 00 00 	movl   $0x0,0x14(%edi)
40be72:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
40be79:	c7 47 14 07 00 00 00 	movl   $0x7,0x14(%edi)
40be80:	66 89 07             	mov    %ax,(%edi)
40be83:	8d 77 18             	lea    0x18(%edi),%esi
40be86:	89 45 fc             	mov    %eax,-0x4(%ebp)
40be89:	6a 40                	push   $0x40
40be8b:	89 75 ec             	mov    %esi,-0x14(%ebp)
40be8e:	89 06                	mov    %eax,(%esi)
40be90:	89 46 04             	mov    %eax,0x4(%esi)
40be93:	e8 2e dd 00 00       	call   0x419bc6
40be98:	83 c4 04             	add    $0x4,%esp
40be9b:	89 00                	mov    %eax,(%eax)
40be9d:	89 40 04             	mov    %eax,0x4(%eax)
40bea0:	89 40 08             	mov    %eax,0x8(%eax)
40bea3:	66 c7 40 0c 01 01    	movw   $0x101,0xc(%eax)
40bea9:	89 06                	mov    %eax,(%esi)
40beab:	33 c0                	xor    %eax,%eax
40bead:	c7 47 20 00 00 00 00 	movl   $0x0,0x20(%edi)
40beb4:	66 89 47 20          	mov    %ax,0x20(%edi)
40beb8:	8b c7                	mov    %edi,%eax
40beba:	c7 47 30 00 00 00 00 	movl   $0x0,0x30(%edi)
40bec1:	c7 47 34 07 00 00 00 	movl   $0x7,0x34(%edi)
40bec8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40becb:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40bed2:	59                   	pop    %ecx
40bed3:	5f                   	pop    %edi
40bed4:	5e                   	pop    %esi
40bed5:	8b e5                	mov    %ebp,%esp
40bed7:	5d                   	pop    %ebp
40bed8:	c3                   	ret
40bed9:	cc                   	int3
40beda:	cc                   	int3
40bedb:	cc                   	int3
40bedc:	cc                   	int3
40bedd:	cc                   	int3
40bede:	cc                   	int3
40bedf:	cc                   	int3
40bee0:	55                   	push   %ebp
40bee1:	8b ec                	mov    %esp,%ebp
40bee3:	56                   	push   %esi
40bee4:	8b f1                	mov    %ecx,%esi
40bee6:	8b 46 68             	mov    0x68(%esi),%eax
40bee9:	c7 06 a8 f0 44 00    	movl   $0x44f0a8,(%esi)
40beef:	85 c0                	test   %eax,%eax
40bef1:	74 0e                	je     0x40bf01
40bef3:	50                   	push   %eax
40bef4:	ff 15 68 e0 43 00    	call   *0x43e068
40befa:	c7 46 68 00 00 00 00 	movl   $0x0,0x68(%esi)
40bf01:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
40bf07:	85 c0                	test   %eax,%eax
40bf09:	74 37                	je     0x40bf42
40bf0b:	8b 00                	mov    (%eax),%eax
40bf0d:	85 c0                	test   %eax,%eax
40bf0f:	74 0c                	je     0x40bf1d
40bf11:	83 f8 ff             	cmp    $0xffffffff,%eax
40bf14:	74 07                	je     0x40bf1d
40bf16:	50                   	push   %eax