40fb48:	74 11                	je     0x40fb5b
40fb4a:	8b 17                	mov    (%edi),%edx
40fb4c:	8b 72 0c             	mov    0xc(%edx),%esi
40fb4f:	8b ce                	mov    %esi,%ecx
40fb51:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40fb57:	8b cf                	mov    %edi,%ecx
40fb59:	ff d6                	call   *%esi
40fb5b:	8a c3                	mov    %bl,%al
40fb5d:	e8 d4 84 01 00       	call   0x428036
40fb62:	c2 48 00             	ret    $0x48
40fb65:	e8 0a e6 ff ff       	call   0x40e174
40fb6a:	cc                   	int3
40fb6b:	6a 10                	push   $0x10
40fb6d:	b8 33 87 42 00       	mov    $0x428733,%eax
40fb72:	e8 f1 84 01 00       	call   0x428068
40fb77:	8b f1                	mov    %ecx,%esi
40fb79:	ff 75 18             	push   0x18(%ebp)
40fb7c:	8b 7d 14             	mov    0x14(%ebp),%edi
40fb7f:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40fb82:	57                   	push   %edi
40fb83:	ff 75 10             	push   0x10(%ebp)
40fb86:	53                   	push   %ebx
40fb87:	ff 75 08             	push   0x8(%ebp)
40fb8a:	e8 d0 02 00 00       	call   0x40fe5f
40fb8f:	84 c0                	test   %al,%al
40fb91:	74 04                	je     0x40fb97
40fb93:	b0 01                	mov    $0x1,%al
40fb95:	eb 7b                	jmp    0x40fc12
40fb97:	8d 47 20             	lea    0x20(%edi),%eax
40fb9a:	33 d2                	xor    %edx,%edx
40fb9c:	8d 4e 10             	lea    0x10(%esi),%ecx
40fb9f:	03 c3                	add    %ebx,%eax
40fba1:	39 11                	cmp    %edx,(%ecx)
40fba3:	75 50                	jne    0x40fbf5
40fba5:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40fba8:	89 55 e8             	mov    %edx,-0x18(%ebp)
40fbab:	89 55 ec             	mov    %edx,-0x14(%ebp)
40fbae:	89 55 f0             	mov    %edx,-0x10(%ebp)
40fbb1:	83 c0 0a             	add    $0xa,%eax
40fbb4:	89 55 fc             	mov    %edx,-0x4(%ebp)
40fbb7:	50                   	push   %eax
40fbb8:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40fbbb:	e8 c5 f5 ff ff       	call   0x40f185
40fbc0:	84 c0                	test   %al,%al
40fbc2:	74 27                	je     0x40fbeb
40fbc4:	8b 45 ec             	mov    -0x14(%ebp),%eax
40fbc7:	8b ce                	mov    %esi,%ecx
40fbc9:	2b 45 e4             	sub    -0x1c(%ebp),%eax
40fbcc:	50                   	push   %eax
40fbcd:	6a 00                	push   $0x0
40fbcf:	ff 75 e4             	push   -0x1c(%ebp)
40fbd2:	e8 97 fd ff ff       	call   0x40f96e
40fbd7:	8b 45 f0             	mov    -0x10(%ebp),%eax
40fbda:	8d 4e 1c             	lea    0x1c(%esi),%ecx
40fbdd:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40fbe1:	50                   	push   %eax
40fbe2:	e8 72 2d 00 00       	call   0x412959
40fbe7:	c6 46 22 01          	movb   $0x1,0x22(%esi)
40fbeb:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40fbee:	e8 8a 2d 00 00       	call   0x41297d
40fbf3:	eb 0b                	jmp    0x40fc00
40fbf5:	38 56 22             	cmp    %dl,0x22(%esi)
40fbf8:	74 06                	je     0x40fc00
40fbfa:	50                   	push   %eax
40fbfb:	e8 85 f5 ff ff       	call   0x40f185
40fc00:	ff 75 18             	push   0x18(%ebp)
40fc03:	8b ce                	mov    %esi,%ecx
40fc05:	57                   	push   %edi
40fc06:	ff 75 10             	push   0x10(%ebp)
40fc09:	53                   	push   %ebx
40fc0a:	ff 75 08             	push   0x8(%ebp)
40fc0d:	e8 4d 02 00 00       	call   0x40fe5f
40fc12:	e8 1f 84 01 00       	call   0x428036
40fc17:	c2 14 00             	ret    $0x14
40fc1a:	8b ff                	mov    %edi,%edi
40fc1c:	55                   	push   %ebp
40fc1d:	8b ec                	mov    %esp,%ebp
40fc1f:	83 ec 1c             	sub    $0x1c,%esp
40fc22:	66 8b 41 06          	mov    0x6(%ecx),%ax
40fc26:	33 d2                	xor    %edx,%edx
40fc28:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
40fc2c:	8a 41 08             	mov    0x8(%ecx),%al
40fc2f:	53                   	push   %ebx
40fc30:	8b 5d 08             	mov    0x8(%ebp),%ebx
40fc33:	56                   	push   %esi
40fc34:	8b 75 0c             	mov    0xc(%ebp),%esi
40fc37:	88 45 e6             	mov    %al,-0x1a(%ebp)
40fc3a:	33 c0                	xor    %eax,%eax
40fc3c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40fc3f:	89 55 e8             	mov    %edx,-0x18(%ebp)
40fc42:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
40fc46:	89 55 f0             	mov    %edx,-0x10(%ebp)
40fc49:	89 55 f4             	mov    %edx,-0xc(%ebp)
40fc4c:	85 f6                	test   %esi,%esi
40fc4e:	74 47                	je     0x40fc97
40fc50:	57                   	push   %edi
40fc51:	8b 41 0c             	mov    0xc(%ecx),%eax
40fc54:	8b fe                	mov    %esi,%edi
40fc56:	ff 71 14             	push   0x14(%ecx)
40fc59:	d1 ef                	shr    $1,%edi
40fc5b:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40fc5e:	0f af c7             	imul   %edi,%eax
40fc61:	03 c3                	add    %ebx,%eax
40fc63:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fc66:	8d 45 fc             	lea    -0x4(%ebp),%eax
40fc69:	50                   	push   %eax
40fc6a:	e8 5c fb ff ff       	call   0x40f7cb
40fc6f:	ff 75 14             	push   0x14(%ebp)
40fc72:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40fc75:	ff 75 10             	push   0x10(%ebp)
40fc78:	e8 fe f9 ff ff       	call   0x40f67b
40fc7d:	85 c0                	test   %eax,%eax
40fc7f:	7e 0c                	jle    0x40fc8d
40fc81:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40fc84:	83 c8 ff             	or     $0xffffffff,%eax
40fc87:	2b c7                	sub    %edi,%eax
40fc89:	03 f0                	add    %eax,%esi
40fc8b:	eb 02                	jmp    0x40fc8f
40fc8d:	8b f7                	mov    %edi,%esi
40fc8f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40fc92:	85 f6                	test   %esi,%esi
40fc94:	75 bb                	jne    0x40fc51
40fc96:	5f                   	pop    %edi
40fc97:	5e                   	pop    %esi
40fc98:	8b c3                	mov    %ebx,%eax
40fc9a:	5b                   	pop    %ebx
40fc9b:	c9                   	leave
40fc9c:	c2 10 00             	ret    $0x10
40fc9f:	8b ff                	mov    %edi,%edi
40fca1:	55                   	push   %ebp
40fca2:	8b ec                	mov    %esp,%ebp
40fca4:	83 ec 20             	sub    $0x20,%esp
40fca7:	83 4d f8 ff          	orl    $0xffffffff,-0x8(%ebp)
40fcab:	53                   	push   %ebx
40fcac:	56                   	push   %esi
40fcad:	8b 75 08             	mov    0x8(%ebp),%esi
40fcb0:	57                   	push   %edi
40fcb1:	8b f9                	mov    %ecx,%edi
40fcb3:	33 c9                	xor    %ecx,%ecx
40fcb5:	66 89 4d e8          	mov    %cx,-0x18(%ebp)
40fcb9:	66 8b 47 06          	mov    0x6(%edi),%ax
40fcbd:	8b 4f 0c             	mov    0xc(%edi),%ecx
40fcc0:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
40fcc4:	8a 47 08             	mov    0x8(%edi),%al
40fcc7:	88 45 e2             	mov    %al,-0x1e(%ebp)
40fcca:	33 c0                	xor    %eax,%eax
40fccc:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40fccf:	89 45 ec             	mov    %eax,-0x14(%ebp)
40fcd2:	89 45 f0             	mov    %eax,-0x10(%ebp)
40fcd5:	85 c9                	test   %ecx,%ecx
40fcd7:	74 64                	je     0x40fd3d
40fcd9:	8b 47 14             	mov    0x14(%edi),%eax
40fcdc:	33 d2                	xor    %edx,%edx
40fcde:	2b 45 0c             	sub    0xc(%ebp),%eax
40fce1:	f7 f1                	div    %ecx
40fce3:	8b 56 04             	mov    0x4(%esi),%edx
40fce6:	3b d0                	cmp    %eax,%edx
40fce8:	76 0e                	jbe    0x40fcf8
40fcea:	50                   	push   %eax
40fceb:	8b ce                	mov    %esi,%ecx
40fced:	e8 b0 f9 ff ff       	call   0x40f6a2
40fcf2:	8b 56 04             	mov    0x4(%esi),%edx
40fcf5:	8b 4f 0c             	mov    0xc(%edi),%ecx
40fcf8:	ff 75 14             	push   0x14(%ebp)
40fcfb:	8b f2                	mov    %edx,%esi
40fcfd:	ff 75 10             	push   0x10(%ebp)
40fd00:	0f af f1             	imul   %ecx,%esi
40fd03:	8b cf                	mov    %edi,%ecx
40fd05:	52                   	push   %edx
40fd06:	ff 75 0c             	push   0xc(%ebp)
40fd09:	03 75 0c             	add    0xc(%ebp),%esi
40fd0c:	e8 09 ff ff ff       	call   0x40fc1a
40fd11:	8b d8                	mov    %eax,%ebx
40fd13:	3b de                	cmp    %esi,%ebx
40fd15:	0f 83 ac 00 00 00    	jae    0x40fdc7
40fd1b:	ff 77 14             	push   0x14(%edi)
40fd1e:	8d 45 f4             	lea    -0xc(%ebp),%eax
40fd21:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40fd24:	50                   	push   %eax
40fd25:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40fd28:	e8 9e fa ff ff       	call   0x40f7cb
40fd2d:	ff 75 14             	push   0x14(%ebp)
40fd30:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40fd33:	ff 75 10             	push   0x10(%ebp)
40fd36:	e8 40 f9 ff ff       	call   0x40f67b
40fd3b:	eb 55                	jmp    0x40fd92
40fd3d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40fd40:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fd43:	39 46 04             	cmp    %eax,0x4(%esi)
40fd46:	76 7f                	jbe    0x40fdc7
40fd48:	ff 77 14             	push   0x14(%edi)
40fd4b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40fd4e:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40fd51:	50                   	push   %eax
40fd52:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40fd55:	e8 71 fa ff ff       	call   0x40f7cb
40fd5a:	84 c0                	test   %al,%al
40fd5c:	74 26                	je     0x40fd84
40fd5e:	ff 75 14             	push   0x14(%ebp)
40fd61:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40fd64:	ff 75 10             	push   0x10(%ebp)
40fd67:	e8 0f f9 ff ff       	call   0x40f67b
40fd6c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40fd6f:	85 c0                	test   %eax,%eax
40fd71:	7e 21                	jle    0x40fd94
40fd73:	8b 45 fc             	mov    -0x4(%ebp),%eax
40fd76:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40fd79:	40                   	inc    %eax
40fd7a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fd7d:	3b 46 04             	cmp    0x4(%esi),%eax
40fd80:	72 c6                	jb     0x40fd48
40fd82:	eb 0b                	jmp    0x40fd8f
40fd84:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40fd87:	51                   	push   %ecx
40fd88:	8b ce                	mov    %esi,%ecx
40fd8a:	e8 13 f9 ff ff       	call   0x40f6a2
40fd8f:	8b 45 f8             	mov    -0x8(%ebp),%eax
40fd92:	85 c0                	test   %eax,%eax
40fd94:	75 31                	jne    0x40fdc7
40fd96:	8a 45 e2             	mov    -0x1e(%ebp),%al
40fd99:	84 c0                	test   %al,%al
40fd9b:	0f 95 c3             	setne  %bl
40fd9e:	84 c0                	test   %al,%al
40fda0:	74 0f                	je     0x40fdb1
40fda2:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40fda5:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40fda8:	03 45 18             	add    0x18(%ebp),%eax
40fdab:	50                   	push   %eax
40fdac:	e8 f1 f8 ff ff       	call   0x40f6a2
40fdb1:	84 db                	test   %bl,%bl
40fdb3:	75 09                	jne    0x40fdbe
40fdb5:	38 5f 20             	cmp    %bl,0x20(%edi)
40fdb8:	75 04                	jne    0x40fdbe
40fdba:	33 c0                	xor    %eax,%eax
40fdbc:	eb 02                	jmp    0x40fdc0
40fdbe:	b0 01                	mov    $0x1,%al
40fdc0:	88 47 20             	mov    %al,0x20(%edi)
40fdc3:	33 c0                	xor    %eax,%eax
40fdc5:	eb 02                	jmp    0x40fdc9
40fdc7:	8b c3                	mov    %ebx,%eax
40fdc9:	5f                   	pop    %edi
40fdca:	5e                   	pop    %esi
40fdcb:	5b                   	pop    %ebx
40fdcc:	c9                   	leave
40fdcd:	c2 14 00             	ret    $0x14
40fdd0:	8b ff                	mov    %edi,%edi
40fdd2:	55                   	push   %ebp
40fdd3:	8b ec                	mov    %esp,%ebp
40fdd5:	83 ec 14             	sub    $0x14,%esp
40fdd8:	53                   	push   %ebx
40fdd9:	8b d9                	mov    %ecx,%ebx
40fddb:	56                   	push   %esi
40fddc:	57                   	push   %edi
40fddd:	8b 7d 08             	mov    0x8(%ebp),%edi
40fde0:	8b 73 0c             	mov    0xc(%ebx),%esi
40fde3:	85 f6                	test   %esi,%esi
40fde5:	74 29                	je     0x40fe10
40fde7:	8b 43 14             	mov    0x14(%ebx),%eax
40fdea:	33 d2                	xor    %edx,%edx
40fdec:	2b 43 10             	sub    0x10(%ebx),%eax
40fdef:	f7 f6                	div    %esi
40fdf1:	8b 4f 04             	mov    0x4(%edi),%ecx
40fdf4:	3b c8                	cmp    %eax,%ecx
40fdf6:	76 0e                	jbe    0x40fe06
40fdf8:	50                   	push   %eax
40fdf9:	8b cf                	mov    %edi,%ecx
40fdfb:	e8 a2 f8 ff ff       	call   0x40f6a2
40fe00:	8b 4f 04             	mov    0x4(%edi),%ecx
40fe03:	8b 73 0c             	mov    0xc(%ebx),%esi
40fe06:	8b 45 0c             	mov    0xc(%ebp),%eax
40fe09:	0f af f1             	imul   %ecx,%esi
40fe0c:	03 c6                	add    %esi,%eax
40fe0e:	eb 48                	jmp    0x40fe58
40fe10:	66 8b 43 06          	mov    0x6(%ebx),%ax
40fe14:	33 f6                	xor    %esi,%esi
40fe16:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
40fe1a:	8a 43 08             	mov    0x8(%ebx),%al
40fe1d:	88 45 ee             	mov    %al,-0x12(%ebp)
40fe20:	33 c0                	xor    %eax,%eax
40fe22:	89 75 f0             	mov    %esi,-0x10(%ebp)
40fe25:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
40fe29:	89 75 f8             	mov    %esi,-0x8(%ebp)
40fe2c:	89 75 fc             	mov    %esi,-0x4(%ebp)
40fe2f:	39 77 04             	cmp    %esi,0x4(%edi)
40fe32:	76 19                	jbe    0x40fe4d
40fe34:	ff 73 14             	push   0x14(%ebx)
40fe37:	8d 45 0c             	lea    0xc(%ebp),%eax
40fe3a:	50                   	push   %eax
40fe3b:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40fe3e:	e8 88 f9 ff ff       	call   0x40f7cb
40fe43:	84 c0                	test   %al,%al
40fe45:	74 06                	je     0x40fe4d
40fe47:	46                   	inc    %esi
40fe48:	3b 77 04             	cmp    0x4(%edi),%esi
40fe4b:	72 e7                	jb     0x40fe34
40fe4d:	56                   	push   %esi
40fe4e:	8b cf                	mov    %edi,%ecx
40fe50:	e8 4d f8 ff ff       	call   0x40f6a2
40fe55:	8b 45 0c             	mov    0xc(%ebp),%eax
40fe58:	5f                   	pop    %edi
40fe59:	5e                   	pop    %esi
40fe5a:	5b                   	pop    %ebx
40fe5b:	c9                   	leave
40fe5c:	c2 08 00             	ret    $0x8
40fe5f:	8b ff                	mov    %edi,%edi
40fe61:	55                   	push   %ebp
40fe62:	8b ec                	mov    %esp,%ebp
40fe64:	83 ec 30             	sub    $0x30,%esp
40fe67:	53                   	push   %ebx
40fe68:	56                   	push   %esi
40fe69:	8b f1                	mov    %ecx,%esi
40fe6b:	57                   	push   %edi
40fe6c:	8b 7e 10             	mov    0x10(%esi),%edi
40fe6f:	85 ff                	test   %edi,%edi
40fe71:	0f 84 75 01 00 00    	je     0x40ffec
40fe77:	66 8b 46 02          	mov    0x2(%esi),%ax
40fe7b:	33 c9                	xor    %ecx,%ecx
40fe7d:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
40fe81:	83 c7 0a             	add    $0xa,%edi
40fe84:	8a 46 04             	mov    0x4(%esi),%al
40fe87:	8a f9                	mov    %cl,%bh
40fe89:	88 45 e6             	mov    %al,-0x1a(%ebp)
40fe8c:	33 c0                	xor    %eax,%eax
40fe8e:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40fe91:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
40fe95:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40fe98:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40fe9b:	88 7d ff             	mov    %bh,-0x1(%ebp)
40fe9e:	eb 2c                	jmp    0x40fecc
40fea0:	ff 75 0c             	push   0xc(%ebp)
40fea3:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40fea6:	ff 75 08             	push   0x8(%ebp)
40fea9:	e8 cd f7 ff ff       	call   0x40f67b
40feae:	85 c0                	test   %eax,%eax
40feb0:	0f 88 fe 00 00 00    	js     0x40ffb4
40feb6:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40feb9:	8b ce                	mov    %esi,%ecx
40febb:	0f 84 cd 00 00 00    	je     0x40ff8e
40fec1:	ff 75 f8             	push   -0x8(%ebp)
40fec4:	50                   	push   %eax
40fec5:	e8 06 ff ff ff       	call   0x40fdd0
40feca:	8b f8                	mov    %eax,%edi
40fecc:	ff 76 14             	push   0x14(%esi)
40fecf:	8d 45 f8             	lea    -0x8(%ebp),%eax
40fed2:	89 7d f8             	mov    %edi,-0x8(%ebp)
40fed5:	50                   	push   %eax
40fed6:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40fed9:	e8 ed f8 ff ff       	call   0x40f7cb
40fede:	8a d8                	mov    %al,%bl
40fee0:	84 db                	test   %bl,%bl