516e96:	cc                   	int3
516e97:	cc                   	int3
516e98:	cc                   	int3
516e99:	cc                   	int3
516e9a:	cc                   	int3
516e9b:	cc                   	int3
516e9c:	cc                   	int3
516e9d:	cc                   	int3
516e9e:	cc                   	int3
516e9f:	cc                   	int3
516ea0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
516ea4:	85 c9                	test   %ecx,%ecx
516ea6:	75 1c                	jne    0x516ec4
516ea8:	68 cd 00 00 00       	push   $0xcd
516ead:	68 a8 18 63 00       	push   $0x6318a8
516eb2:	6a 43                	push   $0x43
516eb4:	6a 6e                	push   $0x6e
516eb6:	6a 25                	push   $0x25
516eb8:	e8 c3 20 fc ff       	call   0x4d8f80
516ebd:	83 c4 14             	add    $0x14,%esp
516ec0:	83 c8 ff             	or     $0xffffffff,%eax
516ec3:	c3                   	ret
516ec4:	8b 54 24 08          	mov    0x8(%esp),%edx
516ec8:	8b c2                	mov    %edx,%eax
516eca:	83 e8 01             	sub    $0x1,%eax
516ecd:	74 51                	je     0x516f20
516ecf:	83 e8 01             	sub    $0x1,%eax
516ed2:	74 42                	je     0x516f16
516ed4:	83 e8 01             	sub    $0x1,%eax
516ed7:	74 33                	je     0x516f0c
516ed9:	8b 01                	mov    (%ecx),%eax
516edb:	85 c0                	test   %eax,%eax
516edd:	74 11                	je     0x516ef0
516edf:	8b 40 10             	mov    0x10(%eax),%eax
516ee2:	85 c0                	test   %eax,%eax
516ee4:	74 0a                	je     0x516ef0
516ee6:	89 54 24 08          	mov    %edx,0x8(%esp)
516eea:	89 4c 24 04          	mov    %ecx,0x4(%esp)
516eee:	ff e0                	jmp    *%eax
516ef0:	68 e1 00 00 00       	push   $0xe1
516ef5:	68 a8 18 63 00       	push   $0x6318a8
516efa:	6a 6c                	push   $0x6c
516efc:	6a 6e                	push   $0x6e
516efe:	6a 25                	push   $0x25
516f00:	e8 7b 20 fc ff       	call   0x4d8f80
516f05:	83 c4 14             	add    $0x14,%esp
516f08:	83 c8 ff             	or     $0xffffffff,%eax
516f0b:	c3                   	ret
516f0c:	8b 44 24 0c          	mov    0xc(%esp),%eax
516f10:	09 41 0c             	or     %eax,0xc(%ecx)
516f13:	33 c0                	xor    %eax,%eax
516f15:	c3                   	ret
516f16:	8b 44 24 0c          	mov    0xc(%esp),%eax
516f1a:	89 41 0c             	mov    %eax,0xc(%ecx)
516f1d:	33 c0                	xor    %eax,%eax
516f1f:	c3                   	ret
516f20:	8b 41 0c             	mov    0xc(%ecx),%eax
516f23:	c3                   	ret
516f24:	cc                   	int3
516f25:	cc                   	int3
516f26:	cc                   	int3
516f27:	cc                   	int3
516f28:	cc                   	int3
516f29:	cc                   	int3
516f2a:	cc                   	int3
516f2b:	cc                   	int3
516f2c:	cc                   	int3
516f2d:	cc                   	int3
516f2e:	cc                   	int3
516f2f:	cc                   	int3
516f30:	56                   	push   %esi
516f31:	8b 74 24 08          	mov    0x8(%esp),%esi
516f35:	85 f6                	test   %esi,%esi
516f37:	0f 84 af 00 00 00    	je     0x516fec
516f3d:	83 c9 ff             	or     $0xffffffff,%ecx
516f40:	8d 46 08             	lea    0x8(%esi),%eax
516f43:	f0 0f c1 08          	lock xadd %ecx,(%eax)
516f47:	49                   	dec    %ecx
516f48:	85 c9                	test   %ecx,%ecx
516f4a:	0f 8f 9c 00 00 00    	jg     0x516fec
516f50:	f6 46 0c 04          	testb  $0x4,0xc(%esi)
516f54:	75 2c                	jne    0x516f82
516f56:	8b 06                	mov    (%esi),%eax
516f58:	8b 40 08             	mov    0x8(%eax),%eax
516f5b:	85 c0                	test   %eax,%eax
516f5d:	74 23                	je     0x516f82
516f5f:	56                   	push   %esi
516f60:	ff d0                	call   *%eax
516f62:	83 c4 04             	add    $0x4,%esp
516f65:	85 c0                	test   %eax,%eax
516f67:	75 19                	jne    0x516f82
516f69:	6a 4f                	push   $0x4f
516f6b:	68 a8 18 63 00       	push   $0x6318a8
516f70:	6a 6b                	push   $0x6b
516f72:	6a 6f                	push   $0x6f
516f74:	6a 25                	push   $0x25
516f76:	e8 05 20 fc ff       	call   0x4d8f80
516f7b:	83 c4 14             	add    $0x14,%esp
516f7e:	33 c0                	xor    %eax,%eax
516f80:	5e                   	pop    %esi
516f81:	c3                   	ret
516f82:	8b 06                	mov    (%esi),%eax
516f84:	8b 40 20             	mov    0x20(%eax),%eax
516f87:	85 c0                	test   %eax,%eax
516f89:	74 23                	je     0x516fae
516f8b:	56                   	push   %esi
516f8c:	ff d0                	call   *%eax
516f8e:	83 c4 04             	add    $0x4,%esp
516f91:	85 c0                	test   %eax,%eax
516f93:	75 19                	jne    0x516fae
516f95:	6a 55                	push   $0x55
516f97:	68 a8 18 63 00       	push   $0x6318a8
516f9c:	6a 66                	push   $0x66
516f9e:	6a 6f                	push   $0x6f
516fa0:	6a 25                	push   $0x25
516fa2:	e8 d9 1f fc ff       	call   0x4d8f80
516fa7:	83 c4 14             	add    $0x14,%esp
516faa:	33 c0                	xor    %eax,%eax
516fac:	5e                   	pop    %esi
516fad:	c3                   	ret
516fae:	ff 76 04             	push   0x4(%esi)
516fb1:	e8 6a df fc ff       	call   0x4e4f20
516fb6:	6a 5a                	push   $0x5a
516fb8:	68 a8 18 63 00       	push   $0x6318a8
516fbd:	ff 76 1c             	push   0x1c(%esi)
516fc0:	e8 bb 97 fc ff       	call   0x4e0780
516fc5:	6a 5b                	push   $0x5b
516fc7:	68 a8 18 63 00       	push   $0x6318a8
516fcc:	ff 76 20             	push   0x20(%esi)
516fcf:	e8 ac 97 fc ff       	call   0x4e0780
516fd4:	ff 76 24             	push   0x24(%esi)
516fd7:	e8 74 af fc ff       	call   0x4e1f50
516fdc:	6a 5d                	push   $0x5d
516fde:	68 a8 18 63 00       	push   $0x6318a8
516fe3:	56                   	push   %esi
516fe4:	e8 97 97 fc ff       	call   0x4e0780
516fe9:	83 c4 2c             	add    $0x2c,%esp
516fec:	b8 01 00 00 00       	mov    $0x1,%eax
516ff1:	5e                   	pop    %esi
516ff2:	c3                   	ret
516ff3:	cc                   	int3
516ff4:	cc                   	int3
516ff5:	cc                   	int3
516ff6:	cc                   	int3
516ff7:	cc                   	int3
516ff8:	cc                   	int3
516ff9:	cc                   	int3
516ffa:	cc                   	int3
516ffb:	cc                   	int3
516ffc:	cc                   	int3
516ffd:	cc                   	int3
516ffe:	cc                   	int3
516fff:	cc                   	int3
517000:	53                   	push   %ebx
517001:	56                   	push   %esi
517002:	8b 74 24 0c          	mov    0xc(%esp),%esi
517006:	57                   	push   %edi
517007:	33 ff                	xor    %edi,%edi
517009:	85 f6                	test   %esi,%esi
51700b:	75 39                	jne    0x517046
51700d:	ff 74 24 18          	push   0x18(%esp)
517011:	e8 8a 01 00 00       	call   0x5171a0
517016:	8b f0                	mov    %eax,%esi
517018:	83 c4 04             	add    $0x4,%esp
51701b:	85 f6                	test   %esi,%esi
51701d:	75 1b                	jne    0x51703a
51701f:	6a 7f                	push   $0x7f
517021:	68 a8 18 63 00       	push   $0x6318a8
517026:	6a 41                	push   $0x41
517028:	6a 70                	push   $0x70
51702a:	6a 25                	push   $0x25
51702c:	e8 4f 1f fc ff       	call   0x4d8f80
517031:	83 c4 14             	add    $0x14,%esp
517034:	33 c0                	xor    %eax,%eax
517036:	5f                   	pop    %edi
517037:	5e                   	pop    %esi
517038:	5b                   	pop    %ebx
517039:	c3                   	ret
51703a:	8b 44 24 1c          	mov    0x1c(%esp),%eax
51703e:	bf 01 00 00 00       	mov    $0x1,%edi
517043:	89 46 0c             	mov    %eax,0xc(%esi)
517046:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
51704a:	74 0d                	je     0x517059
51704c:	b8 6e 00 00 00       	mov    $0x6e,%eax
517051:	8d 48 1e             	lea    0x1e(%eax),%ecx
517054:	e9 b0 00 00 00       	jmp    0x517109
517059:	8b 44 24 14          	mov    0x14(%esp),%eax
51705d:	85 c0                	test   %eax,%eax
51705f:	0f 84 9a 00 00 00    	je     0x5170ff
517065:	83 7e 20 00          	cmpl   $0x0,0x20(%esi)
517069:	74 0c                	je     0x517077
51706b:	b8 6e 00 00 00       	mov    $0x6e,%eax
517070:	b9 f9 00 00 00       	mov    $0xf9,%ecx
517075:	eb 23                	jmp    0x51709a
517077:	68 fd 00 00 00       	push   $0xfd
51707c:	68 a8 18 63 00       	push   $0x6318a8
517081:	50                   	push   %eax
517082:	e8 49 b0 fc ff       	call   0x4e20d0
517087:	8b d8                	mov    %eax,%ebx
517089:	83 c4 0c             	add    $0xc,%esp
51708c:	85 db                	test   %ebx,%ebx
51708e:	75 2a                	jne    0x5170ba
517090:	b8 41 00 00 00       	mov    $0x41,%eax
517095:	b9 ff 00 00 00       	mov    $0xff,%ecx
51709a:	51                   	push   %ecx
51709b:	68 a8 18 63 00       	push   $0x6318a8
5170a0:	50                   	push   %eax
5170a1:	68 81 00 00 00       	push   $0x81
5170a6:	6a 25                	push   $0x25
5170a8:	e8 d3 1e fc ff       	call   0x4d8f80
5170ad:	b8 70 00 00 00       	mov    $0x70,%eax
5170b2:	83 c4 14             	add    $0x14,%esp
5170b5:	8d 48 25             	lea    0x25(%eax),%ecx
5170b8:	eb 4f                	jmp    0x517109
5170ba:	68 02 01 00 00       	push   $0x102
5170bf:	68 a8 18 63 00       	push   $0x6318a8
5170c4:	ff 76 1c             	push   0x1c(%esi)
5170c7:	e8 b4 96 fc ff       	call   0x4e0780
5170cc:	8b 06                	mov    (%esi),%eax
5170ce:	83 c4 0c             	add    $0xc,%esp
5170d1:	89 5e 1c             	mov    %ebx,0x1c(%esi)
5170d4:	8b 40 04             	mov    0x4(%eax),%eax
5170d7:	85 c0                	test   %eax,%eax
5170d9:	75 0a                	jne    0x5170e5
5170db:	b8 6c 00 00 00       	mov    $0x6c,%eax
5170e0:	8d 48 32             	lea    0x32(%eax),%ecx
5170e3:	eb 24                	jmp    0x517109
5170e5:	56                   	push   %esi
5170e6:	ff d0                	call   *%eax
5170e8:	83 c4 04             	add    $0x4,%esp
5170eb:	85 c0                	test   %eax,%eax
5170ed:	75 0a                	jne    0x5170f9
5170ef:	b8 67 00 00 00       	mov    $0x67,%eax
5170f4:	8d 48 3b             	lea    0x3b(%eax),%ecx
5170f7:	eb 10                	jmp    0x517109
5170f9:	5f                   	pop    %edi
5170fa:	8b c6                	mov    %esi,%eax
5170fc:	5e                   	pop    %esi
5170fd:	5b                   	pop    %ebx
5170fe:	c3                   	ret
5170ff:	b8 6f 00 00 00       	mov    $0x6f,%eax
517104:	b9 9a 00 00 00       	mov    $0x9a,%ecx
517109:	51                   	push   %ecx
51710a:	68 a8 18 63 00       	push   $0x6318a8
51710f:	50                   	push   %eax
517110:	6a 70                	push   $0x70
517112:	6a 25                	push   $0x25
517114:	e8 67 1e fc ff       	call   0x4d8f80
517119:	83 c4 14             	add    $0x14,%esp
51711c:	85 ff                	test   %edi,%edi
51711e:	74 09                	je     0x517129
517120:	56                   	push   %esi
517121:	e8 0a fe ff ff       	call   0x516f30
517126:	83 c4 04             	add    $0x4,%esp
517129:	5f                   	pop    %edi
51712a:	5e                   	pop    %esi
51712b:	33 c0                	xor    %eax,%eax
51712d:	5b                   	pop    %ebx
51712e:	c3                   	ret
51712f:	cc                   	int3
517130:	8b 4c 24 04          	mov    0x4(%esp),%ecx
517134:	33 d2                	xor    %edx,%edx
517136:	56                   	push   %esi
517137:	85 c9                	test   %ecx,%ecx
517139:	74 2f                	je     0x51716a
51713b:	8b 74 24 0c          	mov    0xc(%esp),%esi
51713f:	85 f6                	test   %esi,%esi
517141:	74 27                	je     0x51716a
517143:	f6 41 0c 01          	testb  $0x1,0xc(%ecx)
517147:	75 1d                	jne    0x517166
517149:	8b 41 18             	mov    0x18(%ecx),%eax
51714c:	85 c0                	test   %eax,%eax
51714e:	75 09                	jne    0x517159
517150:	8b 01                	mov    (%ecx),%eax
517152:	8b 40 18             	mov    0x18(%eax),%eax
517155:	85 c0                	test   %eax,%eax
517157:	74 0d                	je     0x517166
517159:	ff 74 24 10          	push   0x10(%esp)
51715d:	56                   	push   %esi
51715e:	51                   	push   %ecx
51715f:	ff d0                	call   *%eax
517161:	8b d0                	mov    %eax,%edx
517163:	83 c4 0c             	add    $0xc,%esp
517166:	8b c2                	mov    %edx,%eax
517168:	5e                   	pop    %esi
517169:	c3                   	ret
51716a:	68 0c 01 00 00       	push   $0x10c
51716f:	68 a8 18 63 00       	push   $0x6318a8
517174:	6a 43                	push   $0x43
517176:	68 84 00 00 00       	push   $0x84
51717b:	6a 25                	push   $0x25
51717d:	e8 fe 1d fc ff       	call   0x4d8f80
517182:	83 c4 14             	add    $0x14,%esp
517185:	33 c0                	xor    %eax,%eax
517187:	5e                   	pop    %esi
517188:	c3                   	ret
517189:	cc                   	int3
51718a:	cc                   	int3
51718b:	cc                   	int3
51718c:	cc                   	int3
51718d:	cc                   	int3
51718e:	cc                   	int3
51718f:	cc                   	int3
517190:	6a 00                	push   $0x0
517192:	e8 09 00 00 00       	call   0x5171a0
517197:	83 c4 04             	add    $0x4,%esp
51719a:	c3                   	ret
51719b:	cc                   	int3
51719c:	cc                   	int3
51719d:	cc                   	int3
51719e:	cc                   	int3
51719f:	cc                   	int3
5171a0:	83 3d 38 6a 69 00 00 	cmpl   $0x0,0x696a38
5171a7:	75 0a                	jne    0x5171b3
5171a9:	e8 a2 cd 03 00       	call   0x553f50
5171ae:	a3 38 6a 69 00       	mov    %eax,0x696a38
5171b3:	56                   	push   %esi
5171b4:	6a 1b                	push   $0x1b
5171b6:	68 a8 18 63 00       	push   $0x6318a8
5171bb:	6a 28                	push   $0x28
5171bd:	e8 7e 98 fc ff       	call   0x4e0a40
5171c2:	8b f0                	mov    %eax,%esi
5171c4:	83 c4 0c             	add    $0xc,%esp
5171c7:	85 f6                	test   %esi,%esi
5171c9:	75 19                	jne    0x5171e4
5171cb:	6a 1d                	push   $0x1d
5171cd:	68 a8 18 63 00       	push   $0x6318a8
5171d2:	6a 41                	push   $0x41
5171d4:	6a 71                	push   $0x71
5171d6:	6a 25                	push   $0x25
5171d8:	e8 a3 1d fc ff       	call   0x4d8f80
5171dd:	83 c4 14             	add    $0x14,%esp
5171e0:	33 c0                	xor    %eax,%eax
5171e2:	5e                   	pop    %esi
5171e3:	c3                   	ret
5171e4:	e8 37 de fc ff       	call   0x4e5020
5171e9:	89 46 04             	mov    %eax,0x4(%esi)
5171ec:	85 c0                	test   %eax,%eax
5171ee:	75 26                	jne    0x517216
5171f0:	6a 23                	push   $0x23
5171f2:	68 a8 18 63 00       	push   $0x6318a8
5171f7:	6a 41                	push   $0x41
5171f9:	6a 71                	push   $0x71
5171fb:	6a 25                	push   $0x25
5171fd:	e8 7e 1d fc ff       	call   0x4d8f80
517202:	6a 24                	push   $0x24
517204:	68 a8 18 63 00       	push   $0x6318a8
517209:	56                   	push   %esi
51720a:	e8 71 95 fc ff       	call   0x4e0780
51720f:	83 c4 20             	add    $0x20,%esp