41e8cb:	33 c0                	xor    %eax,%eax
41e8cd:	83 ff 01             	cmp    $0x1,%edi
41e8d0:	5f                   	pop    %edi
41e8d1:	5e                   	pop    %esi
41e8d2:	0f 9c c0             	setl   %al
41e8d5:	5d                   	pop    %ebp
41e8d6:	c2 04 00             	ret    $0x4
41e8d9:	55                   	push   %ebp
41e8da:	8b ec                	mov    %esp,%ebp
41e8dc:	51                   	push   %ecx
41e8dd:	53                   	push   %ebx
41e8de:	56                   	push   %esi
41e8df:	8b f1                	mov    %ecx,%esi
41e8e1:	57                   	push   %edi
41e8e2:	33 ff                	xor    %edi,%edi
41e8e4:	8b 86 98 00 00 00    	mov    0x98(%esi),%eax
41e8ea:	3b c7                	cmp    %edi,%eax
41e8ec:	0f 84 8d 00 00 00    	je     0x41e97f
41e8f2:	8b 1d 28 97 43 00    	mov    0x439728,%ebx
41e8f8:	50                   	push   %eax
41e8f9:	ff d3                	call   *%ebx
41e8fb:	0f b7 48 02          	movzwl 0x2(%eax),%ecx
41e8ff:	ff 75 08             	push   0x8(%ebp)
41e902:	03 c8                	add    %eax,%ecx
41e904:	51                   	push   %ecx
41e905:	ff 15 08 97 43 00    	call   *0x439708
41e90b:	85 c0                	test   %eax,%eax
41e90d:	75 70                	jne    0x41e97f
41e90f:	8d 45 fc             	lea    -0x4(%ebp),%eax
41e912:	57                   	push   %edi
41e913:	50                   	push   %eax
41e914:	ff 75 08             	push   0x8(%ebp)
41e917:	e8 88 47 ff ff       	call   0x4130a4
41e91c:	85 c0                	test   %eax,%eax
41e91e:	74 5f                	je     0x41e97f
41e920:	8b 86 94 00 00 00    	mov    0x94(%esi),%eax
41e926:	3b c7                	cmp    %edi,%eax
41e928:	74 06                	je     0x41e930
41e92a:	50                   	push   %eax
41e92b:	e8 2c 18 00 00       	call   0x42015c
41e930:	57                   	push   %edi
41e931:	57                   	push   %edi
41e932:	57                   	push   %edi
41e933:	ff 75 08             	push   0x8(%ebp)
41e936:	ff 75 fc             	push   -0x4(%ebp)
41e939:	57                   	push   %edi
41e93a:	e8 5f 47 ff ff       	call   0x41309e
41e93f:	50                   	push   %eax
41e940:	6a 42                	push   $0x42
41e942:	ff 15 00 97 43 00    	call   *0x439700
41e948:	50                   	push   %eax
41e949:	89 86 94 00 00 00    	mov    %eax,0x94(%esi)
41e94f:	ff d3                	call   *%ebx
41e951:	6a 02                	push   $0x2
41e953:	57                   	push   %edi
41e954:	50                   	push   %eax
41e955:	ff 75 08             	push   0x8(%ebp)
41e958:	ff 75 fc             	push   -0x4(%ebp)
41e95b:	57                   	push   %edi
41e95c:	e8 3d 47 ff ff       	call   0x41309e
41e961:	83 f8 01             	cmp    $0x1,%eax
41e964:	74 11                	je     0x41e977
41e966:	ff b6 94 00 00 00    	push   0x94(%esi)
41e96c:	e8 eb 17 00 00       	call   0x42015c
41e971:	89 be 94 00 00 00    	mov    %edi,0x94(%esi)
41e977:	ff 75 fc             	push   -0x4(%ebp)
41e97a:	e8 19 47 ff ff       	call   0x413098
41e97f:	5f                   	pop    %edi
41e980:	5e                   	pop    %esi
41e981:	5b                   	pop    %ebx
41e982:	c9                   	leave
41e983:	c2 04 00             	ret    $0x4
41e986:	b8 fc 16 43 00       	mov    $0x4316fc,%eax
41e98b:	c3                   	ret
41e98c:	56                   	push   %esi
41e98d:	8b f1                	mov    %ecx,%esi
41e98f:	e8 f2 ff ff ff       	call   0x41e986
41e994:	8b 00                	mov    (%eax),%eax
41e996:	89 06                	mov    %eax,(%esi)
41e998:	8b c6                	mov    %esi,%eax
41e99a:	5e                   	pop    %esi
41e99b:	c3                   	ret
41e99c:	56                   	push   %esi
41e99d:	8b 74 24 08          	mov    0x8(%esp),%esi
41e9a1:	57                   	push   %edi
41e9a2:	8b f9                	mov    %ecx,%edi
41e9a4:	85 f6                	test   %esi,%esi
41e9a6:	75 09                	jne    0x41e9b1
41e9a8:	e8 d9 ff ff ff       	call   0x41e986
41e9ad:	8b 00                	mov    (%eax),%eax
41e9af:	eb 1e                	jmp    0x41e9cf
41e9b1:	8d 46 0d             	lea    0xd(%esi),%eax
41e9b4:	50                   	push   %eax
41e9b5:	e8 47 e3 ff ff       	call   0x41cd01
41e9ba:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
41e9c0:	80 64 30 0c 00       	andb   $0x0,0xc(%eax,%esi,1)
41e9c5:	89 70 04             	mov    %esi,0x4(%eax)
41e9c8:	89 70 08             	mov    %esi,0x8(%eax)
41e9cb:	59                   	pop    %ecx
41e9cc:	83 c0 0c             	add    $0xc,%eax
41e9cf:	89 07                	mov    %eax,(%edi)
41e9d1:	5f                   	pop    %edi
41e9d2:	5e                   	pop    %esi
41e9d3:	c2 04 00             	ret    $0x4
41e9d6:	56                   	push   %esi
41e9d7:	8b f1                	mov    %ecx,%esi
41e9d9:	8b 06                	mov    (%esi),%eax
41e9db:	83 c0 f4             	add    $0xfffffff4,%eax
41e9de:	3b 05 f8 16 43 00    	cmp    0x4316f8,%eax
41e9e4:	74 20                	je     0x41ea06
41e9e6:	50                   	push   %eax
41e9e7:	ff 15 18 97 43 00    	call   *0x439718
41e9ed:	85 c0                	test   %eax,%eax
41e9ef:	7f 0c                	jg     0x41e9fd
41e9f1:	8b 06                	mov    (%esi),%eax
41e9f3:	83 e8 0c             	sub    $0xc,%eax
41e9f6:	50                   	push   %eax
41e9f7:	e8 41 e3 ff ff       	call   0x41cd3d
41e9fc:	59                   	pop    %ecx
41e9fd:	e8 84 ff ff ff       	call   0x41e986
41ea02:	8b 00                	mov    (%eax),%eax
41ea04:	89 06                	mov    %eax,(%esi)
41ea06:	5e                   	pop    %esi
41ea07:	c3                   	ret
41ea08:	56                   	push   %esi
41ea09:	8b 74 24 08          	mov    0x8(%esp),%esi
41ea0d:	3b 35 f8 16 43 00    	cmp    0x4316f8,%esi
41ea13:	74 12                	je     0x41ea27
41ea15:	56                   	push   %esi
41ea16:	ff 15 18 97 43 00    	call   *0x439718
41ea1c:	85 c0                	test   %eax,%eax
41ea1e:	7f 07                	jg     0x41ea27
41ea20:	56                   	push   %esi
41ea21:	e8 17 e3 ff ff       	call   0x41cd3d
41ea26:	59                   	pop    %ecx
41ea27:	5e                   	pop    %esi
41ea28:	c2 04 00             	ret    $0x4
41ea2b:	8b 01                	mov    (%ecx),%eax
41ea2d:	83 78 f8 00          	cmpl   $0x0,-0x8(%eax)
41ea31:	74 15                	je     0x41ea48
41ea33:	83 78 f4 00          	cmpl   $0x0,-0xc(%eax)
41ea37:	7c 05                	jl     0x41ea3e
41ea39:	e9 98 ff ff ff       	jmp    0x41e9d6
41ea3e:	68 00 6c 43 00       	push   $0x436c00
41ea43:	e8 ae 00 00 00       	call   0x41eaf6
41ea48:	c3                   	ret
41ea49:	56                   	push   %esi
41ea4a:	57                   	push   %edi
41ea4b:	8b f9                	mov    %ecx,%edi
41ea4d:	8b 37                	mov    (%edi),%esi
41ea4f:	83 7e f4 01          	cmpl   $0x1,-0xc(%esi)
41ea53:	7e 1f                	jle    0x41ea74
41ea55:	e8 7c ff ff ff       	call   0x41e9d6
41ea5a:	ff 76 f8             	push   -0x8(%esi)
41ea5d:	8b cf                	mov    %edi,%ecx
41ea5f:	e8 38 ff ff ff       	call   0x41e99c
41ea64:	8b 46 f8             	mov    -0x8(%esi),%eax
41ea67:	40                   	inc    %eax
41ea68:	50                   	push   %eax
41ea69:	56                   	push   %esi
41ea6a:	ff 37                	push   (%edi)
41ea6c:	e8 ff d2 fe ff       	call   0x40bd70
41ea71:	83 c4 0c             	add    $0xc,%esp
41ea74:	5f                   	pop    %edi
41ea75:	5e                   	pop    %esi
41ea76:	c3                   	ret
41ea77:	56                   	push   %esi
41ea78:	8b f1                	mov    %ecx,%esi
41ea7a:	57                   	push   %edi
41ea7b:	8b 7c 24 0c          	mov    0xc(%esp),%edi
41ea7f:	8b 06                	mov    (%esi),%eax
41ea81:	83 78 f4 01          	cmpl   $0x1,-0xc(%eax)
41ea85:	7f 05                	jg     0x41ea8c
41ea87:	3b 78 fc             	cmp    -0x4(%eax),%edi
41ea8a:	7e 0f                	jle    0x41ea9b
41ea8c:	8b ce                	mov    %esi,%ecx
41ea8e:	e8 43 ff ff ff       	call   0x41e9d6
41ea93:	57                   	push   %edi
41ea94:	8b ce                	mov    %esi,%ecx
41ea96:	e8 01 ff ff ff       	call   0x41e99c
41ea9b:	5f                   	pop    %edi
41ea9c:	5e                   	pop    %esi
41ea9d:	c2 04 00             	ret    $0x4
41eaa0:	56                   	push   %esi
41eaa1:	8b f1                	mov    %ecx,%esi
41eaa3:	8b 06                	mov    (%esi),%eax
41eaa5:	83 c0 f4             	add    $0xfffffff4,%eax
41eaa8:	3b 05 f8 16 43 00    	cmp    0x4316f8,%eax
41eaae:	74 17                	je     0x41eac7
41eab0:	50                   	push   %eax
41eab1:	ff 15 18 97 43 00    	call   *0x439718
41eab7:	85 c0                	test   %eax,%eax
41eab9:	7f 0c                	jg     0x41eac7
41eabb:	8b 06                	mov    (%esi),%eax
41eabd:	83 e8 0c             	sub    $0xc,%eax
41eac0:	50                   	push   %eax
41eac1:	e8 77 e2 ff ff       	call   0x41cd3d
41eac6:	59                   	pop    %ecx
41eac7:	5e                   	pop    %esi
41eac8:	c3                   	ret
41eac9:	56                   	push   %esi
41eaca:	57                   	push   %edi
41eacb:	8b 7c 24 0c          	mov    0xc(%esp),%edi
41eacf:	8b f1                	mov    %ecx,%esi
41ead1:	57                   	push   %edi
41ead2:	e8 a0 ff ff ff       	call   0x41ea77
41ead7:	57                   	push   %edi
41ead8:	ff 74 24 14          	push   0x14(%esp)
41eadc:	ff 36                	push   (%esi)
41eade:	e8 8d d2 fe ff       	call   0x40bd70
41eae3:	8b 06                	mov    (%esi),%eax
41eae5:	83 c4 0c             	add    $0xc,%esp
41eae8:	89 78 f8             	mov    %edi,-0x8(%eax)
41eaeb:	8b 06                	mov    (%esi),%eax
41eaed:	80 24 38 00          	andb   $0x0,(%eax,%edi,1)
41eaf1:	5f                   	pop    %edi
41eaf2:	5e                   	pop    %esi
41eaf3:	c2 08 00             	ret    $0x8
41eaf6:	56                   	push   %esi
41eaf7:	57                   	push   %edi
41eaf8:	8b 7c 24 0c          	mov    0xc(%esp),%edi
41eafc:	8b f1                	mov    %ecx,%esi
41eafe:	85 ff                	test   %edi,%edi
41eb00:	75 04                	jne    0x41eb06
41eb02:	33 c0                	xor    %eax,%eax
41eb04:	eb 07                	jmp    0x41eb0d
41eb06:	57                   	push   %edi
41eb07:	ff 15 40 97 43 00    	call   *0x439740
41eb0d:	57                   	push   %edi
41eb0e:	50                   	push   %eax
41eb0f:	8b ce                	mov    %esi,%ecx
41eb11:	e8 b3 ff ff ff       	call   0x41eac9
41eb16:	8b c6                	mov    %esi,%eax
41eb18:	5f                   	pop    %edi
41eb19:	5e                   	pop    %esi
41eb1a:	c2 04 00             	ret    $0x4
41eb1d:	53                   	push   %ebx
41eb1e:	56                   	push   %esi
41eb1f:	8b f1                	mov    %ecx,%esi
41eb21:	57                   	push   %edi
41eb22:	8b 4c 24 10          	mov    0x10(%esp),%ecx
41eb26:	8b 06                	mov    (%esi),%eax
41eb28:	83 78 f4 01          	cmpl   $0x1,-0xc(%eax)
41eb2c:	8d 58 f4             	lea    -0xc(%eax),%ebx
41eb2f:	7f 05                	jg     0x41eb36
41eb31:	3b 48 fc             	cmp    -0x4(%eax),%ecx
41eb34:	7e 2e                	jle    0x41eb64
41eb36:	8b 78 f8             	mov    -0x8(%eax),%edi
41eb39:	3b cf                	cmp    %edi,%ecx
41eb3b:	7d 02                	jge    0x41eb3f
41eb3d:	8b cf                	mov    %edi,%ecx
41eb3f:	51                   	push   %ecx
41eb40:	8b ce                	mov    %esi,%ecx
41eb42:	e8 55 fe ff ff       	call   0x41e99c
41eb47:	8d 47 01             	lea    0x1(%edi),%eax
41eb4a:	50                   	push   %eax
41eb4b:	8d 43 0c             	lea    0xc(%ebx),%eax
41eb4e:	50                   	push   %eax
41eb4f:	ff 36                	push   (%esi)
41eb51:	e8 1a d2 fe ff       	call   0x40bd70
41eb56:	8b 06                	mov    (%esi),%eax
41eb58:	83 c4 0c             	add    $0xc,%esp
41eb5b:	53                   	push   %ebx
41eb5c:	89 78 f8             	mov    %edi,-0x8(%eax)
41eb5f:	e8 a4 fe ff ff       	call   0x41ea08
41eb64:	8b 06                	mov    (%esi),%eax
41eb66:	5f                   	pop    %edi
41eb67:	5e                   	pop    %esi
41eb68:	5b                   	pop    %ebx
41eb69:	c2 04 00             	ret    $0x4
41eb6c:	56                   	push   %esi
41eb6d:	8b f1                	mov    %ecx,%esi
41eb6f:	e8 d5 fe ff ff       	call   0x41ea49
41eb74:	8b 44 24 08          	mov    0x8(%esp),%eax
41eb78:	83 f8 ff             	cmp    $0xffffffff,%eax
41eb7b:	75 08                	jne    0x41eb85
41eb7d:	ff 36                	push   (%esi)
41eb7f:	ff 15 40 97 43 00    	call   *0x439740
41eb85:	8b 0e                	mov    (%esi),%ecx
41eb87:	89 41 f8             	mov    %eax,-0x8(%ecx)
41eb8a:	8b 0e                	mov    (%esi),%ecx
41eb8c:	5e                   	pop    %esi
41eb8d:	80 24 01 00          	andb   $0x0,(%ecx,%eax,1)
41eb91:	c2 04 00             	ret    $0x4
41eb94:	56                   	push   %esi
41eb95:	57                   	push   %edi
41eb96:	8b 7c 24 0c          	mov    0xc(%esp),%edi
41eb9a:	8b f1                	mov    %ecx,%esi
41eb9c:	57                   	push   %edi
41eb9d:	e8 7b ff ff ff       	call   0x41eb1d
41eba2:	8b 06                	mov    (%esi),%eax
41eba4:	89 78 f8             	mov    %edi,-0x8(%eax)
41eba7:	8b 06                	mov    (%esi),%eax
41eba9:	80 24 38 00          	andb   $0x0,(%eax,%edi,1)
41ebad:	8b 06                	mov    (%esi),%eax
41ebaf:	5f                   	pop    %edi
41ebb0:	5e                   	pop    %esi
41ebb1:	c2 04 00             	ret    $0x4
41ebb4:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
41ebb9:	56                   	push   %esi
41ebba:	8b 74 24 08          	mov    0x8(%esp),%esi
41ebbe:	75 08                	jne    0x41ebc8
41ebc0:	85 f6                	test   %esi,%esi
41ebc2:	74 04                	je     0x41ebc8
41ebc4:	33 c0                	xor    %eax,%eax
41ebc6:	5e                   	pop    %esi
41ebc7:	c3                   	ret
41ebc8:	ff 74 24 10          	push   0x10(%esp)
41ebcc:	56                   	push   %esi
41ebcd:	6a ff                	push   $0xffffffff
41ebcf:	ff 74 24 18          	push   0x18(%esp)
41ebd3:	6a 00                	push   $0x0
41ebd5:	6a 00                	push   $0x0
41ebd7:	ff 15 f4 96 43 00    	call   *0x4396f4
41ebdd:	85 c0                	test   %eax,%eax
41ebdf:	7e 06                	jle    0x41ebe7
41ebe1:	66 83 64 46 fe 00    	andw   $0x0,-0x2(%esi,%eax,2)
41ebe7:	5e                   	pop    %esi
41ebe8:	c3                   	ret
41ebe9:	55                   	push   %ebp
41ebea:	8b ec                	mov    %esp,%ebp
41ebec:	81 ec 04 01 00 00    	sub    $0x104,%esp
41ebf2:	56                   	push   %esi
41ebf3:	be 00 01 00 00       	mov    $0x100,%esi
41ebf8:	57                   	push   %edi
41ebf9:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
41ebff:	56                   	push   %esi
41ec00:	50                   	push   %eax
41ec01:	ff 75 08             	push   0x8(%ebp)
41ec04:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41ec07:	e8 61 00 00 00       	call   0x41ec6d
41ec0c:	8b f8                	mov    %eax,%edi
41ec0e:	8b c6                	mov    %esi,%eax
41ec10:	2b c7                	sub    %edi,%eax
41ec12:	83 f8 02             	cmp    $0x2,%eax
41ec15:	76 18                	jbe    0x41ec2f
41ec17:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41ec1a:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
41ec20:	50                   	push   %eax
41ec21:	e8 d0 fe ff ff       	call   0x41eaf6
41ec26:	33 c0                	xor    %eax,%eax
41ec28:	85 ff                	test   %edi,%edi
41ec2a:	0f 9f c0             	setg   %al
41ec2d:	eb 38                	jmp    0x41ec67
41ec2f:	53                   	push   %ebx
41ec30:	8b fe                	mov    %esi,%edi
41ec32:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41ec35:	03 fe                	add    %esi,%edi
41ec37:	57                   	push   %edi
41ec38:	8d 47 ff             	lea    -0x1(%edi),%eax