ab5d16:	cc                   	int3
ab5d17:	cc                   	int3
ab5d18:	cc                   	int3
ab5d19:	cc                   	int3
ab5d1a:	8b ff                	mov    %edi,%edi
ab5d1c:	55                   	push   %ebp
ab5d1d:	8b ec                	mov    %esp,%ebp
ab5d1f:	56                   	push   %esi
ab5d20:	8b 75 08             	mov    0x8(%ebp),%esi
ab5d23:	85 f6                	test   %esi,%esi
ab5d25:	75 15                	jne    0xab5d3c
ab5d27:	e8 43 8b 98 ff       	call   0x43e86f
ab5d2c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
ab5d32:	e8 c1 95 96 ff       	call   0x41f2f8
ab5d37:	83 c8 ff             	or     $0xffffffff,%eax
ab5d3a:	eb 51                	jmp    0xab5d8d
ab5d3c:	8b 46 0c             	mov    0xc(%esi),%eax
ab5d3f:	57                   	push   %edi
ab5d40:	83 cf ff             	or     $0xffffffff,%edi
ab5d43:	c1 e8 0d             	shr    $0xd,%eax
ab5d46:	a8 01                	test   $0x1,%al
ab5d48:	74 39                	je     0xab5d83
ab5d4a:	56                   	push   %esi
ab5d4b:	e8 a7 4a 97 ff       	call   0x42a7f7
ab5d50:	56                   	push   %esi
ab5d51:	8b f8                	mov    %eax,%edi
ab5d53:	e8 e8 4e 95 ff       	call   0x40ac40
ab5d58:	56                   	push   %esi
ab5d59:	e8 8c 6a 98 ff       	call   0x43c7ea
ab5d5e:	50                   	push   %eax
ab5d5f:	e8 ea 88 98 ff       	call   0x43e64e
ab5d64:	83 c4 10             	add    $0x10,%esp
ab5d67:	85 c0                	test   %eax,%eax
ab5d69:	79 05                	jns    0xab5d70
ab5d6b:	83 cf ff             	or     $0xffffffff,%edi
ab5d6e:	eb 13                	jmp    0xab5d83
ab5d70:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
ab5d74:	74 0d                	je     0xab5d83
ab5d76:	ff 76 1c             	push   0x1c(%esi)
ab5d79:	e8 68 c4 97 ff       	call   0x4321e6
ab5d7e:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
ab5d82:	59                   	pop    %ecx
ab5d83:	56                   	push   %esi
ab5d84:	e8 71 23 98 ff       	call   0x4380fa
ab5d89:	59                   	pop    %ecx
ab5d8a:	8b c7                	mov    %edi,%eax
ab5d8c:	5f                   	pop    %edi
ab5d8d:	5e                   	pop    %esi
ab5d8e:	5d                   	pop    %ebp
ab5d8f:	c3                   	ret
ab5d90:	cc                   	int3
ab5d91:	cc                   	int3
ab5d92:	cc                   	int3
ab5d93:	cc                   	int3
ab5d94:	cc                   	int3
ab5d95:	cc                   	int3
ab5d96:	cc                   	int3
ab5d97:	cc                   	int3
ab5d98:	cc                   	int3
ab5d99:	cc                   	int3
ab5d9a:	cc                   	int3
ab5d9b:	cc                   	int3
ab5d9c:	cc                   	int3
ab5d9d:	cc                   	int3
ab5d9e:	cc                   	int3
ab5d9f:	cc                   	int3
ab5da0:	cc                   	int3
ab5da1:	cc                   	int3
ab5da2:	cc                   	int3
ab5da3:	cc                   	int3
ab5da4:	cc                   	int3
ab5da5:	cc                   	int3
ab5da6:	cc                   	int3
ab5da7:	cc                   	int3
ab5da8:	cc                   	int3
ab5da9:	cc                   	int3
ab5daa:	cc                   	int3
ab5dab:	cc                   	int3
ab5dac:	cc                   	int3
ab5dad:	6a 10                	push   $0x10
ab5daf:	68 50 bd d4 00       	push   $0xd4bd50
ab5db4:	e8 bb e5 97 ff       	call   0x434374
ab5db9:	8b 75 08             	mov    0x8(%ebp),%esi
ab5dbc:	89 75 e0             	mov    %esi,-0x20(%ebp)
ab5dbf:	33 c0                	xor    %eax,%eax
ab5dc1:	85 f6                	test   %esi,%esi
ab5dc3:	0f 95 c0             	setne  %al
ab5dc6:	85 c0                	test   %eax,%eax
ab5dc8:	75 15                	jne    0xab5ddf
ab5dca:	e8 a0 8a 98 ff       	call   0x43e86f
ab5dcf:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
ab5dd5:	e8 1e 95 96 ff       	call   0x41f2f8
ab5dda:	83 c8 ff             	or     $0xffffffff,%eax
ab5ddd:	eb 3b                	jmp    0xab5e1a
ab5ddf:	8b 46 0c             	mov    0xc(%esi),%eax
ab5de2:	c1 e8 0c             	shr    $0xc,%eax
ab5de5:	56                   	push   %esi
ab5de6:	a8 01                	test   $0x1,%al
ab5de8:	74 08                	je     0xab5df2
ab5dea:	e8 0b 23 98 ff       	call   0x4380fa
ab5def:	59                   	pop    %ecx
ab5df0:	eb e8                	jmp    0xab5dda
ab5df2:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
ab5df6:	e8 da 03 96 ff       	call   0x4161d5
ab5dfb:	59                   	pop    %ecx
ab5dfc:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
ab5e00:	56                   	push   %esi
ab5e01:	e8 3e 08 96 ff       	call   0x416644
ab5e06:	59                   	pop    %ecx
ab5e07:	8b f0                	mov    %eax,%esi
ab5e09:	89 75 e4             	mov    %esi,-0x1c(%ebp)
ab5e0c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
ab5e13:	e8 0b 00 00 00       	call   0xab5e23
ab5e18:	8b c6                	mov    %esi,%eax
ab5e1a:	e8 96 3b 97 ff       	call   0x4299b5
ab5e1f:	c3                   	ret
ab5e20:	8b 75 e4             	mov    -0x1c(%ebp),%esi
ab5e23:	ff 75 e0             	push   -0x20(%ebp)
ab5e26:	e8 8d 01 97 ff       	call   0x425fb8
ab5e2b:	59                   	pop    %ecx
ab5e2c:	c3                   	ret
ab5e2d:	cc                   	int3
ab5e2e:	cc                   	int3
ab5e2f:	cc                   	int3
ab5e30:	cc                   	int3
ab5e31:	cc                   	int3
ab5e32:	cc                   	int3
ab5e33:	cc                   	int3
ab5e34:	cc                   	int3
ab5e35:	cc                   	int3
ab5e36:	cc                   	int3
ab5e37:	cc                   	int3
ab5e38:	cc                   	int3
ab5e39:	cc                   	int3
ab5e3a:	cc                   	int3
ab5e3b:	cc                   	int3
ab5e3c:	cc                   	int3
ab5e3d:	cc                   	int3
ab5e3e:	cc                   	int3
ab5e3f:	cc                   	int3
ab5e40:	cc                   	int3
ab5e41:	cc                   	int3
ab5e42:	cc                   	int3
ab5e43:	cc                   	int3
ab5e44:	cc                   	int3
ab5e45:	cc                   	int3
ab5e46:	cc                   	int3
ab5e47:	cc                   	int3
ab5e48:	cc                   	int3
ab5e49:	cc                   	int3
ab5e4a:	cc                   	int3
ab5e4b:	cc                   	int3
ab5e4c:	cc                   	int3
ab5e4d:	8b ff                	mov    %edi,%edi
ab5e4f:	55                   	push   %ebp
ab5e50:	8b ec                	mov    %esp,%ebp
ab5e52:	53                   	push   %ebx
ab5e53:	56                   	push   %esi
ab5e54:	8b 75 08             	mov    0x8(%ebp),%esi
ab5e57:	2b 75 10             	sub    0x10(%ebp),%esi
ab5e5a:	57                   	push   %edi
ab5e5b:	8b 7d 0c             	mov    0xc(%ebp),%edi
ab5e5e:	1b 7d 14             	sbb    0x14(%ebp),%edi
ab5e61:	33 c9                	xor    %ecx,%ecx
ab5e63:	33 c0                	xor    %eax,%eax
ab5e65:	41                   	inc    %ecx
ab5e66:	39 45 0c             	cmp    %eax,0xc(%ebp)
ab5e69:	7f 0b                	jg     0xab5e76
ab5e6b:	7c 05                	jl     0xab5e72
ab5e6d:	39 45 08             	cmp    %eax,0x8(%ebp)
ab5e70:	73 04                	jae    0xab5e76
ab5e72:	8b d9                	mov    %ecx,%ebx
ab5e74:	eb 02                	jmp    0xab5e78
ab5e76:	8b d8                	mov    %eax,%ebx
ab5e78:	39 45 14             	cmp    %eax,0x14(%ebp)
ab5e7b:	7f 0b                	jg     0xab5e88
ab5e7d:	7c 05                	jl     0xab5e84
ab5e7f:	39 45 10             	cmp    %eax,0x10(%ebp)
ab5e82:	73 04                	jae    0xab5e88
ab5e84:	8b d1                	mov    %ecx,%edx
ab5e86:	eb 02                	jmp    0xab5e8a
ab5e88:	8b d0                	mov    %eax,%edx
ab5e8a:	3b da                	cmp    %edx,%ebx
ab5e8c:	74 33                	je     0xab5ec1
ab5e8e:	39 45 0c             	cmp    %eax,0xc(%ebp)
ab5e91:	7f 0b                	jg     0xab5e9e
ab5e93:	7c 05                	jl     0xab5e9a
ab5e95:	39 45 08             	cmp    %eax,0x8(%ebp)
ab5e98:	73 04                	jae    0xab5e9e
ab5e9a:	8b d1                	mov    %ecx,%edx
ab5e9c:	eb 02                	jmp    0xab5ea0
ab5e9e:	8b d0                	mov    %eax,%edx
ab5ea0:	3b f8                	cmp    %eax,%edi
ab5ea2:	7f 06                	jg     0xab5eaa
ab5ea4:	7c 06                	jl     0xab5eac
ab5ea6:	3b f0                	cmp    %eax,%esi
ab5ea8:	72 02                	jb     0xab5eac
ab5eaa:	8b c8                	mov    %eax,%ecx
ab5eac:	3b d1                	cmp    %ecx,%edx
ab5eae:	74 11                	je     0xab5ec1
ab5eb0:	8b 45 18             	mov    0x18(%ebp),%eax
ab5eb3:	83 08 ff             	orl    $0xffffffff,(%eax)
ab5eb6:	83 48 04 ff          	orl    $0xffffffff,0x4(%eax)
ab5eba:	b8 16 02 07 80       	mov    $0x80070216,%eax
ab5ebf:	eb 08                	jmp    0xab5ec9
ab5ec1:	8b 4d 18             	mov    0x18(%ebp),%ecx
ab5ec4:	89 31                	mov    %esi,(%ecx)
ab5ec6:	89 79 04             	mov    %edi,0x4(%ecx)
ab5ec9:	5f                   	pop    %edi
ab5eca:	5e                   	pop    %esi
ab5ecb:	5b                   	pop    %ebx
ab5ecc:	5d                   	pop    %ebp
ab5ecd:	c3                   	ret
ab5ece:	cc                   	int3
ab5ecf:	cc                   	int3
ab5ed0:	cc                   	int3
ab5ed1:	cc                   	int3
ab5ed2:	cc                   	int3
ab5ed3:	cc                   	int3
ab5ed4:	cc                   	int3
ab5ed5:	cc                   	int3
ab5ed6:	cc                   	int3
ab5ed7:	cc                   	int3
ab5ed8:	cc                   	int3
ab5ed9:	cc                   	int3
ab5eda:	cc                   	int3
ab5edb:	cc                   	int3
ab5edc:	cc                   	int3
ab5edd:	cc                   	int3
ab5ede:	cc                   	int3
ab5edf:	cc                   	int3
ab5ee0:	cc                   	int3
ab5ee1:	cc                   	int3
ab5ee2:	cc                   	int3
ab5ee3:	cc                   	int3
ab5ee4:	cc                   	int3
ab5ee5:	cc                   	int3
ab5ee6:	cc                   	int3
ab5ee7:	cc                   	int3
ab5ee8:	cc                   	int3
ab5ee9:	cc                   	int3
ab5eea:	cc                   	int3
ab5eeb:	cc                   	int3
ab5eec:	cc                   	int3
ab5eed:	cc                   	int3
ab5eee:	6a 0c                	push   $0xc
ab5ef0:	68 70 bd d4 00       	push   $0xd4bd70
ab5ef5:	e8 7a e4 97 ff       	call   0x434374
ab5efa:	33 c0                	xor    %eax,%eax
ab5efc:	39 45 08             	cmp    %eax,0x8(%ebp)
ab5eff:	0f 95 c0             	setne  %al
ab5f02:	85 c0                	test   %eax,%eax
ab5f04:	75 15                	jne    0xab5f1b
ab5f06:	e8 64 89 98 ff       	call   0x43e86f
ab5f0b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
ab5f11:	e8 e2 93 96 ff       	call   0x41f2f8
ab5f16:	83 c8 ff             	or     $0xffffffff,%eax
ab5f19:	eb 47                	jmp    0xab5f62
ab5f1b:	8b 75 14             	mov    0x14(%ebp),%esi
ab5f1e:	85 f6                	test   %esi,%esi
ab5f20:	74 0a                	je     0xab5f2c
ab5f22:	83 fe 01             	cmp    $0x1,%esi
ab5f25:	74 05                	je     0xab5f2c
ab5f27:	83 fe 02             	cmp    $0x2,%esi
ab5f2a:	75 da                	jne    0xab5f06
ab5f2c:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
ab5f30:	ff 75 08             	push   0x8(%ebp)
ab5f33:	e8 9d 02 96 ff       	call   0x4161d5
ab5f38:	59                   	pop    %ecx
ab5f39:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
ab5f3d:	56                   	push   %esi
ab5f3e:	ff 75 10             	push   0x10(%ebp)
ab5f41:	ff 75 0c             	push   0xc(%ebp)
ab5f44:	ff 75 08             	push   0x8(%ebp)
ab5f47:	e8 59 01 00 00       	call   0xab60a5
ab5f4c:	83 c4 10             	add    $0x10,%esp
ab5f4f:	8b f0                	mov    %eax,%esi
ab5f51:	89 75 e4             	mov    %esi,-0x1c(%ebp)
ab5f54:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
ab5f5b:	e8 0b 00 00 00       	call   0xab5f6b
ab5f60:	8b c6                	mov    %esi,%eax
ab5f62:	e8 4e 3a 97 ff       	call   0x4299b5
ab5f67:	c3                   	ret
ab5f68:	8b 75 e4             	mov    -0x1c(%ebp),%esi
ab5f6b:	ff 75 08             	push   0x8(%ebp)
ab5f6e:	e8 45 00 97 ff       	call   0x425fb8
ab5f73:	59                   	pop    %ecx
ab5f74:	c3                   	ret
ab5f75:	cc                   	int3
ab5f76:	cc                   	int3
ab5f77:	cc                   	int3
ab5f78:	cc                   	int3
ab5f79:	cc                   	int3
ab5f7a:	cc                   	int3
ab5f7b:	cc                   	int3
ab5f7c:	cc                   	int3
ab5f7d:	cc                   	int3
ab5f7e:	cc                   	int3
ab5f7f:	cc                   	int3
ab5f80:	cc                   	int3
ab5f81:	cc                   	int3
ab5f82:	cc                   	int3
ab5f83:	cc                   	int3
ab5f84:	cc                   	int3
ab5f85:	cc                   	int3
ab5f86:	cc                   	int3
ab5f87:	cc                   	int3
ab5f88:	cc                   	int3
ab5f89:	cc                   	int3
ab5f8a:	cc                   	int3
ab5f8b:	cc                   	int3
ab5f8c:	cc                   	int3
ab5f8d:	cc                   	int3
ab5f8e:	cc                   	int3
ab5f8f:	cc                   	int3
ab5f90:	cc                   	int3
ab5f91:	cc                   	int3
ab5f92:	cc                   	int3
ab5f93:	cc                   	int3
ab5f94:	cc                   	int3
ab5f95:	cc                   	int3
ab5f96:	8b ff                	mov    %edi,%edi
ab5f98:	55                   	push   %ebp
ab5f99:	8b ec                	mov    %esp,%ebp
ab5f9b:	83 7d 14 02          	cmpl   $0x2,0x14(%ebp)
ab5f9f:	57                   	push   %edi
ab5fa0:	75 07                	jne    0xab5fa9
ab5fa2:	32 c0                	xor    %al,%al
ab5fa4:	e9 8d 00 00 00       	jmp    0xab6036
ab5fa9:	8b 45 08             	mov    0x8(%ebp),%eax
ab5fac:	8b 40 0c             	mov    0xc(%eax),%eax
ab5faf:	a9 c0 04 00 00       	test   $0x4c0,%eax
ab5fb4:	74 ec                	je     0xab5fa2
ab5fb6:	8b 45 08             	mov    0x8(%ebp),%eax
ab5fb9:	8b 40 0c             	mov    0xc(%eax),%eax
ab5fbc:	a8 06                	test   $0x6,%al
ab5fbe:	75 e2                	jne    0xab5fa2
ab5fc0:	8b 45 08             	mov    0x8(%ebp),%eax
ab5fc3:	56                   	push   %esi
ab5fc4:	33 f6                	xor    %esi,%esi
ab5fc6:	39 70 08             	cmp    %esi,0x8(%eax)
ab5fc9:	7e 68                	jle    0xab6033
ab5fcb:	8b 50 10             	mov    0x10(%eax),%edx
ab5fce:	8b c2                	mov    %edx,%eax
ab5fd0:	8b ca                	mov    %edx,%ecx
ab5fd2:	83 e0 3f             	and    $0x3f,%eax
ab5fd5:	c1 f9 06             	sar    $0x6,%ecx
ab5fd8:	6b c0 30             	imul   $0x30,%eax,%eax
ab5fdb:	8b 0c 8d 50 26 d8 00 	mov    0xd82650(,%ecx,4),%ecx
ab5fe2:	f6 44 01 28 80       	testb  $0x80,0x28(%ecx,%eax,1)