978d3e:	56                   	push   %esi
978d3f:	8b 75 14             	mov    0x14(%ebp),%esi
978d42:	85 f6                	test   %esi,%esi
978d44:	75 04                	jne    0x978d4a
978d46:	33 c0                	xor    %eax,%eax
978d48:	eb 6d                	jmp    0x978db7
978d4a:	8b 45 08             	mov    0x8(%ebp),%eax
978d4d:	85 c0                	test   %eax,%eax
978d4f:	75 13                	jne    0x978d64
978d51:	e8 19 5b ac ff       	call   0x43e86f
978d56:	6a 16                	push   $0x16
978d58:	5e                   	pop    %esi
978d59:	89 30                	mov    %esi,(%eax)
978d5b:	e8 98 65 aa ff       	call   0x41f2f8
978d60:	8b c6                	mov    %esi,%eax
978d62:	eb 53                	jmp    0x978db7
978d64:	57                   	push   %edi
978d65:	8b 7d 10             	mov    0x10(%ebp),%edi
978d68:	85 ff                	test   %edi,%edi
978d6a:	74 14                	je     0x978d80
978d6c:	39 75 0c             	cmp    %esi,0xc(%ebp)
978d6f:	72 0f                	jb     0x978d80
978d71:	56                   	push   %esi
978d72:	57                   	push   %edi
978d73:	50                   	push   %eax
978d74:	e8 09 b9 a9 ff       	call   0x414682
978d79:	83 c4 0c             	add    $0xc,%esp
978d7c:	33 c0                	xor    %eax,%eax
978d7e:	eb 36                	jmp    0x978db6
978d80:	ff 75 0c             	push   0xc(%ebp)
978d83:	6a 00                	push   $0x0
978d85:	50                   	push   %eax
978d86:	e8 2d ba a9 ff       	call   0x4147b8
978d8b:	83 c4 0c             	add    $0xc,%esp
978d8e:	85 ff                	test   %edi,%edi
978d90:	75 09                	jne    0x978d9b
978d92:	e8 d8 5a ac ff       	call   0x43e86f
978d97:	6a 16                	push   $0x16
978d99:	eb 0c                	jmp    0x978da7
978d9b:	39 75 0c             	cmp    %esi,0xc(%ebp)
978d9e:	73 13                	jae    0x978db3
978da0:	e8 ca 5a ac ff       	call   0x43e86f
978da5:	6a 22                	push   $0x22
978da7:	5e                   	pop    %esi
978da8:	89 30                	mov    %esi,(%eax)
978daa:	e8 49 65 aa ff       	call   0x41f2f8
978daf:	8b c6                	mov    %esi,%eax
978db1:	eb 03                	jmp    0x978db6
978db3:	6a 16                	push   $0x16
978db5:	58                   	pop    %eax
978db6:	5f                   	pop    %edi
978db7:	5e                   	pop    %esi
978db8:	5d                   	pop    %ebp
978db9:	c3                   	ret
978dba:	cc                   	int3
978dbb:	cc                   	int3
978dbc:	cc                   	int3
978dbd:	cc                   	int3
978dbe:	cc                   	int3
978dbf:	cc                   	int3
978dc0:	cc                   	int3
978dc1:	cc                   	int3
978dc2:	cc                   	int3
978dc3:	cc                   	int3
978dc4:	cc                   	int3
978dc5:	cc                   	int3
978dc6:	cc                   	int3
978dc7:	cc                   	int3
978dc8:	cc                   	int3
978dc9:	cc                   	int3
978dca:	cc                   	int3
978dcb:	cc                   	int3
978dcc:	cc                   	int3
978dcd:	cc                   	int3
978dce:	cc                   	int3
978dcf:	cc                   	int3
978dd0:	cc                   	int3
978dd1:	cc                   	int3
978dd2:	cc                   	int3
978dd3:	cc                   	int3
978dd4:	cc                   	int3
978dd5:	cc                   	int3
978dd6:	cc                   	int3
978dd7:	cc                   	int3
978dd8:	cc                   	int3
978dd9:	55                   	push   %ebp
978dda:	8b ec                	mov    %esp,%ebp
978ddc:	8b 45 14             	mov    0x14(%ebp),%eax
978ddf:	56                   	push   %esi
978de0:	85 c0                	test   %eax,%eax
978de2:	74 3c                	je     0x978e20
978de4:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
978de8:	75 13                	jne    0x978dfd
978dea:	e8 80 5a ac ff       	call   0x43e86f
978def:	6a 16                	push   $0x16
978df1:	5e                   	pop    %esi
978df2:	89 30                	mov    %esi,(%eax)
978df4:	e8 ff 64 aa ff       	call   0x41f2f8
978df9:	8b c6                	mov    %esi,%eax
978dfb:	eb 25                	jmp    0x978e22
978dfd:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
978e01:	74 e7                	je     0x978dea
978e03:	39 45 0c             	cmp    %eax,0xc(%ebp)
978e06:	73 09                	jae    0x978e11
978e08:	e8 62 5a ac ff       	call   0x43e86f
978e0d:	6a 22                	push   $0x22
978e0f:	eb e0                	jmp    0x978df1
978e11:	50                   	push   %eax
978e12:	ff 75 10             	push   0x10(%ebp)
978e15:	ff 75 08             	push   0x8(%ebp)
978e18:	e8 65 5d aa ff       	call   0x41eb82
978e1d:	83 c4 0c             	add    $0xc,%esp
978e20:	33 c0                	xor    %eax,%eax
978e22:	5e                   	pop    %esi
978e23:	5d                   	pop    %ebp
978e24:	c3                   	ret
978e25:	cc                   	int3
978e26:	cc                   	int3
978e27:	cc                   	int3
978e28:	cc                   	int3
978e29:	cc                   	int3
978e2a:	cc                   	int3
978e2b:	cc                   	int3
978e2c:	cc                   	int3
978e2d:	cc                   	int3
978e2e:	cc                   	int3
978e2f:	cc                   	int3
978e30:	cc                   	int3
978e31:	cc                   	int3
978e32:	cc                   	int3
978e33:	cc                   	int3
978e34:	cc                   	int3
978e35:	cc                   	int3
978e36:	cc                   	int3
978e37:	cc                   	int3
978e38:	55                   	push   %ebp
978e39:	8b ec                	mov    %esp,%ebp
978e3b:	51                   	push   %ecx
978e3c:	56                   	push   %esi
978e3d:	8b 75 08             	mov    0x8(%ebp),%esi
978e40:	33 c0                	xor    %eax,%eax
978e42:	57                   	push   %edi
978e43:	50                   	push   %eax
978e44:	50                   	push   %eax
978e45:	6a ff                	push   $0xffffffff
978e47:	56                   	push   %esi
978e48:	8b f9                	mov    %ecx,%edi
978e4a:	50                   	push   %eax
978e4b:	89 7d fc             	mov    %edi,-0x4(%ebp)
978e4e:	e8 c5 b6 ab ff       	call   0x434518
978e53:	8b 45 0c             	mov    0xc(%ebp),%eax
978e56:	89 87 e8 00 00 00    	mov    %eax,0xe8(%edi)
978e5c:	8b c7                	mov    %edi,%eax
978e5e:	89 b7 ec 00 00 00    	mov    %esi,0xec(%edi)
978e64:	c7 07 b8 ad c5 00    	movl   $0xc5adb8,(%edi)
978e6a:	5f                   	pop    %edi
978e6b:	5e                   	pop    %esi
978e6c:	8b e5                	mov    %ebp,%esp
978e6e:	5d                   	pop    %ebp
978e6f:	c2 08 00             	ret    $0x8
978e72:	cc                   	int3
978e73:	cc                   	int3
978e74:	cc                   	int3
978e75:	cc                   	int3
978e76:	cc                   	int3
978e77:	cc                   	int3
978e78:	cc                   	int3
978e79:	cc                   	int3
978e7a:	cc                   	int3
978e7b:	cc                   	int3
978e7c:	cc                   	int3
978e7d:	cc                   	int3
978e7e:	cc                   	int3
978e7f:	cc                   	int3
978e80:	55                   	push   %ebp
978e81:	8b ec                	mov    %esp,%ebp
978e83:	51                   	push   %ecx
978e84:	56                   	push   %esi
978e85:	8b f1                	mov    %ecx,%esi
978e87:	89 75 fc             	mov    %esi,-0x4(%ebp)
978e8a:	e8 f1 61 ac ff       	call   0x43f080
978e8f:	83 a6 e8 00 00 00 00 	andl   $0x0,0xe8(%esi)
978e96:	8b c6                	mov    %esi,%eax
978e98:	83 a6 ec 00 00 00 00 	andl   $0x0,0xec(%esi)
978e9f:	c7 06 b8 ad c5 00    	movl   $0xc5adb8,(%esi)
978ea5:	5e                   	pop    %esi
978ea6:	8b e5                	mov    %ebp,%esp
978ea8:	5d                   	pop    %ebp
978ea9:	c3                   	ret
978eaa:	cc                   	int3
978eab:	cc                   	int3
978eac:	cc                   	int3
978ead:	cc                   	int3
978eae:	cc                   	int3
978eaf:	cc                   	int3
978eb0:	cc                   	int3
978eb1:	cc                   	int3
978eb2:	cc                   	int3
978eb3:	cc                   	int3
978eb4:	c7 01 b8 ad c5 00    	movl   $0xc5adb8,(%ecx)
978eba:	e9 03 17 ab ff       	jmp    0x42a5c2
978ebf:	cc                   	int3
978ec0:	cc                   	int3
978ec1:	55                   	push   %ebp
978ec2:	8b ec                	mov    %esp,%ebp
978ec4:	8b 4d 08             	mov    0x8(%ebp),%ecx
978ec7:	68 10 f0 d5 00       	push   $0xd5f010
978ecc:	e8 40 6f a9 ff       	call   0x40fe11
978ed1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
978ed4:	89 01                	mov    %eax,(%ecx)
978ed6:	8b 45 08             	mov    0x8(%ebp),%eax
978ed9:	5d                   	pop    %ebp
978eda:	c2 08 00             	ret    $0x8
978edd:	cc                   	int3
978ede:	cc                   	int3
978edf:	cc                   	int3
978ee0:	cc                   	int3
978ee1:	cc                   	int3
978ee2:	cc                   	int3
978ee3:	cc                   	int3
978ee4:	55                   	push   %ebp
978ee5:	8b ec                	mov    %esp,%ebp
978ee7:	56                   	push   %esi
978ee8:	8b f1                	mov    %ecx,%esi
978eea:	c7 06 b8 ad c5 00    	movl   $0xc5adb8,(%esi)
978ef0:	e8 cd 16 ab ff       	call   0x42a5c2
978ef5:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
978ef9:	74 1b                	je     0x978f16
978efb:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
978eff:	75 08                	jne    0x978f09
978f01:	56                   	push   %esi
978f02:	e8 88 88 a8 ff       	call   0x40178f
978f07:	eb 0c                	jmp    0x978f15
978f09:	68 f0 00 00 00       	push   $0xf0
978f0e:	56                   	push   %esi
978f0f:	e8 c6 68 aa ff       	call   0x41f7da
978f14:	59                   	pop    %ecx
978f15:	59                   	pop    %ecx
978f16:	8b c6                	mov    %esi,%eax
978f18:	5e                   	pop    %esi
978f19:	5d                   	pop    %ebp
978f1a:	c2 04 00             	ret    $0x4
978f1d:	cc                   	int3
978f1e:	cc                   	int3
978f1f:	cc                   	int3
978f20:	cc                   	int3
978f21:	cc                   	int3
978f22:	cc                   	int3
978f23:	cc                   	int3
978f24:	cc                   	int3
978f25:	cc                   	int3
978f26:	cc                   	int3
978f27:	cc                   	int3
978f28:	cc                   	int3
978f29:	cc                   	int3
978f2a:	cc                   	int3
978f2b:	33 c0                	xor    %eax,%eax
978f2d:	c3                   	ret
978f2e:	55                   	push   %ebp
978f2f:	8b ec                	mov    %esp,%ebp
978f31:	56                   	push   %esi
978f32:	8b 75 08             	mov    0x8(%ebp),%esi
978f35:	57                   	push   %edi
978f36:	56                   	push   %esi
978f37:	8b f9                	mov    %ecx,%edi
978f39:	e8 f5 a5 aa ff       	call   0x423533
978f3e:	8b 86 e8 00 00 00    	mov    0xe8(%esi),%eax
978f44:	89 87 e8 00 00 00    	mov    %eax,0xe8(%edi)
978f4a:	8b 86 ec 00 00 00    	mov    0xec(%esi),%eax
978f50:	89 87 ec 00 00 00    	mov    %eax,0xec(%edi)
978f56:	5f                   	pop    %edi
978f57:	5e                   	pop    %esi
978f58:	5d                   	pop    %ebp
978f59:	c2 04 00             	ret    $0x4
978f5c:	cc                   	int3
978f5d:	cc                   	int3
978f5e:	cc                   	int3
978f5f:	cc                   	int3
978f60:	cc                   	int3
978f61:	cc                   	int3
978f62:	cc                   	int3
978f63:	cc                   	int3
978f64:	cc                   	int3
978f65:	cc                   	int3
978f66:	cc                   	int3
978f67:	55                   	push   %ebp
978f68:	8b ec                	mov    %esp,%ebp
978f6a:	8b 45 08             	mov    0x8(%ebp),%eax
978f6d:	89 81 ec 00 00 00    	mov    %eax,0xec(%ecx)
978f73:	5d                   	pop    %ebp
978f74:	c2 04 00             	ret    $0x4
978f77:	cc                   	int3
978f78:	cc                   	int3
978f79:	cc                   	int3
978f7a:	cc                   	int3
978f7b:	55                   	push   %ebp
978f7c:	8b ec                	mov    %esp,%ebp
978f7e:	83 ec 10             	sub    $0x10,%esp
978f81:	53                   	push   %ebx
978f82:	56                   	push   %esi
978f83:	57                   	push   %edi
978f84:	8b f9                	mov    %ecx,%edi
978f86:	33 f6                	xor    %esi,%esi
978f88:	39 b7 ec 00 00 00    	cmp    %esi,0xec(%edi)
978f8e:	0f 84 aa 00 00 00    	je     0x97903e
978f94:	e8 81 b4 aa ff       	call   0x42441a
978f99:	8b d8                	mov    %eax,%ebx
978f9b:	89 5d f0             	mov    %ebx,-0x10(%ebp)
978f9e:	85 db                	test   %ebx,%ebx
978fa0:	0f 84 91 00 00 00    	je     0x979037
978fa6:	53                   	push   %ebx
978fa7:	e8 b0 14 a9 ff       	call   0x40a45c
978fac:	ff b7 ec 00 00 00    	push   0xec(%edi)
978fb2:	89 45 fc             	mov    %eax,-0x4(%ebp)
978fb5:	e8 a2 14 a9 ff       	call   0x40a45c
978fba:	8b f8                	mov    %eax,%edi
978fbc:	89 7d f4             	mov    %edi,-0xc(%ebp)
978fbf:	ff 77 04             	push   0x4(%edi)
978fc2:	ff 15 84 40 d8 00    	call   *0xd84084
978fc8:	89 45 f8             	mov    %eax,-0x8(%ebp)
978fcb:	85 c0                	test   %eax,%eax
978fcd:	7e 66                	jle    0x979035
978fcf:	8b 5d fc             	mov    -0x4(%ebp),%ebx
978fd2:	68 00 04 00 00       	push   $0x400
978fd7:	56                   	push   %esi
978fd8:	ff 77 04             	push   0x4(%edi)
978fdb:	ff 15 14 40 d8 00    	call   *0xd84014
978fe1:	56                   	push   %esi
978fe2:	ff 77 04             	push   0x4(%edi)
978fe5:	89 45 fc             	mov    %eax,-0x4(%ebp)
978fe8:	ff 15 1c 40 d8 00    	call   *0xd8401c
978fee:	8b f8                	mov    %eax,%edi
978ff0:	8b 45 fc             	mov    -0x4(%ebp),%eax
978ff3:	a8 08                	test   $0x8,%al
978ff5:	74 0f                	je     0x979006
978ff7:	6a 08                	push   $0x8
978ff9:	57                   	push   %edi
978ffa:	ff 73 04             	push   0x4(%ebx)
978ffd:	ff 15 10 40 d8 00    	call   *0xd84010
979003:	8b 45 fc             	mov    -0x4(%ebp),%eax
979006:	a8 02                	test   $0x2,%al
979008:	74 0f                	je     0x979019
97900a:	6a 02                	push   $0x2
97900c:	57                   	push   %edi
97900d:	ff 73 04             	push   0x4(%ebx)
979010:	ff 15 0c 40 d8 00    	call   *0xd8400c
979016:	8b 45 fc             	mov    -0x4(%ebp),%eax
979019:	a8 01                	test   $0x1,%al
97901b:	74 0c                	je     0x979029
97901d:	6a 01                	push   $0x1