40b807:	c6 47 0c 01          	movb   $0x1,0xc(%edi)
40b80b:	5f                   	pop    %edi
40b80c:	5b                   	pop    %ebx
40b80d:	8b e5                	mov    %ebp,%esp
40b80f:	5d                   	pop    %ebp
40b810:	c2 0c 00             	ret    $0xc
40b813:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40b817:	75 0d                	jne    0x40b826
40b819:	89 7a 08             	mov    %edi,0x8(%edx)
40b81c:	3b 50 08             	cmp    0x8(%eax),%edx
40b81f:	75 0d                	jne    0x40b82e
40b821:	89 78 08             	mov    %edi,0x8(%eax)
40b824:	eb 08                	jmp    0x40b82e
40b826:	89 3a                	mov    %edi,(%edx)
40b828:	3b 10                	cmp    (%eax),%edx
40b82a:	75 02                	jne    0x40b82e
40b82c:	89 38                	mov    %edi,(%eax)
40b82e:	8b 4f 04             	mov    0x4(%edi),%ecx
40b831:	8b c7                	mov    %edi,%eax
40b833:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
40b837:	0f 85 7d 01 00 00    	jne    0x40b9ba
40b83d:	56                   	push   %esi
40b83e:	66 90                	xchg   %ax,%ax
40b840:	8b 50 04             	mov    0x4(%eax),%edx
40b843:	8b 72 04             	mov    0x4(%edx),%esi
40b846:	8b 0e                	mov    (%esi),%ecx
40b848:	3b d1                	cmp    %ecx,%edx
40b84a:	0f 85 aa 00 00 00    	jne    0x40b8fa
40b850:	8b 4e 08             	mov    0x8(%esi),%ecx
40b853:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
40b857:	0f 84 a3 00 00 00    	je     0x40b900
40b85d:	8b 72 08             	mov    0x8(%edx),%esi
40b860:	3b c6                	cmp    %esi,%eax
40b862:	75 37                	jne    0x40b89b
40b864:	8b 0e                	mov    (%esi),%ecx
40b866:	8b c2                	mov    %edx,%eax
40b868:	89 4a 08             	mov    %ecx,0x8(%edx)
40b86b:	8b 0e                	mov    (%esi),%ecx
40b86d:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
40b871:	75 03                	jne    0x40b876
40b873:	89 41 04             	mov    %eax,0x4(%ecx)
40b876:	8b 4a 04             	mov    0x4(%edx),%ecx
40b879:	89 4e 04             	mov    %ecx,0x4(%esi)
40b87c:	8b 0b                	mov    (%ebx),%ecx
40b87e:	3b 41 04             	cmp    0x4(%ecx),%eax
40b881:	75 05                	jne    0x40b888
40b883:	89 71 04             	mov    %esi,0x4(%ecx)
40b886:	eb 0e                	jmp    0x40b896
40b888:	8b 4a 04             	mov    0x4(%edx),%ecx
40b88b:	3b 01                	cmp    (%ecx),%eax
40b88d:	75 04                	jne    0x40b893
40b88f:	89 31                	mov    %esi,(%ecx)
40b891:	eb 03                	jmp    0x40b896
40b893:	89 71 08             	mov    %esi,0x8(%ecx)
40b896:	89 06                	mov    %eax,(%esi)
40b898:	89 72 04             	mov    %esi,0x4(%edx)
40b89b:	8b 48 04             	mov    0x4(%eax),%ecx
40b89e:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
40b8a2:	8b 48 04             	mov    0x4(%eax),%ecx
40b8a5:	8b 49 04             	mov    0x4(%ecx),%ecx
40b8a8:	c6 41 0c 00          	movb   $0x0,0xc(%ecx)
40b8ac:	8b 48 04             	mov    0x4(%eax),%ecx
40b8af:	8b 51 04             	mov    0x4(%ecx),%edx
40b8b2:	8b 32                	mov    (%edx),%esi
40b8b4:	8b 4e 08             	mov    0x8(%esi),%ecx
40b8b7:	89 0a                	mov    %ecx,(%edx)
40b8b9:	8b 4e 08             	mov    0x8(%esi),%ecx
40b8bc:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
40b8c0:	75 03                	jne    0x40b8c5
40b8c2:	89 51 04             	mov    %edx,0x4(%ecx)
40b8c5:	8b 4a 04             	mov    0x4(%edx),%ecx
40b8c8:	89 4e 04             	mov    %ecx,0x4(%esi)
40b8cb:	8b 0b                	mov    (%ebx),%ecx
40b8cd:	3b 51 04             	cmp    0x4(%ecx),%edx
40b8d0:	75 0b                	jne    0x40b8dd
40b8d2:	89 71 04             	mov    %esi,0x4(%ecx)
40b8d5:	89 56 08             	mov    %edx,0x8(%esi)
40b8d8:	e9 cc 00 00 00       	jmp    0x40b9a9
40b8dd:	8b 4a 04             	mov    0x4(%edx),%ecx
40b8e0:	3b 51 08             	cmp    0x8(%ecx),%edx
40b8e3:	75 0b                	jne    0x40b8f0
40b8e5:	89 71 08             	mov    %esi,0x8(%ecx)
40b8e8:	89 56 08             	mov    %edx,0x8(%esi)
40b8eb:	e9 b9 00 00 00       	jmp    0x40b9a9
40b8f0:	89 31                	mov    %esi,(%ecx)
40b8f2:	89 56 08             	mov    %edx,0x8(%esi)
40b8f5:	e9 af 00 00 00       	jmp    0x40b9a9
40b8fa:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
40b8fe:	75 1d                	jne    0x40b91d
40b900:	c6 42 0c 01          	movb   $0x1,0xc(%edx)
40b904:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
40b908:	8b 48 04             	mov    0x4(%eax),%ecx
40b90b:	8b 49 04             	mov    0x4(%ecx),%ecx
40b90e:	c6 41 0c 00          	movb   $0x0,0xc(%ecx)
40b912:	8b 48 04             	mov    0x4(%eax),%ecx
40b915:	8b 41 04             	mov    0x4(%ecx),%eax
40b918:	e9 8f 00 00 00       	jmp    0x40b9ac
40b91d:	8b 32                	mov    (%edx),%esi
40b91f:	3b c6                	cmp    %esi,%eax
40b921:	75 3a                	jne    0x40b95d
40b923:	8b 4e 08             	mov    0x8(%esi),%ecx
40b926:	8b c2                	mov    %edx,%eax
40b928:	89 08                	mov    %ecx,(%eax)
40b92a:	8b 4e 08             	mov    0x8(%esi),%ecx
40b92d:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
40b931:	75 03                	jne    0x40b936
40b933:	89 41 04             	mov    %eax,0x4(%ecx)
40b936:	8b 4a 04             	mov    0x4(%edx),%ecx
40b939:	89 4e 04             	mov    %ecx,0x4(%esi)
40b93c:	8b 0b                	mov    (%ebx),%ecx
40b93e:	3b 41 04             	cmp    0x4(%ecx),%eax
40b941:	75 05                	jne    0x40b948
40b943:	89 71 04             	mov    %esi,0x4(%ecx)
40b946:	eb 0f                	jmp    0x40b957
40b948:	8b 4a 04             	mov    0x4(%edx),%ecx
40b94b:	3b 41 08             	cmp    0x8(%ecx),%eax
40b94e:	75 05                	jne    0x40b955
40b950:	89 71 08             	mov    %esi,0x8(%ecx)
40b953:	eb 02                	jmp    0x40b957
40b955:	89 31                	mov    %esi,(%ecx)
40b957:	89 46 08             	mov    %eax,0x8(%esi)
40b95a:	89 72 04             	mov    %esi,0x4(%edx)
40b95d:	8b 48 04             	mov    0x4(%eax),%ecx
40b960:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
40b964:	8b 48 04             	mov    0x4(%eax),%ecx
40b967:	8b 49 04             	mov    0x4(%ecx),%ecx
40b96a:	c6 41 0c 00          	movb   $0x0,0xc(%ecx)
40b96e:	8b 48 04             	mov    0x4(%eax),%ecx
40b971:	8b 51 04             	mov    0x4(%ecx),%edx
40b974:	8b 72 08             	mov    0x8(%edx),%esi
40b977:	8b 0e                	mov    (%esi),%ecx
40b979:	89 4a 08             	mov    %ecx,0x8(%edx)
40b97c:	8b 0e                	mov    (%esi),%ecx
40b97e:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
40b982:	75 03                	jne    0x40b987
40b984:	89 51 04             	mov    %edx,0x4(%ecx)
40b987:	8b 4a 04             	mov    0x4(%edx),%ecx
40b98a:	89 4e 04             	mov    %ecx,0x4(%esi)
40b98d:	8b 0b                	mov    (%ebx),%ecx
40b98f:	3b 51 04             	cmp    0x4(%ecx),%edx
40b992:	75 05                	jne    0x40b999
40b994:	89 71 04             	mov    %esi,0x4(%ecx)
40b997:	eb 0e                	jmp    0x40b9a7
40b999:	8b 4a 04             	mov    0x4(%edx),%ecx
40b99c:	3b 11                	cmp    (%ecx),%edx
40b99e:	75 04                	jne    0x40b9a4
40b9a0:	89 31                	mov    %esi,(%ecx)
40b9a2:	eb 03                	jmp    0x40b9a7
40b9a4:	89 71 08             	mov    %esi,0x8(%ecx)
40b9a7:	89 16                	mov    %edx,(%esi)
40b9a9:	89 72 04             	mov    %esi,0x4(%edx)
40b9ac:	8b 48 04             	mov    0x4(%eax),%ecx
40b9af:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
40b9b3:	0f 84 87 fe ff ff    	je     0x40b840
40b9b9:	5e                   	pop    %esi
40b9ba:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b9bd:	8b 40 04             	mov    0x4(%eax),%eax
40b9c0:	c6 40 0c 01          	movb   $0x1,0xc(%eax)
40b9c4:	8b c7                	mov    %edi,%eax
40b9c6:	5f                   	pop    %edi
40b9c7:	5b                   	pop    %ebx
40b9c8:	8b e5                	mov    %ebp,%esp
40b9ca:	5d                   	pop    %ebp
40b9cb:	c2 0c 00             	ret    $0xc
40b9ce:	cc                   	int3
40b9cf:	cc                   	int3
40b9d0:	8b 41 04             	mov    0x4(%ecx),%eax
40b9d3:	85 c0                	test   %eax,%eax
40b9d5:	74 0b                	je     0x40b9e2
40b9d7:	6a 34                	push   $0x34
40b9d9:	50                   	push   %eax
40b9da:	e8 d9 e1 00 00       	call   0x419bb8
40b9df:	83 c4 08             	add    $0x8,%esp
40b9e2:	c3                   	ret
40b9e3:	cc                   	int3
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