403958:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
40395e:	72 27                	jb     0x403987
403960:	8d 43 23             	lea    0x23(%ebx),%eax
403963:	3b c3                	cmp    %ebx,%eax
403965:	0f 86 cc 00 00 00    	jbe    0x403a37
40396b:	50                   	push   %eax
40396c:	e8 6d 7f 01 00       	call   0x41b8de
403971:	83 c4 04             	add    $0x4,%esp
403974:	85 c0                	test   %eax,%eax
403976:	0f 84 c5 00 00 00    	je     0x403a41
40397c:	8d 70 23             	lea    0x23(%eax),%esi
40397f:	83 e6 e0             	and    $0xffffffe0,%esi
403982:	89 46 fc             	mov    %eax,-0x4(%esi)
403985:	eb 13                	jmp    0x40399a
403987:	85 db                	test   %ebx,%ebx
403989:	74 0d                	je     0x403998
40398b:	53                   	push   %ebx
40398c:	e8 4d 7f 01 00       	call   0x41b8de
403991:	83 c4 04             	add    $0x4,%esp
403994:	8b f0                	mov    %eax,%esi
403996:	eb 02                	jmp    0x40399a
403998:	33 f6                	xor    %esi,%esi
40399a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40399d:	8b 55 f8             	mov    -0x8(%ebp),%edx
4039a0:	8d 0c 86             	lea    (%esi,%eax,4),%ecx
4039a3:	8b 45 0c             	mov    0xc(%ebp),%eax
4039a6:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4039a9:	8b 00                	mov    (%eax),%eax
4039ab:	89 01                	mov    %eax,(%ecx)
4039ad:	8b 47 04             	mov    0x4(%edi),%eax
4039b0:	8b 0f                	mov    (%edi),%ecx
4039b2:	3b d0                	cmp    %eax,%edx
4039b4:	75 0f                	jne    0x4039c5
4039b6:	2b c1                	sub    %ecx,%eax
4039b8:	50                   	push   %eax
4039b9:	51                   	push   %ecx
4039ba:	56                   	push   %esi
4039bb:	e8 90 9a 01 00       	call   0x41d450
4039c0:	83 c4 0c             	add    $0xc,%esp
4039c3:	eb 23                	jmp    0x4039e8
4039c5:	2b d1                	sub    %ecx,%edx
4039c7:	52                   	push   %edx
4039c8:	51                   	push   %ecx
4039c9:	56                   	push   %esi
4039ca:	e8 81 9a 01 00       	call   0x41d450
4039cf:	8b 47 04             	mov    0x4(%edi),%eax
4039d2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4039d5:	2b c1                	sub    %ecx,%eax
4039d7:	50                   	push   %eax
4039d8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4039db:	51                   	push   %ecx
4039dc:	83 c0 04             	add    $0x4,%eax
4039df:	50                   	push   %eax
4039e0:	e8 6b 9a 01 00       	call   0x41d450
4039e5:	83 c4 18             	add    $0x18,%esp
4039e8:	8b 07                	mov    (%edi),%eax
4039ea:	85 c0                	test   %eax,%eax
4039ec:	74 2c                	je     0x403a1a
4039ee:	8b 4f 08             	mov    0x8(%edi),%ecx
4039f1:	2b c8                	sub    %eax,%ecx
4039f3:	83 e1 fc             	and    $0xfffffffc,%ecx
4039f6:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4039fc:	72 12                	jb     0x403a10
4039fe:	8b 50 fc             	mov    -0x4(%eax),%edx
403a01:	83 c1 23             	add    $0x23,%ecx
403a04:	2b c2                	sub    %edx,%eax
403a06:	83 c0 fc             	add    $0xfffffffc,%eax
403a09:	83 f8 1f             	cmp    $0x1f,%eax
403a0c:	77 33                	ja     0x403a41
403a0e:	8b c2                	mov    %edx,%eax
403a10:	51                   	push   %ecx
403a11:	50                   	push   %eax
403a12:	e8 f7 7e 01 00       	call   0x41b90e
403a17:	83 c4 08             	add    $0x8,%esp
403a1a:	8b 45 f4             	mov    -0xc(%ebp),%eax
403a1d:	89 37                	mov    %esi,(%edi)
403a1f:	8d 0c 86             	lea    (%esi,%eax,4),%ecx
403a22:	8b 45 fc             	mov    -0x4(%ebp),%eax
403a25:	89 4f 04             	mov    %ecx,0x4(%edi)
403a28:	8d 0c 33             	lea    (%ebx,%esi,1),%ecx
403a2b:	89 4f 08             	mov    %ecx,0x8(%edi)
403a2e:	5f                   	pop    %edi
403a2f:	5e                   	pop    %esi
403a30:	5b                   	pop    %ebx
403a31:	8b e5                	mov    %ebp,%esp
403a33:	5d                   	pop    %ebp
403a34:	c2 08 00             	ret    $0x8
403a37:	e8 c4 d7 ff ff       	call   0x401200
403a3c:	e8 8f 01 00 00       	call   0x403bd0
403a41:	e8 39 d0 01 00       	call   0x420a7f
403a46:	cc                   	int3
403a47:	cc                   	int3
403a48:	cc                   	int3
403a49:	cc                   	int3
403a4a:	cc                   	int3
403a4b:	cc                   	int3
403a4c:	cc                   	int3
403a4d:	cc                   	int3
403a4e:	cc                   	int3
403a4f:	cc                   	int3
403a50:	55                   	push   %ebp
403a51:	8b ec                	mov    %esp,%ebp
403a53:	8b 01                	mov    (%ecx),%eax
403a55:	83 ec 08             	sub    $0x8,%esp
403a58:	56                   	push   %esi
403a59:	8b 70 04             	mov    0x4(%eax),%esi
403a5c:	57                   	push   %edi
403a5d:	8b 7d 08             	mov    0x8(%ebp),%edi
403a60:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
403a64:	89 37                	mov    %esi,(%edi)
403a66:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
403a6d:	89 47 08             	mov    %eax,0x8(%edi)
403a70:	75 58                	jne    0x403aca
403a72:	53                   	push   %ebx
403a73:	8b 5d 0c             	mov    0xc(%ebp),%ebx
403a76:	8b 4b 14             	mov    0x14(%ebx),%ecx
403a79:	8b 43 10             	mov    0x10(%ebx),%eax
403a7c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
403a7f:	89 45 fc             	mov    %eax,-0x4(%ebp)
403a82:	89 37                	mov    %esi,(%edi)
403a84:	8b c3                	mov    %ebx,%eax
403a86:	83 f9 08             	cmp    $0x8,%ecx
403a89:	72 02                	jb     0x403a8d
403a8b:	8b 03                	mov    (%ebx),%eax
403a8d:	83 7e 24 08          	cmpl   $0x8,0x24(%esi)
403a91:	8d 4e 10             	lea    0x10(%esi),%ecx
403a94:	72 03                	jb     0x403a99
403a96:	8b 4e 10             	mov    0x10(%esi),%ecx
403a99:	ff 75 fc             	push   -0x4(%ebp)
403a9c:	8b 56 20             	mov    0x20(%esi),%edx
403a9f:	50                   	push   %eax
403aa0:	e8 fb e9 ff ff       	call   0x4024a0
403aa5:	83 c4 08             	add    $0x8,%esp
403aa8:	85 c0                	test   %eax,%eax
403aaa:	79 07                	jns    0x403ab3
403aac:	8b 76 08             	mov    0x8(%esi),%esi
403aaf:	33 c0                	xor    %eax,%eax
403ab1:	eb 0a                	jmp    0x403abd
403ab3:	89 77 08             	mov    %esi,0x8(%edi)
403ab6:	b8 01 00 00 00       	mov    $0x1,%eax
403abb:	8b 36                	mov    (%esi),%esi
403abd:	8b 4d f8             	mov    -0x8(%ebp),%ecx
403ac0:	89 47 04             	mov    %eax,0x4(%edi)
403ac3:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
403ac7:	74 b9                	je     0x403a82
403ac9:	5b                   	pop    %ebx
403aca:	8b c7                	mov    %edi,%eax
403acc:	5f                   	pop    %edi
403acd:	5e                   	pop    %esi
403ace:	8b e5                	mov    %ebp,%esp
403ad0:	5d                   	pop    %ebp
403ad1:	c2 08 00             	ret    $0x8
403ad4:	cc                   	int3
403ad5:	cc                   	int3
403ad6:	cc                   	int3
403ad7:	cc                   	int3
403ad8:	cc                   	int3
403ad9:	cc                   	int3
403ada:	cc                   	int3
403adb:	cc                   	int3
403adc:	cc                   	int3
403add:	cc                   	int3
403ade:	cc                   	int3
403adf:	cc                   	int3
403ae0:	55                   	push   %ebp
403ae1:	8b ec                	mov    %esp,%ebp
403ae3:	51                   	push   %ecx
403ae4:	8b 45 08             	mov    0x8(%ebp),%eax
403ae7:	53                   	push   %ebx
403ae8:	56                   	push   %esi
403ae9:	8b 75 0c             	mov    0xc(%ebp),%esi
403aec:	8b d9                	mov    %ecx,%ebx
403aee:	89 45 fc             	mov    %eax,-0x4(%ebp)
403af1:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
403af5:	75 2d                	jne    0x403b24
403af7:	57                   	push   %edi
403af8:	ff 76 08             	push   0x8(%esi)
403afb:	8b cb                	mov    %ebx,%ecx
403afd:	50                   	push   %eax
403afe:	e8 dd ff ff ff       	call   0x403ae0
403b03:	8b fe                	mov    %esi,%edi
403b05:	8b 36                	mov    (%esi),%esi
403b07:	8d 4f 10             	lea    0x10(%edi),%ecx
403b0a:	e8 21 00 00 00       	call   0x403b30
403b0f:	6a 34                	push   $0x34
403b11:	57                   	push   %edi
403b12:	e8 f7 7d 01 00       	call   0x41b90e
403b17:	8b 45 fc             	mov    -0x4(%ebp),%eax
403b1a:	83 c4 08             	add    $0x8,%esp
403b1d:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
403b21:	74 d5                	je     0x403af8
403b23:	5f                   	pop    %edi
403b24:	5e                   	pop    %esi
403b25:	5b                   	pop    %ebx
403b26:	8b e5                	mov    %ebp,%esp
403b28:	5d                   	pop    %ebp
403b29:	c2 08 00             	ret    $0x8
403b2c:	cc                   	int3
403b2d:	cc                   	int3
403b2e:	cc                   	int3
403b2f:	cc                   	int3
403b30:	56                   	push   %esi
403b31:	8b f1                	mov    %ecx,%esi
403b33:	8b 46 18             	mov    0x18(%esi),%eax
403b36:	85 c0                	test   %eax,%eax
403b38:	74 41                	je     0x403b7b
403b3a:	8b 4e 20             	mov    0x20(%esi),%ecx
403b3d:	2b c8                	sub    %eax,%ecx
403b3f:	83 e1 fc             	and    $0xfffffffc,%ecx
403b42:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
403b48:	72 12                	jb     0x403b5c
403b4a:	8b 50 fc             	mov    -0x4(%eax),%edx
403b4d:	83 c1 23             	add    $0x23,%ecx
403b50:	2b c2                	sub    %edx,%eax
403b52:	83 c0 fc             	add    $0xfffffffc,%eax
403b55:	83 f8 1f             	cmp    $0x1f,%eax
403b58:	77 6b                	ja     0x403bc5
403b5a:	8b c2                	mov    %edx,%eax
403b5c:	51                   	push   %ecx
403b5d:	50                   	push   %eax
403b5e:	e8 ab 7d 01 00       	call   0x41b90e
403b63:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
403b6a:	83 c4 08             	add    $0x8,%esp
403b6d:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
403b74:	c7 46 20 00 00 00 00 	movl   $0x0,0x20(%esi)
403b7b:	8b 4e 14             	mov    0x14(%esi),%ecx
403b7e:	83 f9 08             	cmp    $0x8,%ecx
403b81:	72 2d                	jb     0x403bb0
403b83:	8b 06                	mov    (%esi),%eax
403b85:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
403b8c:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
403b92:	72 12                	jb     0x403ba6
403b94:	8b 50 fc             	mov    -0x4(%eax),%edx
403b97:	83 c1 23             	add    $0x23,%ecx
403b9a:	2b c2                	sub    %edx,%eax
403b9c:	83 c0 fc             	add    $0xfffffffc,%eax
403b9f:	83 f8 1f             	cmp    $0x1f,%eax
403ba2:	77 21                	ja     0x403bc5
403ba4:	8b c2                	mov    %edx,%eax
403ba6:	51                   	push   %ecx
403ba7:	50                   	push   %eax
403ba8:	e8 61 7d 01 00       	call   0x41b90e
403bad:	83 c4 08             	add    $0x8,%esp
403bb0:	33 c0                	xor    %eax,%eax
403bb2:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
403bb9:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
403bc0:	66 89 06             	mov    %ax,(%esi)
403bc3:	5e                   	pop    %esi
403bc4:	c3                   	ret
403bc5:	e8 b5 ce 01 00       	call   0x420a7f
403bca:	cc                   	int3
403bcb:	cc                   	int3
403bcc:	cc                   	int3
403bcd:	cc                   	int3
403bce:	cc                   	int3
403bcf:	cc                   	int3
403bd0:	68 c4 da 44 00       	push   $0x44dac4
403bd5:	e8 60 72 01 00       	call   0x41ae3a
403bda:	cc                   	int3
403bdb:	cc                   	int3
403bdc:	cc                   	int3
403bdd:	cc                   	int3
403bde:	cc                   	int3
403bdf:	cc                   	int3
403be0:	b8 98 61 45 00       	mov    $0x456198,%eax
403be5:	c3                   	ret
403be6:	cc                   	int3
403be7:	cc                   	int3
403be8:	cc                   	int3
403be9:	cc                   	int3
403bea:	cc                   	int3
403beb:	cc                   	int3
403bec:	cc                   	int3
403bed:	cc                   	int3
403bee:	cc                   	int3
403bef:	cc                   	int3
403bf0:	55                   	push   %ebp
403bf1:	8b ec                	mov    %esp,%ebp
403bf3:	83 e4 f8             	and    $0xfffffff8,%esp
403bf6:	ff 75 10             	push   0x10(%ebp)
403bf9:	6a 00                	push   $0x0
403bfb:	ff 75 08             	push   0x8(%ebp)
403bfe:	52                   	push   %edx
403bff:	51                   	push   %ecx
403c00:	e8 db ff ff ff       	call   0x403be0
403c05:	ff 70 04             	push   0x4(%eax)
403c08:	ff 30                	push   (%eax)
403c0a:	e8 fb 0b 02 00       	call   0x42480a
403c0f:	83 c9 ff             	or     $0xffffffff,%ecx
403c12:	83 c4 1c             	add    $0x1c,%esp
403c15:	85 c0                	test   %eax,%eax
403c17:	0f 48 c1             	cmovs  %ecx,%eax
403c1a:	8b e5                	mov    %ebp,%esp
403c1c:	5d                   	pop    %ebp
403c1d:	c3                   	ret
403c1e:	cc                   	int3
403c1f:	cc                   	int3
403c20:	55                   	push   %ebp
403c21:	8b ec                	mov    %esp,%ebp
403c23:	51                   	push   %ecx
403c24:	8b 4d 08             	mov    0x8(%ebp),%ecx
403c27:	8d 45 14             	lea    0x14(%ebp),%eax
403c2a:	8b 55 0c             	mov    0xc(%ebp),%edx
403c2d:	50                   	push   %eax
403c2e:	51                   	push   %ecx
403c2f:	ff 75 10             	push   0x10(%ebp)
403c32:	e8 b9 ff ff ff       	call   0x403bf0
403c37:	83 c4 0c             	add    $0xc,%esp
403c3a:	59                   	pop    %ecx
403c3b:	5d                   	pop    %ebp
403c3c:	c3                   	ret
403c3d:	cc                   	int3
403c3e:	cc                   	int3
403c3f:	cc                   	int3
403c40:	55                   	push   %ebp
403c41:	8b ec                	mov    %esp,%ebp
403c43:	83 e4 f8             	and    $0xfffffff8,%esp
403c46:	ff 75 18             	push   0x18(%ebp)
403c49:	ff 75 14             	push   0x14(%ebp)
403c4c:	ff 75 10             	push   0x10(%ebp)
403c4f:	ff 75 0c             	push   0xc(%ebp)
403c52:	ff 75 08             	push   0x8(%ebp)
403c55:	e8 86 ff ff ff       	call   0x403be0
403c5a:	ff 70 04             	push   0x4(%eax)
403c5d:	ff 30                	push   (%eax)
403c5f:	e8 65 0b 02 00       	call   0x4247c9
403c64:	83 c9 ff             	or     $0xffffffff,%ecx
403c67:	83 c4 1c             	add    $0x1c,%esp
403c6a:	85 c0                	test   %eax,%eax
403c6c:	0f 48 c1             	cmovs  %ecx,%eax
403c6f:	8b e5                	mov    %ebp,%esp
403c71:	5d                   	pop    %ebp
403c72:	c3                   	ret
403c73:	cc                   	int3
403c74:	cc                   	int3
403c75:	cc                   	int3
403c76:	cc                   	int3
403c77:	cc                   	int3
403c78:	cc                   	int3
403c79:	cc                   	int3
403c7a:	cc                   	int3
403c7b:	cc                   	int3
403c7c:	cc                   	int3
403c7d:	cc                   	int3
403c7e:	cc                   	int3
403c7f:	cc                   	int3
403c80:	55                   	push   %ebp
403c81:	8b ec                	mov    %esp,%ebp
403c83:	51                   	push   %ecx
403c84:	8b 45 08             	mov    0x8(%ebp),%eax