405f83:	55                   	push   %ebp
405f84:	8b ec                	mov    %esp,%ebp
405f86:	8b 01                	mov    (%ecx),%eax
405f88:	8b 08                	mov    (%eax),%ecx
405f8a:	8b 45 08             	mov    0x8(%ebp),%eax
405f8d:	89 08                	mov    %ecx,(%eax)
405f8f:	5d                   	pop    %ebp
405f90:	c2 04 00             	ret    $0x4
405f93:	8b 11                	mov    (%ecx),%edx
405f95:	80 7a 0d 00          	cmpb   $0x0,0xd(%edx)
405f99:	75 3c                	jne    0x405fd7
405f9b:	56                   	push   %esi
405f9c:	8b 72 08             	mov    0x8(%edx),%esi
405f9f:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
405fa3:	75 18                	jne    0x405fbd
405fa5:	8b 16                	mov    (%esi),%edx
405fa7:	80 7a 0d 00          	cmpb   $0x0,0xd(%edx)
405fab:	75 0c                	jne    0x405fb9
405fad:	8b 02                	mov    (%edx),%eax
405faf:	8b f2                	mov    %edx,%esi
405fb1:	8b d0                	mov    %eax,%edx
405fb3:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
405fb7:	74 f4                	je     0x405fad
405fb9:	89 31                	mov    %esi,(%ecx)
405fbb:	eb 19                	jmp    0x405fd6
405fbd:	8b 42 04             	mov    0x4(%edx),%eax
405fc0:	eb 0c                	jmp    0x405fce
405fc2:	3b 50 08             	cmp    0x8(%eax),%edx
405fc5:	75 0d                	jne    0x405fd4
405fc7:	89 01                	mov    %eax,(%ecx)
405fc9:	8b d0                	mov    %eax,%edx
405fcb:	8b 40 04             	mov    0x4(%eax),%eax
405fce:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
405fd2:	74 ee                	je     0x405fc2
405fd4:	89 01                	mov    %eax,(%ecx)
405fd6:	5e                   	pop    %esi
405fd7:	8b c1                	mov    %ecx,%eax
405fd9:	c3                   	ret
405fda:	8b ff                	mov    %edi,%edi
405fdc:	55                   	push   %ebp
405fdd:	8b ec                	mov    %esp,%ebp
405fdf:	8b 55 08             	mov    0x8(%ebp),%edx
405fe2:	56                   	push   %esi
405fe3:	8b 32                	mov    (%edx),%esi
405fe5:	8b 46 08             	mov    0x8(%esi),%eax
405fe8:	89 02                	mov    %eax,(%edx)
405fea:	8b 46 08             	mov    0x8(%esi),%eax
405fed:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
405ff1:	75 03                	jne    0x405ff6
405ff3:	89 50 04             	mov    %edx,0x4(%eax)
405ff6:	8b 42 04             	mov    0x4(%edx),%eax
405ff9:	89 46 04             	mov    %eax,0x4(%esi)
405ffc:	8b 01                	mov    (%ecx),%eax
405ffe:	3b 50 04             	cmp    0x4(%eax),%edx
406001:	75 05                	jne    0x406008
406003:	89 70 04             	mov    %esi,0x4(%eax)
406006:	eb 0f                	jmp    0x406017
406008:	8b 42 04             	mov    0x4(%edx),%eax
40600b:	3b 50 08             	cmp    0x8(%eax),%edx
40600e:	75 05                	jne    0x406015
406010:	89 70 08             	mov    %esi,0x8(%eax)
406013:	eb 02                	jmp    0x406017
406015:	89 30                	mov    %esi,(%eax)
406017:	89 56 08             	mov    %edx,0x8(%esi)
40601a:	89 72 04             	mov    %esi,0x4(%edx)
40601d:	5e                   	pop    %esi
40601e:	5d                   	pop    %ebp
40601f:	c2 04 00             	ret    $0x4
406022:	8b ff                	mov    %edi,%edi
406024:	55                   	push   %ebp
406025:	8b ec                	mov    %esp,%ebp
406027:	8b 55 08             	mov    0x8(%ebp),%edx
40602a:	56                   	push   %esi
40602b:	8b 72 08             	mov    0x8(%edx),%esi
40602e:	8b 06                	mov    (%esi),%eax
406030:	89 42 08             	mov    %eax,0x8(%edx)
406033:	8b 06                	mov    (%esi),%eax
406035:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
406039:	75 03                	jne    0x40603e
40603b:	89 50 04             	mov    %edx,0x4(%eax)
40603e:	8b 42 04             	mov    0x4(%edx),%eax
406041:	89 46 04             	mov    %eax,0x4(%esi)
406044:	8b 01                	mov    (%ecx),%eax
406046:	3b 50 04             	cmp    0x4(%eax),%edx
406049:	75 05                	jne    0x406050
40604b:	89 70 04             	mov    %esi,0x4(%eax)
40604e:	eb 0e                	jmp    0x40605e
406050:	8b 42 04             	mov    0x4(%edx),%eax
406053:	3b 10                	cmp    (%eax),%edx
406055:	75 04                	jne    0x40605b
406057:	89 30                	mov    %esi,(%eax)
406059:	eb 03                	jmp    0x40605e
40605b:	89 70 08             	mov    %esi,0x8(%eax)
40605e:	89 16                	mov    %edx,(%esi)
406060:	89 72 04             	mov    %esi,0x4(%edx)
406063:	5e                   	pop    %esi
406064:	5d                   	pop    %ebp
406065:	c2 04 00             	ret    $0x4
406068:	8b ff                	mov    %edi,%edi
40606a:	55                   	push   %ebp
40606b:	8b ec                	mov    %esp,%ebp
40606d:	51                   	push   %ecx
40606e:	53                   	push   %ebx
40606f:	57                   	push   %edi
406070:	8b 7d 08             	mov    0x8(%ebp),%edi
406073:	8b c1                	mov    %ecx,%eax
406075:	89 45 fc             	mov    %eax,-0x4(%ebp)
406078:	8b df                	mov    %edi,%ebx
40607a:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
40607e:	75 39                	jne    0x4060b9
406080:	56                   	push   %esi
406081:	ff 73 08             	push   0x8(%ebx)
406084:	8b c8                	mov    %eax,%ecx
406086:	e8 dd ff ff ff       	call   0x406068
40608b:	8b 1b                	mov    (%ebx),%ebx
40608d:	8d 4f 2c             	lea    0x2c(%edi),%ecx
406090:	6a 00                	push   $0x0
406092:	6a 01                	push   $0x1
406094:	e8 57 04 00 00       	call   0x4064f0
406099:	6a 00                	push   $0x0
40609b:	6a 01                	push   $0x1
40609d:	8d 4f 10             	lea    0x10(%edi),%ecx
4060a0:	e8 4b 04 00 00       	call   0x4064f0
4060a5:	57                   	push   %edi
4060a6:	ff 15 e4 21 41 00    	call   *0x4121e4
4060ac:	80 7b 0d 00          	cmpb   $0x0,0xd(%ebx)
4060b0:	8b fb                	mov    %ebx,%edi
4060b2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4060b5:	59                   	pop    %ecx
4060b6:	74 c9                	je     0x406081
4060b8:	5e                   	pop    %esi
4060b9:	5f                   	pop    %edi
4060ba:	5b                   	pop    %ebx
4060bb:	c9                   	leave
4060bc:	c2 04 00             	ret    $0x4
4060bf:	6a 44                	push   $0x44
4060c1:	e8 02 7e 00 00       	call   0x40dec8
4060c6:	59                   	pop    %ecx
4060c7:	85 c0                	test   %eax,%eax
4060c9:	0f 84 42 7f 00 00    	je     0x40e011
4060cf:	89 00                	mov    %eax,(%eax)
4060d1:	89 40 04             	mov    %eax,0x4(%eax)
4060d4:	89 40 08             	mov    %eax,0x8(%eax)
4060d7:	66 c7 40 0c 01 01    	movw   $0x101,0xc(%eax)
4060dd:	c3                   	ret
4060de:	8b ff                	mov    %edi,%edi
4060e0:	55                   	push   %ebp
4060e1:	8b ec                	mov    %esp,%ebp
4060e3:	8b 45 08             	mov    0x8(%ebp),%eax
4060e6:	89 41 08             	mov    %eax,0x8(%ecx)
4060e9:	8b c1                	mov    %ecx,%eax
4060eb:	c6 01 00             	movb   $0x0,(%ecx)
4060ee:	89 51 04             	mov    %edx,0x4(%ecx)
4060f1:	5d                   	pop    %ebp
4060f2:	c2 04 00             	ret    $0x4
4060f5:	cc                   	int3
4060f6:	cc                   	int3
4060f7:	cc                   	int3
4060f8:	cc                   	int3
4060f9:	cc                   	int3
4060fa:	cc                   	int3
4060fb:	cc                   	int3
4060fc:	cc                   	int3
4060fd:	cc                   	int3
4060fe:	cc                   	int3
4060ff:	cc                   	int3
406100:	6a 00                	push   $0x0
406102:	6a 01                	push   $0x1
406104:	83 c1 04             	add    $0x4,%ecx
406107:	e8 e4 03 00 00       	call   0x4064f0
40610c:	c3                   	ret
40610d:	cc                   	int3
40610e:	cc                   	int3
40610f:	cc                   	int3
406110:	8b ff                	mov    %edi,%edi
406112:	55                   	push   %ebp
406113:	8b ec                	mov    %esp,%ebp
406115:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
406119:	56                   	push   %esi
40611a:	8b f1                	mov    %ecx,%esi
40611c:	c7 06 e0 15 40 00    	movl   $0x4015e0,(%esi)
406122:	74 08                	je     0x40612c
406124:	56                   	push   %esi
406125:	ff 15 e4 21 41 00    	call   *0x4121e4
40612b:	59                   	pop    %ecx
40612c:	8b c6                	mov    %esi,%eax
40612e:	5e                   	pop    %esi
40612f:	5d                   	pop    %ebp
406130:	c2 04 00             	ret    $0x4
406133:	8b ff                	mov    %edi,%edi
406135:	53                   	push   %ebx
406136:	57                   	push   %edi
406137:	8b f9                	mov    %ecx,%edi
406139:	83 cb ff             	or     $0xffffffff,%ebx
40613c:	f0 0f c1 5f 04       	lock xadd %ebx,0x4(%edi)
406141:	4b                   	dec    %ebx
406142:	75 18                	jne    0x40615c
406144:	85 ff                	test   %edi,%edi
406146:	74 14                	je     0x40615c
406148:	8b 0f                	mov    (%edi),%ecx
40614a:	56                   	push   %esi
40614b:	6a 01                	push   $0x1
40614d:	8b 31                	mov    (%ecx),%esi
40614f:	8b ce                	mov    %esi,%ecx
406151:	ff 15 10 22 41 00    	call   *0x412210
406157:	8b cf                	mov    %edi,%ecx
406159:	ff d6                	call   *%esi
40615b:	5e                   	pop    %esi
40615c:	5f                   	pop    %edi
40615d:	8b c3                	mov    %ebx,%eax
40615f:	5b                   	pop    %ebx
406160:	c3                   	ret
406161:	c7 01 e0 15 40 00    	movl   $0x4015e0,(%ecx)
406167:	c3                   	ret
406168:	8b ff                	mov    %edi,%edi
40616a:	55                   	push   %ebp
40616b:	8b ec                	mov    %esp,%ebp
40616d:	8b 55 08             	mov    0x8(%ebp),%edx
406170:	85 d2                	test   %edx,%edx
406172:	74 2c                	je     0x4061a0
406174:	83 79 14 08          	cmpl   $0x8,0x14(%ecx)
406178:	72 04                	jb     0x40617e
40617a:	8b 01                	mov    (%ecx),%eax
40617c:	eb 02                	jmp    0x406180
40617e:	8b c1                	mov    %ecx,%eax
406180:	3b d0                	cmp    %eax,%edx
406182:	72 1c                	jb     0x4061a0
406184:	83 79 14 08          	cmpl   $0x8,0x14(%ecx)
406188:	56                   	push   %esi
406189:	72 04                	jb     0x40618f
40618b:	8b 31                	mov    (%ecx),%esi
40618d:	eb 02                	jmp    0x406191
40618f:	8b f1                	mov    %ecx,%esi
406191:	8b 41 10             	mov    0x10(%ecx),%eax
406194:	8d 04 46             	lea    (%esi,%eax,2),%eax
406197:	5e                   	pop    %esi
406198:	3b c2                	cmp    %edx,%eax
40619a:	76 04                	jbe    0x4061a0
40619c:	b0 01                	mov    $0x1,%al
40619e:	eb 02                	jmp    0x4061a2
4061a0:	32 c0                	xor    %al,%al
4061a2:	5d                   	pop    %ebp
4061a3:	c2 04 00             	ret    $0x4
4061a6:	8b ff                	mov    %edi,%edi
4061a8:	55                   	push   %ebp
4061a9:	8b ec                	mov    %esp,%ebp
4061ab:	56                   	push   %esi
4061ac:	8b f1                	mov    %ecx,%esi
4061ae:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4061b1:	57                   	push   %edi
4061b2:	8b 7e 10             	mov    0x10(%esi),%edi
4061b5:	3b f9                	cmp    %ecx,%edi
4061b7:	77 17                	ja     0x4061d0
4061b9:	83 66 10 00          	andl   $0x0,0x10(%esi)
4061bd:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
4061c1:	72 04                	jb     0x4061c7
4061c3:	8b 06                	mov    (%esi),%eax
4061c5:	eb 02                	jmp    0x4061c9
4061c7:	8b c6                	mov    %esi,%eax
4061c9:	33 c9                	xor    %ecx,%ecx
4061cb:	66 89 08             	mov    %cx,(%eax)
4061ce:	eb 3e                	jmp    0x40620e
4061d0:	85 c9                	test   %ecx,%ecx
4061d2:	74 3a                	je     0x40620e
4061d4:	8b 46 14             	mov    0x14(%esi),%eax
4061d7:	83 f8 08             	cmp    $0x8,%eax
4061da:	72 04                	jb     0x4061e0
4061dc:	8b 16                	mov    (%esi),%edx
4061de:	eb 02                	jmp    0x4061e2
4061e0:	8b d6                	mov    %esi,%edx
4061e2:	2b f9                	sub    %ecx,%edi
4061e4:	74 14                	je     0x4061fa
4061e6:	8d 04 3f             	lea    (%edi,%edi,1),%eax
4061e9:	50                   	push   %eax
4061ea:	8d 04 4a             	lea    (%edx,%ecx,2),%eax
4061ed:	50                   	push   %eax
4061ee:	52                   	push   %edx
4061ef:	e8 38 85 00 00       	call   0x40e72c
4061f4:	8b 46 14             	mov    0x14(%esi),%eax
4061f7:	83 c4 0c             	add    $0xc,%esp
4061fa:	89 7e 10             	mov    %edi,0x10(%esi)
4061fd:	83 f8 08             	cmp    $0x8,%eax
406200:	72 04                	jb     0x406206
406202:	8b 06                	mov    (%esi),%eax
406204:	eb 02                	jmp    0x406208
406206:	8b c6                	mov    %esi,%eax
406208:	33 c9                	xor    %ecx,%ecx
40620a:	66 89 0c 78          	mov    %cx,(%eax,%edi,2)
40620e:	5f                   	pop    %edi
40620f:	8b c6                	mov    %esi,%eax
406211:	5e                   	pop    %esi
406212:	5d                   	pop    %ebp
406213:	c2 08 00             	ret    $0x8
406216:	8b ff                	mov    %edi,%edi
406218:	55                   	push   %ebp
406219:	8b ec                	mov    %esp,%ebp
40621b:	8b 45 0c             	mov    0xc(%ebp),%eax
40621e:	53                   	push   %ebx
40621f:	8b 5d 08             	mov    0x8(%ebp),%ebx
406222:	56                   	push   %esi
406223:	57                   	push   %edi
406224:	8b f1                	mov    %ecx,%esi
406226:	8b 7b 10             	mov    0x10(%ebx),%edi
406229:	3b f8                	cmp    %eax,%edi
40622b:	0f 82 8f 00 00 00    	jb     0x4062c0
406231:	2b f8                	sub    %eax,%edi
406233:	39 7d 10             	cmp    %edi,0x10(%ebp)
406236:	73 03                	jae    0x40623b
406238:	8b 7d 10             	mov    0x10(%ebp),%edi
40623b:	3b f3                	cmp    %ebx,%esi
40623d:	75 28                	jne    0x406267
40623f:	8d 0c 07             	lea    (%edi,%eax,1),%ecx
406242:	39 4e 10             	cmp    %ecx,0x10(%esi)
406245:	72 79                	jb     0x4062c0
406247:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40624b:	89 4e 10             	mov    %ecx,0x10(%esi)
40624e:	72 04                	jb     0x406254
406250:	8b 16                	mov    (%esi),%edx
406252:	eb 02                	jmp    0x406256
406254:	8b d6                	mov    %esi,%edx
406256:	33 ff                	xor    %edi,%edi
406258:	50                   	push   %eax
406259:	66 89 3c 4a          	mov    %di,(%edx,%ecx,2)
40625d:	51                   	push   %ecx
40625e:	8b ce                	mov    %esi,%ecx
406260:	e8 41 ff ff ff       	call   0x4061a6
406265:	eb 50                	jmp    0x4062b7
406267:	51                   	push   %ecx
406268:	57                   	push   %edi
406269:	e8 6d 01 00 00       	call   0x4063db
40626e:	84 c0                	test   %al,%al
406270:	74 45                	je     0x4062b7
406272:	83 7b 14 08          	cmpl   $0x8,0x14(%ebx)
406276:	72 02                	jb     0x40627a
406278:	8b 1b                	mov    (%ebx),%ebx
40627a:	8b 46 14             	mov    0x14(%esi),%eax
40627d:	83 f8 08             	cmp    $0x8,%eax
406280:	72 04                	jb     0x406286
406282:	8b 0e                	mov    (%esi),%ecx
406284:	eb 02                	jmp    0x406288
406286:	8b ce                	mov    %esi,%ecx
406288:	85 ff                	test   %edi,%edi
40628a:	74 17                	je     0x4062a3
40628c:	8d 04 3f             	lea    (%edi,%edi,1),%eax
40628f:	50                   	push   %eax
406290:	8b 45 0c             	mov    0xc(%ebp),%eax
406293:	8d 04 43             	lea    (%ebx,%eax,2),%eax
406296:	50                   	push   %eax
406297:	51                   	push   %ecx
406298:	e8 89 84 00 00       	call   0x40e726