ab2db4:	88 06                	mov    %al,(%esi)
ab2db6:	b0 01                	mov    $0x1,%al
ab2db8:	5e                   	pop    %esi
ab2db9:	5d                   	pop    %ebp
ab2dba:	c2 0c 00             	ret    $0xc
ab2dbd:	cc                   	int3
ab2dbe:	cc                   	int3
ab2dbf:	cc                   	int3
ab2dc0:	cc                   	int3
ab2dc1:	cc                   	int3
ab2dc2:	cc                   	int3
ab2dc3:	cc                   	int3
ab2dc4:	cc                   	int3
ab2dc5:	cc                   	int3
ab2dc6:	cc                   	int3
ab2dc7:	cc                   	int3
ab2dc8:	cc                   	int3
ab2dc9:	cc                   	int3
ab2dca:	cc                   	int3
ab2dcb:	cc                   	int3
ab2dcc:	cc                   	int3
ab2dcd:	cc                   	int3
ab2dce:	cc                   	int3
ab2dcf:	cc                   	int3
ab2dd0:	cc                   	int3
ab2dd1:	cc                   	int3
ab2dd2:	cc                   	int3
ab2dd3:	cc                   	int3
ab2dd4:	cc                   	int3
ab2dd5:	cc                   	int3
ab2dd6:	cc                   	int3
ab2dd7:	cc                   	int3
ab2dd8:	cc                   	int3
ab2dd9:	cc                   	int3
ab2dda:	8b ff                	mov    %edi,%edi
ab2ddc:	55                   	push   %ebp
ab2ddd:	8b ec                	mov    %esp,%ebp
ab2ddf:	83 41 54 04          	addl   $0x4,0x54(%ecx)
ab2de3:	8b 41 54             	mov    0x54(%ecx),%eax
ab2de6:	56                   	push   %esi
ab2de7:	8b 70 fc             	mov    -0x4(%eax),%esi
ab2dea:	85 f6                	test   %esi,%esi
ab2dec:	75 14                	jne    0xab2e02
ab2dee:	e8 7c ba 98 ff       	call   0x43e86f
ab2df3:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
ab2df9:	e8 fa c4 96 ff       	call   0x41f2f8
ab2dfe:	32 c0                	xor    %al,%al
ab2e00:	eb 4a                	jmp    0xab2e4c
ab2e02:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
ab2e06:	74 03                	je     0xab2e0b
ab2e08:	ff 41 58             	incl   0x58(%ecx)
ab2e0b:	83 c1 18             	add    $0x18,%ecx
ab2e0e:	e8 93 18 95 ff       	call   0x4046a6
ab2e13:	83 e8 01             	sub    $0x1,%eax
ab2e16:	74 2d                	je     0xab2e45
ab2e18:	83 e8 01             	sub    $0x1,%eax
ab2e1b:	74 1f                	je     0xab2e3c
ab2e1d:	48                   	dec    %eax
ab2e1e:	83 e8 01             	sub    $0x1,%eax
ab2e21:	74 12                	je     0xab2e35
ab2e23:	83 e8 04             	sub    $0x4,%eax
ab2e26:	75 d6                	jne    0xab2dfe
ab2e28:	8b 45 08             	mov    0x8(%ebp),%eax
ab2e2b:	89 06                	mov    %eax,(%esi)
ab2e2d:	8b 45 0c             	mov    0xc(%ebp),%eax
ab2e30:	89 46 04             	mov    %eax,0x4(%esi)
ab2e33:	eb 15                	jmp    0xab2e4a
ab2e35:	8b 45 08             	mov    0x8(%ebp),%eax
ab2e38:	89 06                	mov    %eax,(%esi)
ab2e3a:	eb 0e                	jmp    0xab2e4a
ab2e3c:	66 8b 45 08          	mov    0x8(%ebp),%ax
ab2e40:	66 89 06             	mov    %ax,(%esi)
ab2e43:	eb 05                	jmp    0xab2e4a
ab2e45:	8a 45 08             	mov    0x8(%ebp),%al
ab2e48:	88 06                	mov    %al,(%esi)
ab2e4a:	b0 01                	mov    $0x1,%al
ab2e4c:	5e                   	pop    %esi
ab2e4d:	5d                   	pop    %ebp
ab2e4e:	c2 0c 00             	ret    $0xc
ab2e51:	cc                   	int3
ab2e52:	cc                   	int3
ab2e53:	cc                   	int3
ab2e54:	cc                   	int3
ab2e55:	cc                   	int3
ab2e56:	cc                   	int3
ab2e57:	cc                   	int3
ab2e58:	cc                   	int3
ab2e59:	cc                   	int3
ab2e5a:	cc                   	int3
ab2e5b:	cc                   	int3
ab2e5c:	cc                   	int3
ab2e5d:	cc                   	int3
ab2e5e:	cc                   	int3
ab2e5f:	cc                   	int3
ab2e60:	cc                   	int3
ab2e61:	cc                   	int3
ab2e62:	cc                   	int3
ab2e63:	cc                   	int3
ab2e64:	cc                   	int3
ab2e65:	cc                   	int3
ab2e66:	cc                   	int3
ab2e67:	cc                   	int3
ab2e68:	cc                   	int3
ab2e69:	cc                   	int3
ab2e6a:	cc                   	int3
ab2e6b:	cc                   	int3
ab2e6c:	cc                   	int3
ab2e6d:	cc                   	int3
ab2e6e:	8b ff                	mov    %edi,%edi
ab2e70:	55                   	push   %ebp
ab2e71:	8b ec                	mov    %esp,%ebp
ab2e73:	83 ec 2c             	sub    $0x2c,%esp
ab2e76:	8b 45 1c             	mov    0x1c(%ebp),%eax
ab2e79:	8b 55 10             	mov    0x10(%ebp),%edx
ab2e7c:	8b 4d 14             	mov    0x14(%ebp),%ecx
ab2e7f:	89 45 f0             	mov    %eax,-0x10(%ebp)
ab2e82:	8b 45 18             	mov    0x18(%ebp),%eax
ab2e85:	89 45 fc             	mov    %eax,-0x4(%ebp)
ab2e88:	8b 45 08             	mov    0x8(%ebp),%eax
ab2e8b:	89 45 e8             	mov    %eax,-0x18(%ebp)
ab2e8e:	8b 45 0c             	mov    0xc(%ebp),%eax
ab2e91:	89 4d f4             	mov    %ecx,-0xc(%ebp)
ab2e94:	89 55 f8             	mov    %edx,-0x8(%ebp)
ab2e97:	89 45 ec             	mov    %eax,-0x14(%ebp)
ab2e9a:	85 d2                	test   %edx,%edx
ab2e9c:	75 15                	jne    0xab2eb3
ab2e9e:	e8 cc b9 98 ff       	call   0x43e86f
ab2ea3:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
ab2ea9:	e8 4a c4 96 ff       	call   0x41f2f8
ab2eae:	83 c8 ff             	or     $0xffffffff,%eax
ab2eb1:	eb 2e                	jmp    0xab2ee1
ab2eb3:	85 c9                	test   %ecx,%ecx
ab2eb5:	74 e7                	je     0xab2e9e
ab2eb7:	8d 45 fc             	lea    -0x4(%ebp),%eax
ab2eba:	89 45 d4             	mov    %eax,-0x2c(%ebp)
ab2ebd:	8d 45 f8             	lea    -0x8(%ebp),%eax
ab2ec0:	89 45 d8             	mov    %eax,-0x28(%ebp)
ab2ec3:	8d 45 e8             	lea    -0x18(%ebp),%eax
ab2ec6:	89 45 dc             	mov    %eax,-0x24(%ebp)
ab2ec9:	8d 45 f4             	lea    -0xc(%ebp),%eax
ab2ecc:	89 45 e0             	mov    %eax,-0x20(%ebp)
ab2ecf:	8d 45 f0             	lea    -0x10(%ebp),%eax
ab2ed2:	89 45 e4             	mov    %eax,-0x1c(%ebp)
ab2ed5:	8d 45 d4             	lea    -0x2c(%ebp),%eax
ab2ed8:	50                   	push   %eax
ab2ed9:	52                   	push   %edx
ab2eda:	e8 c0 8e 98 ff       	call   0x43bd9f
ab2edf:	59                   	pop    %ecx
ab2ee0:	59                   	pop    %ecx
ab2ee1:	8b e5                	mov    %ebp,%esp
ab2ee3:	5d                   	pop    %ebp
ab2ee4:	c3                   	ret
ab2ee5:	cc                   	int3
ab2ee6:	cc                   	int3
ab2ee7:	cc                   	int3
ab2ee8:	cc                   	int3
ab2ee9:	cc                   	int3
ab2eea:	cc                   	int3
ab2eeb:	cc                   	int3
ab2eec:	cc                   	int3
ab2eed:	cc                   	int3
ab2eee:	cc                   	int3
ab2eef:	cc                   	int3
ab2ef0:	cc                   	int3
ab2ef1:	cc                   	int3
ab2ef2:	cc                   	int3
ab2ef3:	cc                   	int3
ab2ef4:	cc                   	int3
ab2ef5:	cc                   	int3
ab2ef6:	cc                   	int3
ab2ef7:	cc                   	int3
ab2ef8:	cc                   	int3
ab2ef9:	cc                   	int3
ab2efa:	cc                   	int3
ab2efb:	cc                   	int3
ab2efc:	cc                   	int3
ab2efd:	cc                   	int3
ab2efe:	cc                   	int3
ab2eff:	cc                   	int3
ab2f00:	cc                   	int3
ab2f01:	cc                   	int3
ab2f02:	8b ff                	mov    %edi,%edi
ab2f04:	55                   	push   %ebp
ab2f05:	8b ec                	mov    %esp,%ebp
ab2f07:	83 ec 2c             	sub    $0x2c,%esp
ab2f0a:	8b 45 1c             	mov    0x1c(%ebp),%eax
ab2f0d:	8b 55 10             	mov    0x10(%ebp),%edx
ab2f10:	8b 4d 14             	mov    0x14(%ebp),%ecx
ab2f13:	89 45 f0             	mov    %eax,-0x10(%ebp)
ab2f16:	8b 45 18             	mov    0x18(%ebp),%eax
ab2f19:	89 45 fc             	mov    %eax,-0x4(%ebp)
ab2f1c:	8b 45 08             	mov    0x8(%ebp),%eax
ab2f1f:	89 45 e8             	mov    %eax,-0x18(%ebp)
ab2f22:	8b 45 0c             	mov    0xc(%ebp),%eax
ab2f25:	89 4d f4             	mov    %ecx,-0xc(%ebp)
ab2f28:	89 55 f8             	mov    %edx,-0x8(%ebp)
ab2f2b:	89 45 ec             	mov    %eax,-0x14(%ebp)
ab2f2e:	85 d2                	test   %edx,%edx
ab2f30:	75 15                	jne    0xab2f47
ab2f32:	e8 38 b9 98 ff       	call   0x43e86f
ab2f37:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
ab2f3d:	e8 b6 c3 96 ff       	call   0x41f2f8
ab2f42:	83 c8 ff             	or     $0xffffffff,%eax
ab2f45:	eb 2e                	jmp    0xab2f75
ab2f47:	85 c9                	test   %ecx,%ecx
ab2f49:	74 e7                	je     0xab2f32
ab2f4b:	8d 45 fc             	lea    -0x4(%ebp),%eax
ab2f4e:	89 45 d4             	mov    %eax,-0x2c(%ebp)
ab2f51:	8d 45 f8             	lea    -0x8(%ebp),%eax
ab2f54:	89 45 d8             	mov    %eax,-0x28(%ebp)
ab2f57:	8d 45 e8             	lea    -0x18(%ebp),%eax
ab2f5a:	89 45 dc             	mov    %eax,-0x24(%ebp)
ab2f5d:	8d 45 f4             	lea    -0xc(%ebp),%eax
ab2f60:	89 45 e0             	mov    %eax,-0x20(%ebp)
ab2f63:	8d 45 f0             	lea    -0x10(%ebp),%eax
ab2f66:	89 45 e4             	mov    %eax,-0x1c(%ebp)
ab2f69:	8d 45 d4             	lea    -0x2c(%ebp),%eax
ab2f6c:	50                   	push   %eax
ab2f6d:	52                   	push   %edx
ab2f6e:	e8 f9 6b 98 ff       	call   0x439b6c
ab2f73:	59                   	pop    %ecx
ab2f74:	59                   	pop    %ecx
ab2f75:	8b e5                	mov    %ebp,%esp
ab2f77:	5d                   	pop    %ebp
ab2f78:	c3                   	ret
ab2f79:	cc                   	int3
ab2f7a:	cc                   	int3
ab2f7b:	cc                   	int3
ab2f7c:	cc                   	int3
ab2f7d:	cc                   	int3
ab2f7e:	cc                   	int3
ab2f7f:	cc                   	int3
ab2f80:	cc                   	int3
ab2f81:	cc                   	int3
ab2f82:	cc                   	int3
ab2f83:	cc                   	int3
ab2f84:	cc                   	int3
ab2f85:	cc                   	int3
ab2f86:	cc                   	int3
ab2f87:	cc                   	int3
ab2f88:	cc                   	int3
ab2f89:	cc                   	int3
ab2f8a:	cc                   	int3
ab2f8b:	cc                   	int3
ab2f8c:	cc                   	int3
ab2f8d:	cc                   	int3
ab2f8e:	cc                   	int3
ab2f8f:	cc                   	int3
ab2f90:	cc                   	int3
ab2f91:	cc                   	int3
ab2f92:	cc                   	int3
ab2f93:	cc                   	int3
ab2f94:	cc                   	int3
ab2f95:	cc                   	int3
ab2f96:	8b ff                	mov    %edi,%edi
ab2f98:	55                   	push   %ebp
ab2f99:	8b ec                	mov    %esp,%ebp
ab2f9b:	ff 75 20             	push   0x20(%ebp)
ab2f9e:	ff 75 1c             	push   0x1c(%ebp)
ab2fa1:	ff 75 18             	push   0x18(%ebp)
ab2fa4:	ff 75 14             	push   0x14(%ebp)
ab2fa7:	ff 75 10             	push   0x10(%ebp)
ab2faa:	ff 75 0c             	push   0xc(%ebp)
ab2fad:	ff 75 08             	push   0x8(%ebp)
ab2fb0:	e8 a9 01 ff ff       	call   0xaa315e
ab2fb5:	83 c4 1c             	add    $0x1c,%esp
ab2fb8:	5d                   	pop    %ebp
ab2fb9:	c3                   	ret
ab2fba:	cc                   	int3
ab2fbb:	cc                   	int3
ab2fbc:	cc                   	int3
ab2fbd:	cc                   	int3
ab2fbe:	cc                   	int3
ab2fbf:	cc                   	int3
ab2fc0:	cc                   	int3
ab2fc1:	cc                   	int3
ab2fc2:	cc                   	int3
ab2fc3:	8b ff                	mov    %edi,%edi
ab2fc5:	55                   	push   %ebp
ab2fc6:	8b ec                	mov    %esp,%ebp
ab2fc8:	ff 75 20             	push   0x20(%ebp)
ab2fcb:	ff 75 1c             	push   0x1c(%ebp)
ab2fce:	ff 75 18             	push   0x18(%ebp)
ab2fd1:	ff 75 14             	push   0x14(%ebp)
ab2fd4:	ff 75 10             	push   0x10(%ebp)
ab2fd7:	ff 75 0c             	push   0xc(%ebp)
ab2fda:	ff 75 08             	push   0x8(%ebp)
ab2fdd:	e8 5f 02 ff ff       	call   0xaa3241
ab2fe2:	83 c4 1c             	add    $0x1c,%esp
ab2fe5:	5d                   	pop    %ebp
ab2fe6:	c3                   	ret
ab2fe7:	cc                   	int3
ab2fe8:	cc                   	int3
ab2fe9:	cc                   	int3
ab2fea:	cc                   	int3
ab2feb:	cc                   	int3
ab2fec:	cc                   	int3
ab2fed:	cc                   	int3
ab2fee:	cc                   	int3
ab2fef:	cc                   	int3
ab2ff0:	8b ff                	mov    %edi,%edi
ab2ff2:	55                   	push   %ebp
ab2ff3:	8b ec                	mov    %esp,%ebp
ab2ff5:	56                   	push   %esi
ab2ff6:	8b 75 14             	mov    0x14(%ebp),%esi
ab2ff9:	85 f6                	test   %esi,%esi
ab2ffb:	75 04                	jne    0xab3001
ab2ffd:	33 c0                	xor    %eax,%eax
ab2fff:	eb 6d                	jmp    0xab306e
ab3001:	8b 45 08             	mov    0x8(%ebp),%eax
ab3004:	85 c0                	test   %eax,%eax
ab3006:	75 13                	jne    0xab301b
ab3008:	e8 62 b8 98 ff       	call   0x43e86f
ab300d:	6a 16                	push   $0x16
ab300f:	5e                   	pop    %esi
ab3010:	89 30                	mov    %esi,(%eax)
ab3012:	e8 e1 c2 96 ff       	call   0x41f2f8
ab3017:	8b c6                	mov    %esi,%eax
ab3019:	eb 53                	jmp    0xab306e
ab301b:	57                   	push   %edi
ab301c:	8b 7d 10             	mov    0x10(%ebp),%edi
ab301f:	85 ff                	test   %edi,%edi
ab3021:	74 14                	je     0xab3037
ab3023:	39 75 0c             	cmp    %esi,0xc(%ebp)
ab3026:	72 0f                	jb     0xab3037
ab3028:	56                   	push   %esi
ab3029:	57                   	push   %edi
ab302a:	50                   	push   %eax
ab302b:	e8 52 16 96 ff       	call   0x414682
ab3030:	83 c4 0c             	add    $0xc,%esp
ab3033:	33 c0                	xor    %eax,%eax
ab3035:	eb 36                	jmp    0xab306d
ab3037:	ff 75 0c             	push   0xc(%ebp)
ab303a:	6a 00                	push   $0x0
ab303c:	50                   	push   %eax
ab303d:	e8 76 17 96 ff       	call   0x4147b8
ab3042:	83 c4 0c             	add    $0xc,%esp
ab3045:	85 ff                	test   %edi,%edi
ab3047:	75 09                	jne    0xab3052
ab3049:	e8 21 b8 98 ff       	call   0x43e86f
ab304e:	6a 16                	push   $0x16
ab3050:	eb 0c                	jmp    0xab305e
ab3052:	39 75 0c             	cmp    %esi,0xc(%ebp)
ab3055:	73 13                	jae    0xab306a
ab3057:	e8 13 b8 98 ff       	call   0x43e86f
ab305c:	6a 22                	push   $0x22
ab305e:	5e                   	pop    %esi
ab305f:	89 30                	mov    %esi,(%eax)
ab3061:	e8 92 c2 96 ff       	call   0x41f2f8
ab3066:	8b c6                	mov    %esi,%eax