403984:	8b ec                	mov    %esp,%ebp
403986:	8b 4d 14             	mov    0x14(%ebp),%ecx
403989:	8b 45 0c             	mov    0xc(%ebp),%eax
40398c:	89 01                	mov    %eax,(%ecx)
40398e:	8b 4d 20             	mov    0x20(%ebp),%ecx
403991:	8b 45 18             	mov    0x18(%ebp),%eax
403994:	6a 03                	push   $0x3
403996:	89 01                	mov    %eax,(%ecx)
403998:	58                   	pop    %eax
403999:	5d                   	pop    %ebp
40399a:	c2 1c 00             	ret    $0x1c
40399d:	55                   	push   %ebp
40399e:	8b ec                	mov    %esp,%ebp
4039a0:	8b 4d 14             	mov    0x14(%ebp),%ecx
4039a3:	8b 45 0c             	mov    0xc(%ebp),%eax
4039a6:	89 01                	mov    %eax,(%ecx)
4039a8:	33 c0                	xor    %eax,%eax
4039aa:	5d                   	pop    %ebp
4039ab:	c2 10 00             	ret    $0x10
4039ae:	55                   	push   %ebp
4039af:	8b ec                	mov    %esp,%ebp
4039b1:	56                   	push   %esi
4039b2:	ff 75 08             	push   0x8(%ebp)
4039b5:	8b f1                	mov    %ecx,%esi
4039b7:	e8 54 fb ff ff       	call   0x403510
4039bc:	59                   	pop    %ecx
4039bd:	50                   	push   %eax
4039be:	8b ce                	mov    %esi,%ecx
4039c0:	e8 46 fe ff ff       	call   0x40380b
4039c5:	5e                   	pop    %esi
4039c6:	5d                   	pop    %ebp
4039c7:	c2 04 00             	ret    $0x4
4039ca:	6a 30                	push   $0x30
4039cc:	b8 a8 7b 41 00       	mov    $0x417ba8,%eax
4039d1:	e8 56 24 00 00       	call   0x405e2c
4039d6:	8b f9                	mov    %ecx,%edi
4039d8:	8b 5d 08             	mov    0x8(%ebp),%ebx
4039db:	83 ce ff             	or     $0xffffffff,%esi
4039de:	3b de                	cmp    %esi,%ebx
4039e0:	75 07                	jne    0x4039e9
4039e2:	33 c0                	xor    %eax,%eax
4039e4:	e9 62 01 00 00       	jmp    0x403b4b
4039e9:	8b 47 20             	mov    0x20(%edi),%eax
4039ec:	8b 08                	mov    (%eax),%ecx
4039ee:	85 c9                	test   %ecx,%ecx
4039f0:	74 20                	je     0x403a12
4039f2:	8b 57 30             	mov    0x30(%edi),%edx
4039f5:	8b 02                	mov    (%edx),%eax
4039f7:	03 c1                	add    %ecx,%eax
4039f9:	3b c8                	cmp    %eax,%ecx
4039fb:	73 15                	jae    0x403a12
4039fd:	ff 0a                	decl   (%edx)
4039ff:	8b 57 20             	mov    0x20(%edi),%edx
403a02:	8b 32                	mov    (%edx),%esi
403a04:	8d 4e 01             	lea    0x1(%esi),%ecx
403a07:	89 0a                	mov    %ecx,(%edx)
403a09:	88 1e                	mov    %bl,(%esi)
403a0b:	8b c3                	mov    %ebx,%eax
403a0d:	e9 39 01 00 00       	jmp    0x403b4b
403a12:	83 7f 50 00          	cmpl   $0x0,0x50(%edi)
403a16:	0f 84 2d 01 00 00    	je     0x403b49
403a1c:	8b cf                	mov    %edi,%ecx
403a1e:	e8 23 fe ff ff       	call   0x403846
403a23:	33 c0                	xor    %eax,%eax
403a25:	39 47 40             	cmp    %eax,0x40(%edi)
403a28:	75 13                	jne    0x403a3d
403a2a:	ff 77 50             	push   0x50(%edi)
403a2d:	53                   	push   %ebx
403a2e:	e8 a3 fa ff ff       	call   0x4034d6
403a33:	59                   	pop    %ecx
403a34:	59                   	pop    %ecx
403a35:	84 c0                	test   %al,%al
403a37:	75 d2                	jne    0x403a0b
403a39:	8b de                	mov    %esi,%ebx
403a3b:	eb ce                	jmp    0x403a0b
403a3d:	50                   	push   %eax
403a3e:	6a 08                	push   $0x8
403a40:	8d 4d d8             	lea    -0x28(%ebp),%ecx
403a43:	88 5d cc             	mov    %bl,-0x34(%ebp)
403a46:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
403a4d:	89 45 e8             	mov    %eax,-0x18(%ebp)
403a50:	88 45 d8             	mov    %al,-0x28(%ebp)
403a53:	e8 66 f7 ff ff       	call   0x4031be
403a58:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
403a5c:	8b 45 d8             	mov    -0x28(%ebp),%eax
403a5f:	8b 4d ec             	mov    -0x14(%ebp),%ecx
403a62:	89 45 d0             	mov    %eax,-0x30(%ebp)
403a65:	83 f9 10             	cmp    $0x10,%ecx
403a68:	73 03                	jae    0x403a6d
403a6a:	8d 45 d8             	lea    -0x28(%ebp),%eax
403a6d:	89 45 d4             	mov    %eax,-0x2c(%ebp)
403a70:	83 f9 10             	cmp    $0x10,%ecx
403a73:	73 06                	jae    0x403a7b
403a75:	8d 45 d8             	lea    -0x28(%ebp),%eax
403a78:	89 45 d0             	mov    %eax,-0x30(%ebp)
403a7b:	8b 4f 40             	mov    0x40(%edi),%ecx
403a7e:	8d 45 c8             	lea    -0x38(%ebp),%eax
403a81:	8b 11                	mov    (%ecx),%edx
403a83:	50                   	push   %eax
403a84:	8b 45 e8             	mov    -0x18(%ebp),%eax
403a87:	03 45 d4             	add    -0x2c(%ebp),%eax
403a8a:	50                   	push   %eax
403a8b:	ff 75 d0             	push   -0x30(%ebp)
403a8e:	8d 45 c4             	lea    -0x3c(%ebp),%eax
403a91:	50                   	push   %eax
403a92:	8d 45 cd             	lea    -0x33(%ebp),%eax
403a95:	50                   	push   %eax
403a96:	8d 45 cc             	lea    -0x34(%ebp),%eax
403a99:	50                   	push   %eax
403a9a:	8d 47 48             	lea    0x48(%edi),%eax
403a9d:	50                   	push   %eax
403a9e:	ff 52 1c             	call   *0x1c(%edx)
403aa1:	8b 5d 08             	mov    0x8(%ebp),%ebx
403aa4:	85 c0                	test   %eax,%eax
403aa6:	0f 88 95 00 00 00    	js     0x403b41
403aac:	83 f8 01             	cmp    $0x1,%eax
403aaf:	7f 78                	jg     0x403b29
403ab1:	8b 4d ec             	mov    -0x14(%ebp),%ecx
403ab4:	8b 45 d8             	mov    -0x28(%ebp),%eax
403ab7:	89 45 d0             	mov    %eax,-0x30(%ebp)
403aba:	83 f9 10             	cmp    $0x10,%ecx
403abd:	72 05                	jb     0x403ac4
403abf:	89 45 d4             	mov    %eax,-0x2c(%ebp)
403ac2:	eb 06                	jmp    0x403aca
403ac4:	8d 55 d8             	lea    -0x28(%ebp),%edx
403ac7:	89 55 d4             	mov    %edx,-0x2c(%ebp)
403aca:	8b 55 c8             	mov    -0x38(%ebp),%edx
403acd:	2b 55 d4             	sub    -0x2c(%ebp),%edx
403ad0:	89 55 d4             	mov    %edx,-0x2c(%ebp)
403ad3:	74 27                	je     0x403afc
403ad5:	83 f9 10             	cmp    $0x10,%ecx
403ad8:	73 03                	jae    0x403add
403ada:	8d 45 d8             	lea    -0x28(%ebp),%eax
403add:	ff 77 50             	push   0x50(%edi)
403ae0:	52                   	push   %edx
403ae1:	6a 01                	push   $0x1
403ae3:	50                   	push   %eax
403ae4:	e8 fb 30 00 00       	call   0x406be4
403ae9:	8b 55 d4             	mov    -0x2c(%ebp),%edx
403aec:	83 c4 10             	add    $0x10,%esp
403aef:	3b d0                	cmp    %eax,%edx
403af1:	75 4e                	jne    0x403b41
403af3:	8b 45 d8             	mov    -0x28(%ebp),%eax
403af6:	8b 4d ec             	mov    -0x14(%ebp),%ecx
403af9:	89 45 d0             	mov    %eax,-0x30(%ebp)
403afc:	8d 5d cc             	lea    -0x34(%ebp),%ebx
403aff:	39 5d c4             	cmp    %ebx,-0x3c(%ebp)
403b02:	8b 5d 08             	mov    0x8(%ebp),%ebx
403b05:	c6 47 45 01          	movb   $0x1,0x45(%edi)
403b09:	75 34                	jne    0x403b3f
403b0b:	85 d2                	test   %edx,%edx
403b0d:	0f 85 52 ff ff ff    	jne    0x403a65
403b13:	83 7d e8 20          	cmpl   $0x20,-0x18(%ebp)
403b17:	73 28                	jae    0x403b41
403b19:	52                   	push   %edx
403b1a:	6a 08                	push   $0x8
403b1c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
403b1f:	e8 89 fd ff ff       	call   0x4038ad
403b24:	e9 33 ff ff ff       	jmp    0x403a5c
403b29:	83 f8 03             	cmp    $0x3,%eax
403b2c:	75 13                	jne    0x403b41
403b2e:	ff 77 50             	push   0x50(%edi)
403b31:	ff 75 cc             	push   -0x34(%ebp)
403b34:	e8 9d f9 ff ff       	call   0x4034d6
403b39:	59                   	pop    %ecx
403b3a:	59                   	pop    %ecx
403b3b:	84 c0                	test   %al,%al
403b3d:	74 02                	je     0x403b41
403b3f:	8b f3                	mov    %ebx,%esi
403b41:	8d 4d d8             	lea    -0x28(%ebp),%ecx
403b44:	e8 53 d6 ff ff       	call   0x40119c
403b49:	8b c6                	mov    %esi,%eax
403b4b:	e8 9a 22 00 00       	call   0x405dea
403b50:	c2 04 00             	ret    $0x4
403b53:	55                   	push   %ebp
403b54:	8b ec                	mov    %esp,%ebp
403b56:	53                   	push   %ebx
403b57:	8b 5d 08             	mov    0x8(%ebp),%ebx
403b5a:	56                   	push   %esi
403b5b:	8b f1                	mov    %ecx,%esi
403b5d:	8b 46 1c             	mov    0x1c(%esi),%eax
403b60:	8b 08                	mov    (%eax),%ecx
403b62:	85 c9                	test   %ecx,%ecx
403b64:	74 29                	je     0x403b8f
403b66:	8b 46 0c             	mov    0xc(%esi),%eax
403b69:	39 08                	cmp    %ecx,(%eax)
403b6b:	73 22                	jae    0x403b8f
403b6d:	83 fb ff             	cmp    $0xffffffff,%ebx
403b70:	74 08                	je     0x403b7a
403b72:	0f b6 41 ff          	movzbl -0x1(%ecx),%eax
403b76:	3b c3                	cmp    %ebx,%eax
403b78:	75 15                	jne    0x403b8f
403b7a:	8b 46 2c             	mov    0x2c(%esi),%eax
403b7d:	ff 00                	incl   (%eax)
403b7f:	8b 46 1c             	mov    0x1c(%esi),%eax
403b82:	ff 08                	decl   (%eax)
403b84:	8d 43 01             	lea    0x1(%ebx),%eax
403b87:	f7 d8                	neg    %eax
403b89:	1b c0                	sbb    %eax,%eax
403b8b:	23 c3                	and    %ebx,%eax
403b8d:	eb 42                	jmp    0x403bd1
403b8f:	83 7e 50 00          	cmpl   $0x0,0x50(%esi)
403b93:	74 39                	je     0x403bce
403b95:	83 fb ff             	cmp    $0xffffffff,%ebx
403b98:	74 34                	je     0x403bce
403b9a:	83 7e 40 00          	cmpl   $0x0,0x40(%esi)
403b9e:	75 19                	jne    0x403bb9
403ba0:	ff 76 50             	push   0x50(%esi)
403ba3:	8d 45 0b             	lea    0xb(%ebp),%eax
403ba6:	50                   	push   %eax
403ba7:	88 5d 0b             	mov    %bl,0xb(%ebp)
403baa:	e8 43 f9 ff ff       	call   0x4034f2
403baf:	59                   	pop    %ecx
403bb0:	59                   	pop    %ecx
403bb1:	84 c0                	test   %al,%al
403bb3:	74 04                	je     0x403bb9
403bb5:	8b c3                	mov    %ebx,%eax
403bb7:	eb 18                	jmp    0x403bd1
403bb9:	8b 46 1c             	mov    0x1c(%esi),%eax
403bbc:	8d 4e 44             	lea    0x44(%esi),%ecx
403bbf:	39 08                	cmp    %ecx,(%eax)
403bc1:	74 0b                	je     0x403bce
403bc3:	88 19                	mov    %bl,(%ecx)
403bc5:	8b ce                	mov    %esi,%ecx
403bc7:	e8 9b fc ff ff       	call   0x403867
403bcc:	eb e7                	jmp    0x403bb5
403bce:	83 c8 ff             	or     $0xffffffff,%eax
403bd1:	5e                   	pop    %esi
403bd2:	5b                   	pop    %ebx
403bd3:	5d                   	pop    %ebp
403bd4:	c2 04 00             	ret    $0x4
403bd7:	55                   	push   %ebp
403bd8:	8b ec                	mov    %esp,%ebp
403bda:	53                   	push   %ebx
403bdb:	56                   	push   %esi
403bdc:	8b f1                	mov    %ecx,%esi
403bde:	57                   	push   %edi
403bdf:	8b 56 1c             	mov    0x1c(%esi),%edx
403be2:	8d 46 44             	lea    0x44(%esi),%eax
403be5:	39 02                	cmp    %eax,(%edx)
403be7:	75 1a                	jne    0x403c03
403be9:	83 7d 14 01          	cmpl   $0x1,0x14(%ebp)
403bed:	75 14                	jne    0x403c03
403bef:	83 7e 40 00          	cmpl   $0x0,0x40(%esi)
403bf3:	75 0e                	jne    0x403c03
403bf5:	8b 7d 0c             	mov    0xc(%ebp),%edi
403bf8:	8b 5d 10             	mov    0x10(%ebp),%ebx
403bfb:	83 c7 ff             	add    $0xffffffff,%edi
403bfe:	83 d3 ff             	adc    $0xffffffff,%ebx
403c01:	eb 06                	jmp    0x403c09
403c03:	8b 5d 10             	mov    0x10(%ebp),%ebx
403c06:	8b 7d 0c             	mov    0xc(%ebp),%edi
403c09:	83 7e 50 00          	cmpl   $0x0,0x50(%esi)
403c0d:	74 5d                	je     0x403c6c
403c0f:	e8 36 fa ff ff       	call   0x40364a
403c14:	84 c0                	test   %al,%al
403c16:	74 54                	je     0x403c6c
403c18:	8b c7                	mov    %edi,%eax
403c1a:	0b c3                	or     %ebx,%eax
403c1c:	75 06                	jne    0x403c24
403c1e:	83 7d 14 01          	cmpl   $0x1,0x14(%ebp)
403c22:	74 14                	je     0x403c38
403c24:	ff 75 14             	push   0x14(%ebp)
403c27:	53                   	push   %ebx
403c28:	57                   	push   %edi
403c29:	ff 76 50             	push   0x50(%esi)
403c2c:	e8 29 2d 00 00       	call   0x40695a
403c31:	83 c4 10             	add    $0x10,%esp
403c34:	85 c0                	test   %eax,%eax
403c36:	75 34                	jne    0x403c6c
403c38:	8d 45 0c             	lea    0xc(%ebp),%eax
403c3b:	50                   	push   %eax
403c3c:	ff 76 50             	push   0x50(%esi)
403c3f:	e8 7e 2b 00 00       	call   0x4067c2
403c44:	59                   	pop    %ecx
403c45:	59                   	pop    %ecx
403c46:	85 c0                	test   %eax,%eax
403c48:	75 22                	jne    0x403c6c
403c4a:	8b ce                	mov    %esi,%ecx
403c4c:	e8 f5 fb ff ff       	call   0x403846
403c51:	8b 45 08             	mov    0x8(%ebp),%eax
403c54:	33 c9                	xor    %ecx,%ecx
403c56:	89 08                	mov    %ecx,(%eax)
403c58:	89 48 04             	mov    %ecx,0x4(%eax)
403c5b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
403c5e:	89 48 08             	mov    %ecx,0x8(%eax)
403c61:	8b 4d 10             	mov    0x10(%ebp),%ecx
403c64:	89 48 0c             	mov    %ecx,0xc(%eax)
403c67:	8b 4e 48             	mov    0x48(%esi),%ecx
403c6a:	eb 1c                	jmp    0x403c88
403c6c:	8b 45 08             	mov    0x8(%ebp),%eax
403c6f:	8b 0d 58 a1 41 00    	mov    0x41a158,%ecx
403c75:	89 08                	mov    %ecx,(%eax)
403c77:	8b 0d 5c a1 41 00    	mov    0x41a15c,%ecx
403c7d:	89 48 04             	mov    %ecx,0x4(%eax)
403c80:	33 c9                	xor    %ecx,%ecx
403c82:	89 48 08             	mov    %ecx,0x8(%eax)
403c85:	89 48 0c             	mov    %ecx,0xc(%eax)
403c88:	5f                   	pop    %edi
403c89:	5e                   	pop    %esi
403c8a:	89 48 10             	mov    %ecx,0x10(%eax)
403c8d:	5b                   	pop    %ebx
403c8e:	5d                   	pop    %ebp
403c8f:	c2 14 00             	ret    $0x14
403c92:	55                   	push   %ebp
403c93:	8b ec                	mov    %esp,%ebp
403c95:	51                   	push   %ecx
403c96:	51                   	push   %ecx
403c97:	8b 45 14             	mov    0x14(%ebp),%eax
403c9a:	53                   	push   %ebx
403c9b:	8b 5d 10             	mov    0x10(%ebp),%ebx
403c9e:	56                   	push   %esi
403c9f:	8b f1                	mov    %ecx,%esi
403ca1:	89 45 f8             	mov    %eax,-0x8(%ebp)
403ca4:	83 7e 50 00          	cmpl   $0x0,0x50(%esi)
403ca8:	8b 45 18             	mov    0x18(%ebp),%eax
403cab:	57                   	push   %edi
403cac:	8b 7d 0c             	mov    0xc(%ebp),%edi
403caf:	89 45 fc             	mov    %eax,-0x4(%ebp)
403cb2:	74 6e                	je     0x403d22
403cb4:	e8 91 f9 ff ff       	call   0x40364a
403cb9:	84 c0                	test   %al,%al
403cbb:	74 65                	je     0x403d22
403cbd:	8d 45 f8             	lea    -0x8(%ebp),%eax
403cc0:	50                   	push   %eax
403cc1:	ff 76 50             	push   0x50(%esi)
403cc4:	e8 58 2c 00 00       	call   0x406921
403cc9:	59                   	pop    %ecx
403cca:	59                   	pop    %ecx
403ccb:	85 c0                	test   %eax,%eax
403ccd:	75 53                	jne    0x403d22
403ccf:	8b c7                	mov    %edi,%eax
403cd1:	0b c3                	or     %ebx,%eax
403cd3:	74 13                	je     0x403ce8
403cd5:	6a 01                	push   $0x1
403cd7:	53                   	push   %ebx
403cd8:	57                   	push   %edi
403cd9:	ff 76 50             	push   0x50(%esi)
403cdc:	e8 79 2c 00 00       	call   0x40695a
403ce1:	83 c4 10             	add    $0x10,%esp
403ce4:	85 c0                	test   %eax,%eax
403ce6:	75 3a                	jne    0x403d22
403ce8:	8d 45 f8             	lea    -0x8(%ebp),%eax
403ceb:	50                   	push   %eax
403cec:	ff 76 50             	push   0x50(%esi)
403cef:	e8 ce 2a 00 00       	call   0x4067c2
403cf4:	59                   	pop    %ecx
403cf5:	59                   	pop    %ecx
403cf6:	85 c0                	test   %eax,%eax
403cf8:	75 28                	jne    0x403d22