40b9e4:	cc                   	int3
40b9e5:	cc                   	int3
40b9e6:	cc                   	int3
40b9e7:	cc                   	int3
40b9e8:	cc                   	int3
40b9e9:	cc                   	int3
40b9ea:	cc                   	int3
40b9eb:	cc                   	int3
40b9ec:	cc                   	int3
40b9ed:	cc                   	int3
40b9ee:	cc                   	int3
40b9ef:	cc                   	int3
40b9f0:	55                   	push   %ebp
40b9f1:	8b ec                	mov    %esp,%ebp
40b9f3:	83 ec 10             	sub    $0x10,%esp
40b9f6:	8b 45 08             	mov    0x8(%ebp),%eax
40b9f9:	53                   	push   %ebx
40b9fa:	8b d9                	mov    %ecx,%ebx
40b9fc:	89 45 f8             	mov    %eax,-0x8(%ebp)
40b9ff:	8b 45 0c             	mov    0xc(%ebp),%eax
40ba02:	8b c8                	mov    %eax,%ecx
40ba04:	56                   	push   %esi
40ba05:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ba08:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ba0b:	2b c8                	sub    %eax,%ecx
40ba0d:	8b 53 08             	mov    0x8(%ebx),%edx
40ba10:	57                   	push   %edi
40ba11:	8b 3b                	mov    (%ebx),%edi
40ba13:	2b d7                	sub    %edi,%edx
40ba15:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40ba18:	c1 f9 02             	sar    $0x2,%ecx
40ba1b:	c1 fa 02             	sar    $0x2,%edx
40ba1e:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40ba21:	3b ca                	cmp    %edx,%ecx
40ba23:	0f 86 a7 00 00 00    	jbe    0x40bad0
40ba29:	81 f9 ff ff ff 3f    	cmp    $0x3fffffff,%ecx
40ba2f:	0f 87 fb 00 00 00    	ja     0x40bb30
40ba35:	8b f2                	mov    %edx,%esi
40ba37:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
40ba3c:	d1 ee                	shr    $1,%esi
40ba3e:	2b c6                	sub    %esi,%eax
40ba40:	3b d0                	cmp    %eax,%edx
40ba42:	76 07                	jbe    0x40ba4b
40ba44:	be ff ff ff 3f       	mov    $0x3fffffff,%esi
40ba49:	eb 07                	jmp    0x40ba52
40ba4b:	03 f2                	add    %edx,%esi
40ba4d:	3b f1                	cmp    %ecx,%esi
40ba4f:	0f 42 f1             	cmovb  %ecx,%esi
40ba52:	89 75 fc             	mov    %esi,-0x4(%ebp)
40ba55:	85 ff                	test   %edi,%edi
40ba57:	74 3f                	je     0x40ba98
40ba59:	c1 e2 02             	shl    $0x2,%edx
40ba5c:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
40ba62:	72 16                	jb     0x40ba7a
40ba64:	8b 4f fc             	mov    -0x4(%edi),%ecx
40ba67:	83 c2 23             	add    $0x23,%edx
40ba6a:	2b f9                	sub    %ecx,%edi
40ba6c:	8d 47 fc             	lea    -0x4(%edi),%eax
40ba6f:	83 f8 1f             	cmp    $0x1f,%eax
40ba72:	0f 87 bd 00 00 00    	ja     0x40bb35
40ba78:	8b f9                	mov    %ecx,%edi
40ba7a:	52                   	push   %edx
40ba7b:	57                   	push   %edi
40ba7c:	e8 37 e1 00 00       	call   0x419bb8
40ba81:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
40ba87:	83 c4 08             	add    $0x8,%esp
40ba8a:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)
40ba91:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)
40ba98:	56                   	push   %esi
40ba99:	e8 32 03 00 00       	call   0x40bdd0
40ba9e:	ff 75 f4             	push   -0xc(%ebp)
40baa1:	8b f0                	mov    %eax,%esi
40baa3:	8b 45 fc             	mov    -0x4(%ebp),%eax
40baa6:	89 33                	mov    %esi,(%ebx)
40baa8:	89 73 04             	mov    %esi,0x4(%ebx)
40baab:	8d 0c 86             	lea    (%esi,%eax,4),%ecx
40baae:	8b 45 f8             	mov    -0x8(%ebp),%eax
40bab1:	50                   	push   %eax
40bab2:	56                   	push   %esi
40bab3:	89 4b 08             	mov    %ecx,0x8(%ebx)
40bab6:	e8 c5 fb 00 00       	call   0x41b680
40babb:	8b 45 f0             	mov    -0x10(%ebp),%eax
40babe:	83 c4 0c             	add    $0xc,%esp
40bac1:	5f                   	pop    %edi
40bac2:	8d 04 86             	lea    (%esi,%eax,4),%eax
40bac5:	5e                   	pop    %esi
40bac6:	89 43 04             	mov    %eax,0x4(%ebx)
40bac9:	5b                   	pop    %ebx
40baca:	8b e5                	mov    %ebp,%esp
40bacc:	5d                   	pop    %ebp
40bacd:	c2 0c 00             	ret    $0xc
40bad0:	8b 73 04             	mov    0x4(%ebx),%esi
40bad3:	2b f7                	sub    %edi,%esi
40bad5:	c1 fe 02             	sar    $0x2,%esi
40bad8:	3b ce                	cmp    %esi,%ecx
40bada:	76 35                	jbe    0x40bb11
40badc:	c1 e6 02             	shl    $0x2,%esi
40badf:	56                   	push   %esi
40bae0:	50                   	push   %eax
40bae1:	57                   	push   %edi
40bae2:	e8 99 fb 00 00       	call   0x41b680
40bae7:	8b 45 f8             	mov    -0x8(%ebp),%eax
40baea:	8b 7b 04             	mov    0x4(%ebx),%edi
40baed:	03 c6                	add    %esi,%eax
40baef:	8b 75 fc             	mov    -0x4(%ebp),%esi
40baf2:	2b f0                	sub    %eax,%esi
40baf4:	56                   	push   %esi
40baf5:	50                   	push   %eax
40baf6:	57                   	push   %edi
40baf7:	e8 84 fb 00 00       	call   0x41b680
40bafc:	83 c4 18             	add    $0x18,%esp
40baff:	c1 fe 02             	sar    $0x2,%esi
40bb02:	8d 04 b7             	lea    (%edi,%esi,4),%eax
40bb05:	5f                   	pop    %edi
40bb06:	5e                   	pop    %esi
40bb07:	89 43 04             	mov    %eax,0x4(%ebx)
40bb0a:	5b                   	pop    %ebx
40bb0b:	8b e5                	mov    %ebp,%esp
40bb0d:	5d                   	pop    %ebp
40bb0e:	c2 0c 00             	ret    $0xc
40bb11:	ff 75 f4             	push   -0xc(%ebp)
40bb14:	50                   	push   %eax
40bb15:	57                   	push   %edi
40bb16:	e8 65 fb 00 00       	call   0x41b680
40bb1b:	8b 45 f0             	mov    -0x10(%ebp),%eax
40bb1e:	83 c4 0c             	add    $0xc,%esp
40bb21:	8d 04 87             	lea    (%edi,%eax,4),%eax
40bb24:	5f                   	pop    %edi
40bb25:	5e                   	pop    %esi
40bb26:	89 43 04             	mov    %eax,0x4(%ebx)
40bb29:	5b                   	pop    %ebx
40bb2a:	8b e5                	mov    %ebp,%esp
40bb2c:	5d                   	pop    %ebp
40bb2d:	c2 0c 00             	ret    $0xc
40bb30:	e8 ab 9b ff ff       	call   0x4056e0
40bb35:	e8 59 3e 01 00       	call   0x41f993
40bb3a:	cc                   	int3
40bb3b:	cc                   	int3
40bb3c:	cc                   	int3
40bb3d:	cc                   	int3
40bb3e:	cc                   	int3
40bb3f:	cc                   	int3
40bb40:	55                   	push   %ebp
40bb41:	8b ec                	mov    %esp,%ebp
40bb43:	83 ec 0c             	sub    $0xc,%esp
40bb46:	8b 45 08             	mov    0x8(%ebp),%eax
40bb49:	53                   	push   %ebx
40bb4a:	56                   	push   %esi
40bb4b:	8b f1                	mov    %ecx,%esi
40bb4d:	89 45 f8             	mov    %eax,-0x8(%ebp)
40bb50:	57                   	push   %edi
40bb51:	8b 16                	mov    (%esi),%edx
40bb53:	2b c2                	sub    %edx,%eax
40bb55:	c1 f8 02             	sar    $0x2,%eax
40bb58:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bb5b:	8b 46 04             	mov    0x4(%esi),%eax
40bb5e:	2b c2                	sub    %edx,%eax
40bb60:	c1 f8 02             	sar    $0x2,%eax
40bb63:	3d ff ff ff 3f       	cmp    $0x3fffffff,%eax
40bb68:	0f 84 d6 00 00 00    	je     0x40bc44
40bb6e:	8b 4e 08             	mov    0x8(%esi),%ecx
40bb71:	8d 78 01             	lea    0x1(%eax),%edi
40bb74:	2b ca                	sub    %edx,%ecx
40bb76:	89 7d f4             	mov    %edi,-0xc(%ebp)
40bb79:	c1 f9 02             	sar    $0x2,%ecx
40bb7c:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
40bb81:	8b d1                	mov    %ecx,%edx
40bb83:	d1 ea                	shr    $1,%edx
40bb85:	2b c2                	sub    %edx,%eax
40bb87:	3b c8                	cmp    %eax,%ecx
40bb89:	76 07                	jbe    0x40bb92
40bb8b:	bb ff ff ff 3f       	mov    $0x3fffffff,%ebx
40bb90:	eb 08                	jmp    0x40bb9a
40bb92:	8d 1c 0a             	lea    (%edx,%ecx,1),%ebx
40bb95:	3b df                	cmp    %edi,%ebx
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