40fc91:	56                   	push   %esi
40fc92:	8b 75 08             	mov    0x8(%ebp),%esi
40fc95:	3b 46 08             	cmp    0x8(%esi),%eax
40fc98:	75 42                	jne    0x40fcdc
40fc9a:	85 c0                	test   %eax,%eax
40fc9c:	75 04                	jne    0x40fca2
40fc9e:	b0 01                	mov    $0x1,%al
40fca0:	eb 3c                	jmp    0x40fcde
40fca2:	8b 01                	mov    (%ecx),%eax
40fca4:	3b 06                	cmp    (%esi),%eax
40fca6:	75 34                	jne    0x40fcdc
40fca8:	8b 41 04             	mov    0x4(%ecx),%eax
40fcab:	3b 46 04             	cmp    0x4(%esi),%eax
40fcae:	75 2c                	jne    0x40fcdc
40fcb0:	8b 41 0c             	mov    0xc(%ecx),%eax
40fcb3:	3b 46 0c             	cmp    0xc(%esi),%eax
40fcb6:	75 24                	jne    0x40fcdc
40fcb8:	8b 76 18             	mov    0x18(%esi),%esi
40fcbb:	8d 45 f4             	lea    -0xc(%ebp),%eax
40fcbe:	57                   	push   %edi
40fcbf:	8d 7d f4             	lea    -0xc(%ebp),%edi
40fcc2:	50                   	push   %eax
40fcc3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40fcc4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40fcc5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40fcc6:	8b 71 18             	mov    0x18(%ecx),%esi
40fcc9:	8d 7d e8             	lea    -0x18(%ebp),%edi
40fccc:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40fccf:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40fcd0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40fcd1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40fcd2:	e8 01 bb 00 00       	call   0x41b7d8
40fcd7:	5f                   	pop    %edi
40fcd8:	84 c0                	test   %al,%al
40fcda:	75 c2                	jne    0x40fc9e
40fcdc:	32 c0                	xor    %al,%al
40fcde:	5e                   	pop    %esi
40fcdf:	c9                   	leave
40fce0:	c2 04 00             	ret    $0x4
40fce3:	55                   	push   %ebp
40fce4:	8b ec                	mov    %esp,%ebp
40fce6:	56                   	push   %esi
40fce7:	8b 75 08             	mov    0x8(%ebp),%esi
40fcea:	57                   	push   %edi
40fceb:	8b f9                	mov    %ecx,%edi
40fced:	8b 47 48             	mov    0x48(%edi),%eax
40fcf0:	85 c0                	test   %eax,%eax
40fcf2:	74 3b                	je     0x40fd2f
40fcf4:	83 7e 48 00          	cmpl   $0x0,0x48(%esi)
40fcf8:	74 35                	je     0x40fd2f
40fcfa:	ff 76 48             	push   0x48(%esi)
40fcfd:	8b c8                	mov    %eax,%ecx
40fcff:	e8 d4 ba 00 00       	call   0x41b7d8
40fd04:	84 c0                	test   %al,%al
40fd06:	74 23                	je     0x40fd2b
40fd08:	56                   	push   %esi
40fd09:	8b cf                	mov    %edi,%ecx
40fd0b:	e8 78 ff ff ff       	call   0x40fc88
40fd10:	84 c0                	test   %al,%al
40fd12:	74 17                	je     0x40fd2b
40fd14:	8d 46 5c             	lea    0x5c(%esi),%eax
40fd17:	50                   	push   %eax
40fd18:	8d 47 5c             	lea    0x5c(%edi),%eax
40fd1b:	50                   	push   %eax
40fd1c:	e8 85 1d ff ff       	call   0x401aa6
40fd21:	59                   	pop    %ecx
40fd22:	59                   	pop    %ecx
40fd23:	84 c0                	test   %al,%al
40fd25:	74 04                	je     0x40fd2b
40fd27:	b0 01                	mov    $0x1,%al
40fd29:	eb 0a                	jmp    0x40fd35
40fd2b:	32 c0                	xor    %al,%al
40fd2d:	eb 06                	jmp    0x40fd35
40fd2f:	3b 46 48             	cmp    0x48(%esi),%eax
40fd32:	0f 94 c0             	sete   %al
40fd35:	5f                   	pop    %edi
40fd36:	5e                   	pop    %esi
40fd37:	5d                   	pop    %ebp
40fd38:	c2 04 00             	ret    $0x4
40fd3b:	55                   	push   %ebp
40fd3c:	8b ec                	mov    %esp,%ebp
40fd3e:	8b 55 08             	mov    0x8(%ebp),%edx
40fd41:	56                   	push   %esi
40fd42:	8b 75 0c             	mov    0xc(%ebp),%esi
40fd45:	8b 42 04             	mov    0x4(%edx),%eax
40fd48:	8b 4e 04             	mov    0x4(%esi),%ecx
40fd4b:	8b 40 04             	mov    0x4(%eax),%eax
40fd4e:	3b 41 04             	cmp    0x4(%ecx),%eax
40fd51:	75 0a                	jne    0x40fd5d
40fd53:	8b 02                	mov    (%edx),%eax
40fd55:	3b 06                	cmp    (%esi),%eax
40fd57:	75 04                	jne    0x40fd5d
40fd59:	b0 01                	mov    $0x1,%al
40fd5b:	eb 02                	jmp    0x40fd5f
40fd5d:	32 c0                	xor    %al,%al
40fd5f:	5e                   	pop    %esi
40fd60:	5d                   	pop    %ebp
40fd61:	c3                   	ret
40fd62:	55                   	push   %ebp
40fd63:	8b ec                	mov    %esp,%ebp
40fd65:	8b 41 0c             	mov    0xc(%ecx),%eax
40fd68:	2b 41 08             	sub    0x8(%ecx),%eax
40fd6b:	56                   	push   %esi
40fd6c:	6a 0c                	push   $0xc
40fd6e:	5e                   	pop    %esi
40fd6f:	99                   	cltd
40fd70:	f7 fe                	idiv   %esi
40fd72:	8b 55 08             	mov    0x8(%ebp),%edx
40fd75:	5e                   	pop    %esi
40fd76:	3b c2                	cmp    %edx,%eax
40fd78:	77 05                	ja     0x40fd7f
40fd7a:	8d 41 2c             	lea    0x2c(%ecx),%eax
40fd7d:	eb 06                	jmp    0x40fd85
40fd7f:	6b c2 0c             	imul   $0xc,%edx,%eax
40fd82:	03 41 08             	add    0x8(%ecx),%eax
40fd85:	5d                   	pop    %ebp
40fd86:	c2 04 00             	ret    $0x4
40fd89:	55                   	push   %ebp
40fd8a:	8b ec                	mov    %esp,%ebp
40fd8c:	8b 41 0c             	mov    0xc(%ecx),%eax
40fd8f:	2b 41 08             	sub    0x8(%ecx),%eax
40fd92:	56                   	push   %esi
40fd93:	6a 0c                	push   $0xc
40fd95:	5e                   	pop    %esi
40fd96:	99                   	cltd
40fd97:	f7 fe                	idiv   %esi
40fd99:	8b 55 08             	mov    0x8(%ebp),%edx
40fd9c:	5e                   	pop    %esi
40fd9d:	3b c2                	cmp    %edx,%eax
40fd9f:	77 05                	ja     0x40fda6
40fda1:	8d 41 2c             	lea    0x2c(%ecx),%eax
40fda4:	eb 06                	jmp    0x40fdac
40fda6:	6b c2 0c             	imul   $0xc,%edx,%eax
40fda9:	03 41 08             	add    0x8(%ecx),%eax
40fdac:	5d                   	pop    %ebp
40fdad:	c2 04 00             	ret    $0x4
40fdb0:	55                   	push   %ebp
40fdb1:	8b ec                	mov    %esp,%ebp
40fdb3:	83 ec 20             	sub    $0x20,%esp
40fdb6:	a1 94 80 4b 00       	mov    0x4b8094,%eax
40fdbb:	33 c5                	xor    %ebp,%eax
40fdbd:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fdc0:	53                   	push   %ebx
40fdc1:	8b 5d 08             	mov    0x8(%ebp),%ebx
40fdc4:	8b d1                	mov    %ecx,%edx
40fdc6:	56                   	push   %esi
40fdc7:	8b 75 0c             	mov    0xc(%ebp),%esi
40fdca:	57                   	push   %edi
40fdcb:	8b 02                	mov    (%edx),%eax
40fdcd:	8b 4a 04             	mov    0x4(%edx),%ecx
40fdd0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40fdd3:	8b c1                	mov    %ecx,%eax
40fdd5:	6a 10                	push   $0x10
40fdd7:	c1 e8 1c             	shr    $0x1c,%eax
40fdda:	5f                   	pop    %edi
40fddb:	89 55 e0             	mov    %edx,-0x20(%ebp)
40fdde:	89 45 e8             	mov    %eax,-0x18(%ebp)
40fde1:	3b f7                	cmp    %edi,%esi
40fde3:	73 3b                	jae    0x40fe20
40fde5:	56                   	push   %esi
40fde6:	51                   	push   %ecx
40fde7:	ff 75 e4             	push   -0x1c(%ebp)
40fdea:	e8 d8 35 01 00       	call   0x4233c7
40fdef:	8b d0                	mov    %eax,%edx
40fdf1:	83 c4 0c             	add    $0xc,%esp
40fdf4:	85 d2                	test   %edx,%edx
40fdf6:	74 20                	je     0x40fe18
40fdf8:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
40fdfc:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40fdff:	6a 08                	push   $0x8
40fe01:	58                   	pop    %eax
40fe02:	0f 44 f8             	cmove  %eax,%edi
40fe05:	8b 49 08             	mov    0x8(%ecx),%ecx
40fe08:	0f af f7             	imul   %edi,%esi
40fe0b:	8b 04 0e             	mov    (%esi,%ecx,1),%eax
40fe0e:	89 45 ec             	mov    %eax,-0x14(%ebp)
40fe11:	8b 44 0e 04          	mov    0x4(%esi,%ecx,1),%eax
40fe15:	89 45 f0             	mov    %eax,-0x10(%ebp)
40fe18:	89 55 f4             	mov    %edx,-0xc(%ebp)
40fe1b:	8d 75 ec             	lea    -0x14(%ebp),%esi
40fe1e:	eb 2d                	jmp    0x40fe4d
40fe20:	85 c0                	test   %eax,%eax
40fe22:	75 05                	jne    0x40fe29
40fe24:	21 45 f4             	and    %eax,-0xc(%ebp)
40fe27:	eb f2                	jmp    0x40fe1b
40fe29:	8b c7                	mov    %edi,%eax
40fe2b:	3b f7                	cmp    %edi,%esi
40fe2d:	72 18                	jb     0x40fe47
40fe2f:	8b 4a 08             	mov    0x8(%edx),%ecx
40fe32:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40fe35:	81 c1 08 01 00 00    	add    $0x108,%ecx
40fe3b:	83 39 00             	cmpl   $0x0,(%ecx)
40fe3e:	74 26                	je     0x40fe66
40fe40:	40                   	inc    %eax
40fe41:	03 cf                	add    %edi,%ecx
40fe43:	3b c6                	cmp    %esi,%eax
40fe45:	76 f4                	jbe    0x40fe3b
40fe47:	c1 e6 04             	shl    $0x4,%esi
40fe4a:	03 72 08             	add    0x8(%edx),%esi
40fe4d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40fe50:	8b fb                	mov    %ebx,%edi
40fe52:	8b c3                	mov    %ebx,%eax
40fe54:	33 cd                	xor    %ebp,%ecx
40fe56:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40fe57:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40fe58:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40fe59:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40fe5a:	5f                   	pop    %edi
40fe5b:	5e                   	pop    %esi
40fe5c:	5b                   	pop    %ebx
40fe5d:	e8 a0 fb 02 00       	call   0x43fa02
40fe62:	c9                   	leave
40fe63:	c2 08 00             	ret    $0x8
40fe66:	c1 e0 04             	shl    $0x4,%eax
40fe69:	03 45 e8             	add    -0x18(%ebp),%eax
40fe6c:	8b f0                	mov    %eax,%esi
40fe6e:	eb dd                	jmp    0x40fe4d
40fe70:	6a 04                	push   $0x4
40fe72:	b8 c1 d8 48 00       	mov    $0x48d8c1,%eax
40fe77:	e8 ce fb 02 00       	call   0x43fa4a
40fe7c:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40fe80:	ff 75 08             	push   0x8(%ebp)
40fe83:	e8 7c 2f 01 00       	call   0x422e04
40fe88:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40fe8c:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
40fe93:	8b 45 08             	mov    0x8(%ebp),%eax
40fe96:	e8 78 fb 02 00       	call   0x43fa13
40fe9b:	c2 04 00             	ret    $0x4
40fe9e:	6a 04                	push   $0x4
40fea0:	b8 e4 d8 48 00       	mov    $0x48d8e4,%eax
40fea5:	e8 a0 fb 02 00       	call   0x43fa4a
40feaa:	8b f1                	mov    %ecx,%esi
40feac:	33 ff                	xor    %edi,%edi
40feae:	39 3e                	cmp    %edi,(%esi)
40feb0:	75 29                	jne    0x40fedb
40feb2:	57                   	push   %edi
40feb3:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40feb6:	e8 95 57 01 00       	call   0x425650
40febb:	89 7d fc             	mov    %edi,-0x4(%ebp)
40febe:	39 3e                	cmp    %edi,(%esi)
40fec0:	75 0d                	jne    0x40fecf
40fec2:	a1 20 ad 4b 00       	mov    0x4bad20,%eax
40fec7:	40                   	inc    %eax
40fec8:	a3 20 ad 4b 00       	mov    %eax,0x4bad20
40fecd:	89 06                	mov    %eax,(%esi)
40fecf:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40fed3:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40fed6:	e8 dc 57 01 00       	call   0x4256b7
40fedb:	8b 06                	mov    (%esi),%eax
40fedd:	e8 31 fb 02 00       	call   0x43fa13
40fee2:	c3                   	ret
40fee3:	53                   	push   %ebx
40fee4:	56                   	push   %esi
40fee5:	57                   	push   %edi
40fee6:	8b f9                	mov    %ecx,%edi
40fee8:	8b 47 18             	mov    0x18(%edi),%eax
40feeb:	8d 5f 04             	lea    0x4(%edi),%ebx
40feee:	8b 70 04             	mov    0x4(%eax),%esi
40fef1:	39 30                	cmp    %esi,(%eax)
40fef3:	75 24                	jne    0x40ff19
40fef5:	3b 33                	cmp    (%ebx),%esi
40fef7:	74 42                	je     0x40ff3b
40fef9:	ff 37                	push   (%edi)
40fefb:	8b 47 0c             	mov    0xc(%edi),%eax
40fefe:	8d 4f 10             	lea    0x10(%edi),%ecx
40ff01:	83 c8 60             	or     $0x60,%eax
40ff04:	50                   	push   %eax
40ff05:	ff 77 08             	push   0x8(%edi)
40ff08:	51                   	push   %ecx
40ff09:	ff 33                	push   (%ebx)
40ff0b:	56                   	push   %esi
40ff0c:	e8 dc 56 ff ff       	call   0x4055ed
40ff11:	83 c4 18             	add    $0x18,%esp
40ff14:	84 c0                	test   %al,%al
40ff16:	75 27                	jne    0x40ff3f
40ff18:	46                   	inc    %esi
40ff19:	ff 37                	push   (%edi)
40ff1b:	81 4f 0c 00 01 00 00 	orl    $0x100,0xc(%edi)
40ff22:	8d 47 10             	lea    0x10(%edi),%eax
40ff25:	ff 77 0c             	push   0xc(%edi)
40ff28:	ff 77 08             	push   0x8(%edi)
40ff2b:	50                   	push   %eax
40ff2c:	ff 33                	push   (%ebx)
40ff2e:	56                   	push   %esi
40ff2f:	e8 b9 56 ff ff       	call   0x4055ed
40ff34:	83 c4 18             	add    $0x18,%esp
40ff37:	84 c0                	test   %al,%al
40ff39:	75 04                	jne    0x40ff3f
40ff3b:	83 67 08 00          	andl   $0x0,0x8(%edi)
40ff3f:	8b c7                	mov    %edi,%eax
40ff41:	5f                   	pop    %edi
40ff42:	5e                   	pop    %esi
40ff43:	5b                   	pop    %ebx
40ff44:	c3                   	ret
40ff45:	6a 50                	push   $0x50
40ff47:	b8 07 d9 48 00       	mov    $0x48d907,%eax
40ff4c:	e8 f9 fa 02 00       	call   0x43fa4a
40ff51:	8b f1                	mov    %ecx,%esi
40ff53:	8d 7e 4c             	lea    0x4c(%esi),%edi
40ff56:	39 7e 48             	cmp    %edi,0x48(%esi)
40ff59:	75 09                	jne    0x40ff64
40ff5b:	83 66 48 00          	andl   $0x0,0x48(%esi)
40ff5f:	e9 84 00 00 00       	jmp    0x40ffe8
40ff64:	ff 46 58             	incl   0x58(%esi)
40ff67:	8b 46 60             	mov    0x60(%esi),%eax
40ff6a:	2b 46 5c             	sub    0x5c(%esi),%eax
40ff6d:	c1 f8 02             	sar    $0x2,%eax
40ff70:	39 46 58             	cmp    %eax,0x58(%esi)
40ff73:	73 0a                	jae    0x40ff7f
40ff75:	e8 62 7d 00 00       	call   0x417cdc
40ff7a:	89 46 48             	mov    %eax,0x48(%esi)
40ff7d:	eb 69                	jmp    0x40ffe8
40ff7f:	33 db                	xor    %ebx,%ebx
40ff81:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40ff84:	56                   	push   %esi
40ff85:	89 5e 58             	mov    %ebx,0x58(%esi)
40ff88:	e8 32 b8 ff ff       	call   0x40b7bf
40ff8d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40ff90:	8b ce                	mov    %esi,%ecx
40ff92:	e8 4c ff ff ff       	call   0x40fee3
40ff97:	8b ce                	mov    %esi,%ecx
40ff99:	39 5e 08             	cmp    %ebx,0x8(%esi)
40ff9c:	74 0a                	je     0x40ffa8
40ff9e:	e8 39 7d 00 00       	call   0x417cdc
40ffa3:	89 46 48             	mov    %eax,0x48(%esi)
40ffa6:	eb 34                	jmp    0x40ffdc
40ffa8:	e8 7e ad 00 00       	call   0x41ad2b
40ffad:	84 c0                	test   %al,%al
40ffaf:	74 28                	je     0x40ffd9
40ffb1:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ffb4:	50                   	push   %eax
40ffb5:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40ffb8:	e8 d5 93 00 00       	call   0x419392
40ffbd:	8b 45 f0             	mov    -0x10(%ebp),%eax
40ffc0:	2b 45 ec             	sub    -0x14(%ebp),%eax
40ffc3:	74 14                	je     0x40ffd9
40ffc5:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40ffc8:	89 07                	mov    %eax,(%edi)
40ffca:	8b 45 d8             	mov    -0x28(%ebp),%eax
40ffcd:	c6 46 54 01          	movb   $0x1,0x54(%esi)
40ffd1:	89 46 50             	mov    %eax,0x50(%esi)
40ffd4:	89 7e 48             	mov    %edi,0x48(%esi)
40ffd7:	eb 03                	jmp    0x40ffdc
40ffd9:	89 5e 48             	mov    %ebx,0x48(%esi)
40ffdc:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40ffe0:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40ffe3:	e8 9c e3 ff ff       	call   0x40e384
40ffe8:	8b c6                	mov    %esi,%eax
40ffea:	e8 24 fa 02 00       	call   0x43fa13
40ffef:	c3                   	ret