456dd0:	83 26 00             	andl   $0x0,(%esi)
456dd3:	33 c0                	xor    %eax,%eax
456dd5:	40                   	inc    %eax
456dd6:	6a 00                	push   $0x0
456dd8:	89 46 0c             	mov    %eax,0xc(%esi)
456ddb:	50                   	push   %eax
456ddc:	8b 07                	mov    (%edi),%eax
456dde:	8b 48 04             	mov    0x4(%eax),%ecx
456de1:	03 cf                	add    %edi,%ecx
456de3:	e8 64 61 ff ff       	call   0x44cf4c
456de8:	ff 15 b4 d6 48 00    	call   *0x48d6b4
456dee:	5f                   	pop    %edi
456def:	5e                   	pop    %esi
456df0:	33 c0                	xor    %eax,%eax
456df2:	5b                   	pop    %ebx
456df3:	5d                   	pop    %ebp
456df4:	c2 08 00             	ret    $0x8
456df7:	55                   	push   %ebp
456df8:	8b ec                	mov    %esp,%ebp
456dfa:	8b 45 08             	mov    0x8(%ebp),%eax
456dfd:	56                   	push   %esi
456dfe:	8b 40 04             	mov    0x4(%eax),%eax
456e01:	57                   	push   %edi
456e02:	8b 30                	mov    (%eax),%esi
456e04:	51                   	push   %ecx
456e05:	e8 0c e0 fc ff       	call   0x424e16
456e0a:	8d 48 40             	lea    0x40(%eax),%ecx
456e0d:	8b d6                	mov    %esi,%edx
456e0f:	e8 7f 77 fc ff       	call   0x41e593
456e14:	8b 75 0c             	mov    0xc(%ebp),%esi
456e17:	59                   	pop    %ecx
456e18:	8b ce                	mov    %esi,%ecx
456e1a:	8b f8                	mov    %eax,%edi
456e1c:	e8 ff bd fb ff       	call   0x412c20
456e21:	89 3e                	mov    %edi,(%esi)
456e23:	5f                   	pop    %edi
456e24:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
456e2b:	33 c0                	xor    %eax,%eax
456e2d:	5e                   	pop    %esi
456e2e:	5d                   	pop    %ebp
456e2f:	c2 08 00             	ret    $0x8
456e32:	55                   	push   %ebp
456e33:	8b ec                	mov    %esp,%ebp
456e35:	51                   	push   %ecx
456e36:	51                   	push   %ecx
456e37:	56                   	push   %esi
456e38:	57                   	push   %edi
456e39:	68 00 00 01 00       	push   $0x10000
456e3e:	e8 a7 86 fc ff       	call   0x41f4ea
456e43:	59                   	pop    %ecx
456e44:	50                   	push   %eax
456e45:	8d 4d f8             	lea    -0x8(%ebp),%ecx
456e48:	e8 6a d9 fa ff       	call   0x4047b7
456e4d:	8b 7d f8             	mov    -0x8(%ebp),%edi
456e50:	33 c0                	xor    %eax,%eax
456e52:	66 89 07             	mov    %ax,(%edi)
456e55:	8b 45 08             	mov    0x8(%ebp),%eax
456e58:	8b 40 04             	mov    0x4(%eax),%eax
456e5b:	8b 30                	mov    (%eax),%esi
456e5d:	8b ce                	mov    %esi,%ecx
456e5f:	e8 08 25 fb ff       	call   0x40936c
456e64:	8b 46 08             	mov    0x8(%esi),%eax
456e67:	68 ff 7f 00 00       	push   $0x7fff
456e6c:	57                   	push   %edi
456e6d:	ff 30                	push   (%eax)
456e6f:	ff 15 c4 d2 48 00    	call   *0x48d2c4
456e75:	8b 4d 0c             	mov    0xc(%ebp),%ecx
456e78:	8d 45 f8             	lea    -0x8(%ebp),%eax
456e7b:	50                   	push   %eax
456e7c:	e8 0c 2f ff ff       	call   0x449d8d
456e81:	8d 4d f8             	lea    -0x8(%ebp),%ecx
456e84:	e8 59 d9 fa ff       	call   0x4047e2
456e89:	5f                   	pop    %edi
456e8a:	33 c0                	xor    %eax,%eax
456e8c:	5e                   	pop    %esi
456e8d:	c9                   	leave
456e8e:	c2 08 00             	ret    $0x8
456e91:	55                   	push   %ebp
456e92:	8b ec                	mov    %esp,%ebp
456e94:	53                   	push   %ebx
456e95:	8b 5d 08             	mov    0x8(%ebp),%ebx
456e98:	56                   	push   %esi
456e99:	83 7b 08 02          	cmpl   $0x2,0x8(%ebx)
456e9d:	8b 43 04             	mov    0x4(%ebx),%eax
456ea0:	57                   	push   %edi
456ea1:	72 1e                	jb     0x456ec1
456ea3:	8b 70 04             	mov    0x4(%eax),%esi
456ea6:	8b ce                	mov    %esi,%ecx
456ea8:	e8 bf 24 fb ff       	call   0x40936c
456ead:	8b 46 08             	mov    0x8(%esi),%eax
456eb0:	8b 38                	mov    (%eax),%edi
456eb2:	8b 43 04             	mov    0x4(%ebx),%eax
456eb5:	8b 30                	mov    (%eax),%esi
456eb7:	8b ce                	mov    %esi,%ecx
456eb9:	e8 ae 24 fb ff       	call   0x40936c
456ebe:	57                   	push   %edi
456ebf:	eb 0b                	jmp    0x456ecc
456ec1:	8b 30                	mov    (%eax),%esi
456ec3:	8b ce                	mov    %esi,%ecx
456ec5:	e8 a2 24 fb ff       	call   0x40936c
456eca:	6a 00                	push   $0x0
456ecc:	8b 46 08             	mov    0x8(%esi),%eax
456ecf:	ff 30                	push   (%eax)
456ed1:	ff 15 c8 d2 48 00    	call   *0x48d2c8
456ed7:	8b 75 0c             	mov    0xc(%ebp),%esi
456eda:	8b ce                	mov    %esi,%ecx
456edc:	8b f8                	mov    %eax,%edi
456ede:	e8 3d bd fb ff       	call   0x412c20
456ee3:	89 3e                	mov    %edi,(%esi)
456ee5:	5f                   	pop    %edi
456ee6:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
456eed:	5e                   	pop    %esi
456eee:	33 c0                	xor    %eax,%eax
456ef0:	5b                   	pop    %ebx
456ef1:	5d                   	pop    %ebp
456ef2:	c2 08 00             	ret    $0x8
456ef5:	55                   	push   %ebp
456ef6:	8b ec                	mov    %esp,%ebp
456ef8:	51                   	push   %ecx
456ef9:	53                   	push   %ebx
456efa:	57                   	push   %edi
456efb:	8d 45 fc             	lea    -0x4(%ebp),%eax
456efe:	50                   	push   %eax
456eff:	68 98 3a 00 00       	push   $0x3a98
456f04:	33 db                	xor    %ebx,%ebx
456f06:	43                   	inc    %ebx
456f07:	53                   	push   %ebx
456f08:	68 38 3d 4b 00       	push   $0x4b3d38
456f0d:	6a 00                	push   $0x0
456f0f:	6a 1a                	push   $0x1a
456f11:	68 ff ff 00 00       	push   $0xffff
456f16:	8b f9                	mov    %ecx,%edi
456f18:	ff 15 58 d6 48 00    	call   *0x48d658
456f1e:	85 c0                	test   %eax,%eax
456f20:	75 21                	jne    0x456f43
456f22:	56                   	push   %esi
456f23:	8b 75 0c             	mov    0xc(%ebp),%esi
456f26:	8b ce                	mov    %esi,%ecx
456f28:	e8 f3 bc fb ff       	call   0x412c20
456f2d:	83 26 00             	andl   $0x0,(%esi)
456f30:	89 5e 0c             	mov    %ebx,0xc(%esi)
456f33:	8b 07                	mov    (%edi),%eax
456f35:	6a 00                	push   $0x0
456f37:	8b 48 04             	mov    0x4(%eax),%ecx
456f3a:	53                   	push   %ebx
456f3b:	03 cf                	add    %edi,%ecx
456f3d:	e8 0a 60 ff ff       	call   0x44cf4c
456f42:	5e                   	pop    %esi
456f43:	5f                   	pop    %edi
456f44:	33 c0                	xor    %eax,%eax
456f46:	5b                   	pop    %ebx
456f47:	c9                   	leave
456f48:	c2 08 00             	ret    $0x8
456f4b:	55                   	push   %ebp
456f4c:	8b ec                	mov    %esp,%ebp
456f4e:	83 ec 14             	sub    $0x14,%esp
456f51:	8b 45 08             	mov    0x8(%ebp),%eax
456f54:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
456f58:	8b 40 04             	mov    0x4(%eax),%eax
456f5b:	56                   	push   %esi
456f5c:	8b 30                	mov    (%eax),%esi
456f5e:	57                   	push   %edi
456f5f:	8b f9                	mov    %ecx,%edi
456f61:	8b ce                	mov    %esi,%ecx
456f63:	e8 04 24 fb ff       	call   0x40936c
456f68:	8b 56 08             	mov    0x8(%esi),%edx
456f6b:	8d 4d ec             	lea    -0x14(%ebp),%ecx
456f6e:	8b 02                	mov    (%edx),%eax
456f70:	89 45 ec             	mov    %eax,-0x14(%ebp)
456f73:	8b 42 04             	mov    0x4(%edx),%eax
456f76:	89 45 f0             	mov    %eax,-0x10(%ebp)
456f79:	8b 42 08             	mov    0x8(%edx),%eax
456f7c:	89 45 f4             	mov    %eax,-0xc(%ebp)
456f7f:	8b 42 0c             	mov    0xc(%edx),%eax
456f82:	89 45 f8             	mov    %eax,-0x8(%ebp)
456f85:	ff 00                	incl   (%eax)
456f87:	e8 6e 4e fb ff       	call   0x40bdfa
456f8c:	ff 75 f0             	push   -0x10(%ebp)
456f8f:	ff 75 ec             	push   -0x14(%ebp)
456f92:	ff 15 60 d6 48 00    	call   *0x48d660
456f98:	8d 45 ec             	lea    -0x14(%ebp),%eax
456f9b:	50                   	push   %eax
456f9c:	e8 91 11 ff ff       	call   0x448132
456fa1:	6a 00                	push   $0x0
456fa3:	85 c0                	test   %eax,%eax
456fa5:	74 1e                	je     0x456fc5
456fa7:	8d 45 fc             	lea    -0x4(%ebp),%eax
456faa:	50                   	push   %eax
456fab:	8d 45 08             	lea    0x8(%ebp),%eax
456fae:	50                   	push   %eax
456faf:	8d 45 ec             	lea    -0x14(%ebp),%eax
456fb2:	50                   	push   %eax
456fb3:	e8 8d 66 fb ff       	call   0x40d645
456fb8:	ff 75 08             	push   0x8(%ebp)
456fbb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
456fbe:	e8 eb 6c fb ff       	call   0x40dcae
456fc3:	eb 1b                	jmp    0x456fe0
456fc5:	8b 07                	mov    (%edi),%eax
456fc7:	6a 01                	push   $0x1
456fc9:	8b 48 04             	mov    0x4(%eax),%ecx
456fcc:	03 cf                	add    %edi,%ecx
456fce:	e8 79 5f ff ff       	call   0x44cf4c
456fd3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
456fd6:	68 00 dc 49 00       	push   $0x49dc00
456fdb:	e8 d9 5d fb ff       	call   0x40cdb9
456fe0:	8d 4d ec             	lea    -0x14(%ebp),%ecx
456fe3:	e8 4f 5b fb ff       	call   0x40cb37
456fe8:	5f                   	pop    %edi
456fe9:	33 c0                	xor    %eax,%eax
456feb:	5e                   	pop    %esi
456fec:	c9                   	leave
456fed:	c2 08 00             	ret    $0x8
456ff0:	55                   	push   %ebp
456ff1:	8b ec                	mov    %esp,%ebp
456ff3:	83 e4 f8             	and    $0xfffffff8,%esp
456ff6:	83 ec 14             	sub    $0x14,%esp
456ff9:	8b 45 08             	mov    0x8(%ebp),%eax
456ffc:	53                   	push   %ebx
456ffd:	8b 40 04             	mov    0x4(%eax),%eax
457000:	33 db                	xor    %ebx,%ebx
457002:	56                   	push   %esi
457003:	c7 44 24 0c b4 dd 49 	movl   $0x49ddb4,0xc(%esp)
45700a:	00
45700b:	89 5c 24 10          	mov    %ebx,0x10(%esp)
45700f:	89 5c 24 14          	mov    %ebx,0x14(%esp)
457013:	89 5c 24 18          	mov    %ebx,0x18(%esp)
457017:	8b 30                	mov    (%eax),%esi
457019:	57                   	push   %edi
45701a:	8b f9                	mov    %ecx,%edi
45701c:	8b ce                	mov    %esi,%ecx
45701e:	c6 05 b6 10 4c 00 01 	movb   $0x1,0x4c10b6
457025:	e8 42 23 fb ff       	call   0x40936c
45702a:	8b 46 08             	mov    0x8(%esi),%eax
45702d:	8d 4c 24 10          	lea    0x10(%esp),%ecx
457031:	51                   	push   %ecx
457032:	ff 30                	push   (%eax)
457034:	53                   	push   %ebx
457035:	e8 36 44 fb ff       	call   0x40b470
45703a:	85 c0                	test   %eax,%eax
45703c:	78 2d                	js     0x45706b
45703e:	83 7c 24 18 01       	cmpl   $0x1,0x18(%esp)
457043:	76 26                	jbe    0x45706b
457045:	6a ff                	push   $0xffffffff
457047:	ff 75 0c             	push   0xc(%ebp)
45704a:	8d 44 24 14          	lea    0x14(%esp),%eax
45704e:	50                   	push   %eax
45704f:	8d 44 24 1c          	lea    0x1c(%esp),%eax
457053:	50                   	push   %eax
457054:	8b cf                	mov    %edi,%ecx
457056:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
45705a:	e8 d1 8d fb ff       	call   0x40fe30
45705f:	85 c0                	test   %eax,%eax
457061:	78 08                	js     0x45706b
457063:	88 1d b6 10 4c 00    	mov    %bl,0x4c10b6
457069:	eb 22                	jmp    0x45708d
45706b:	8b 07                	mov    (%edi),%eax
45706d:	53                   	push   %ebx
45706e:	8b 48 04             	mov    0x4(%eax),%ecx
457071:	6a 01                	push   $0x1
457073:	03 cf                	add    %edi,%ecx
457075:	88 1d b6 10 4c 00    	mov    %bl,0x4c10b6
45707b:	e8 cc 5e ff ff       	call   0x44cf4c
457080:	8b 4d 0c             	mov    0xc(%ebp),%ecx
457083:	68 00 dc 49 00       	push   $0x49dc00
457088:	e8 2c 5d fb ff       	call   0x40cdb9
45708d:	8d 4c 24 10          	lea    0x10(%esp),%ecx
457091:	e8 7b de fa ff       	call   0x404f11
457096:	5f                   	pop    %edi
457097:	5e                   	pop    %esi
457098:	33 c0                	xor    %eax,%eax
45709a:	5b                   	pop    %ebx
45709b:	8b e5                	mov    %ebp,%esp
45709d:	5d                   	pop    %ebp
45709e:	c2 08 00             	ret    $0x8
4570a1:	55                   	push   %ebp
4570a2:	8b ec                	mov    %esp,%ebp
4570a4:	8b 45 08             	mov    0x8(%ebp),%eax
4570a7:	83 ec 10             	sub    $0x10,%esp
4570aa:	8b 40 04             	mov    0x4(%eax),%eax
4570ad:	56                   	push   %esi
4570ae:	8b 30                	mov    (%eax),%esi
4570b0:	57                   	push   %edi
4570b1:	8b f9                	mov    %ecx,%edi
4570b3:	6a 0e                	push   $0xe
4570b5:	8b ce                	mov    %esi,%ecx
4570b7:	e8 28 65 fb ff       	call   0x40d5e4
4570bc:	8b ce                	mov    %esi,%ecx
4570be:	84 c0                	test   %al,%al
4570c0:	74 0b                	je     0x4570cd
4570c2:	8d 45 f0             	lea    -0x10(%ebp),%eax
4570c5:	50                   	push   %eax
4570c6:	e8 d2 35 ff ff       	call   0x44a69d
4570cb:	eb 29                	jmp    0x4570f6
4570cd:	6a 0d                	push   $0xd
4570cf:	e8 10 65 fb ff       	call   0x40d5e4
4570d4:	84 c0                	test   %al,%al
4570d6:	74 31                	je     0x457109
4570d8:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4570db:	e8 17 67 fb ff       	call   0x40d7f7
4570e0:	8d 45 f0             	lea    -0x10(%ebp),%eax
4570e3:	50                   	push   %eax
4570e4:	8b ce                	mov    %esi,%ecx
4570e6:	e8 a3 35 ff ff       	call   0x44a68e
4570eb:	50                   	push   %eax
4570ec:	8b cf                	mov    %edi,%ecx
4570ee:	e8 e3 5d ff ff       	call   0x44ced6
4570f3:	8d 45 f0             	lea    -0x10(%ebp),%eax
4570f6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4570f9:	50                   	push   %eax
4570fa:	e8 69 fa fa ff       	call   0x406b68
4570ff:	8d 4d f0             	lea    -0x10(%ebp),%ecx
457102:	e8 30 5a fb ff       	call   0x40cb37
457107:	eb 1d                	jmp    0x457126
457109:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45710c:	68 00 dc 49 00       	push   $0x49dc00
457111:	e8 a3 5c fb ff       	call   0x40cdb9
457116:	8b 07                	mov    (%edi),%eax
457118:	6a 00                	push   $0x0
45711a:	8b 48 04             	mov    0x4(%eax),%ecx
45711d:	6a 01                	push   $0x1
45711f:	03 cf                	add    %edi,%ecx
457121:	e8 26 5e ff ff       	call   0x44cf4c
457126:	5f                   	pop    %edi
457127:	33 c0                	xor    %eax,%eax
457129:	5e                   	pop    %esi
45712a:	c9                   	leave
45712b:	c2 08 00             	ret    $0x8
45712e:	55                   	push   %ebp
45712f:	8b ec                	mov    %esp,%ebp
457131:	83 e4 f8             	and    $0xfffffff8,%esp
457134:	83 ec 74             	sub    $0x74,%esp
457137:	53                   	push   %ebx
457138:	56                   	push   %esi
457139:	57                   	push   %edi
45713a:	8b 7d 08             	mov    0x8(%ebp),%edi
45713d:	8b d9                	mov    %ecx,%ebx
45713f:	8b 77 08             	mov    0x8(%edi),%esi
457142:	8d 4c 24 20          	lea    0x20(%esp),%ecx
457146:	89 5c 24 18          	mov    %ebx,0x18(%esp)
45714a:	89 74 24 1c          	mov    %esi,0x1c(%esp)
45714e:	e8 5c 78 fe ff       	call   0x43e9af
457153:	83 64 24 14 00       	andl   $0x0,0x14(%esp)
457158:	8d 46 fe             	lea    -0x2(%esi),%eax
45715b:	83 f8 08             	cmp    $0x8,%eax
45715e:	0f 87 46 03 00 00    	ja     0x4574aa
457164:	ff 24 85 e2 74 45 00 	jmp    *0x4574e2(,%eax,4)
45716b:	8b 47 04             	mov    0x4(%edi),%eax
45716e:	8b 48 24             	mov    0x24(%eax),%ecx
457171:	e8 01 44 ff ff       	call   0x44b577
457176:	89 44 24 14          	mov    %eax,0x14(%esp)