405f77:	03 c2                	add    %edx,%eax
405f79:	8b 4d f0             	mov    -0x10(%ebp),%ecx
405f7c:	2b cf                	sub    %edi,%ecx
405f7e:	8b d6                	mov    %esi,%edx
405f80:	e8 3b ff ff ff       	call   0x405ec0
405f85:	8d 45 e0             	lea    -0x20(%ebp),%eax
405f88:	8b 55 e4             	mov    -0x1c(%ebp),%edx
405f8b:	e8 5c c8 ff ff       	call   0x4027ec
405f90:	8b 5d e0             	mov    -0x20(%ebp),%ebx
405f93:	eb 5e                	jmp    0x405ff3
405f95:	ff 0b                	decl   (%ebx)
405f97:	8b 45 e4             	mov    -0x1c(%ebp),%eax
405f9a:	e8 0d c8 ff ff       	call   0x4027ac
405f9f:	8b d8                	mov    %eax,%ebx
405fa1:	8b 45 f0             	mov    -0x10(%ebp),%eax
405fa4:	89 45 ec             	mov    %eax,-0x14(%ebp)
405fa7:	3b 7d ec             	cmp    -0x14(%ebp),%edi
405faa:	7d 03                	jge    0x405faf
405fac:	89 7d ec             	mov    %edi,-0x14(%ebp)
405faf:	85 f6                	test   %esi,%esi
405fb1:	74 2a                	je     0x405fdd
405fb3:	8b 55 ec             	mov    -0x14(%ebp),%edx
405fb6:	0f af 55 e8          	imul   -0x18(%ebp),%edx
405fba:	8b c3                	mov    %ebx,%eax
405fbc:	83 c0 08             	add    $0x8,%eax
405fbf:	33 c9                	xor    %ecx,%ecx
405fc1:	e8 7a d2 ff ff       	call   0x403240
405fc6:	8b 45 ec             	mov    -0x14(%ebp),%eax
405fc9:	50                   	push   %eax
405fca:	8b 55 fc             	mov    -0x4(%ebp),%edx
405fcd:	8b 12                	mov    (%edx),%edx
405fcf:	8b c3                	mov    %ebx,%eax
405fd1:	83 c0 08             	add    $0x8,%eax
405fd4:	8b ce                	mov    %esi,%ecx
405fd6:	e8 d5 fe ff ff       	call   0x405eb0
405fdb:	eb 16                	jmp    0x405ff3
405fdd:	8b 4d ec             	mov    -0x14(%ebp),%ecx
405fe0:	0f af 4d e8          	imul   -0x18(%ebp),%ecx
405fe4:	8b d3                	mov    %ebx,%edx
405fe6:	83 c2 08             	add    $0x8,%edx
405fe9:	8b 45 fc             	mov    -0x4(%ebp),%eax
405fec:	8b 00                	mov    (%eax),%eax
405fee:	e8 2d ca ff ff       	call   0x402a20
405ff3:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
405ff9:	83 c3 04             	add    $0x4,%ebx
405ffc:	89 3b                	mov    %edi,(%ebx)
405ffe:	83 c3 04             	add    $0x4,%ebx
406001:	8b d7                	mov    %edi,%edx
406003:	2b 55 f0             	sub    -0x10(%ebp),%edx
406006:	0f af 55 e8          	imul   -0x18(%ebp),%edx
40600a:	8b 45 e8             	mov    -0x18(%ebp),%eax
40600d:	0f af 45 f0          	imul   -0x10(%ebp),%eax
406011:	03 c3                	add    %ebx,%eax
406013:	33 c9                	xor    %ecx,%ecx
406015:	e8 26 d2 ff ff       	call   0x403240
40601a:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
40601e:	7e 2e                	jle    0x40604e
406020:	83 45 08 04          	addl   $0x4,0x8(%ebp)
406024:	ff 4d f8             	decl   -0x8(%ebp)
406027:	4f                   	dec    %edi
406028:	85 ff                	test   %edi,%edi
40602a:	7c 22                	jl     0x40604e
40602c:	47                   	inc    %edi
40602d:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
406034:	8b 45 08             	mov    0x8(%ebp),%eax
406037:	50                   	push   %eax
406038:	8b 45 f4             	mov    -0xc(%ebp),%eax
40603b:	8d 04 83             	lea    (%ebx,%eax,4),%eax
40603e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
406041:	8b d6                	mov    %esi,%edx
406043:	e8 88 fe ff ff       	call   0x405ed0
406048:	ff 45 f4             	incl   -0xc(%ebp)
40604b:	4f                   	dec    %edi
40604c:	75 e6                	jne    0x406034
40604e:	8b 45 fc             	mov    -0x4(%ebp),%eax
406051:	89 18                	mov    %ebx,(%eax)
406053:	5f                   	pop    %edi
406054:	5e                   	pop    %esi
406055:	5b                   	pop    %ebx
406056:	8b e5                	mov    %ebp,%esp
406058:	5d                   	pop    %ebp
406059:	c2 04 00             	ret    $0x4
40605c:	54                   	push   %esp
40605d:	83 04 24 04          	addl   $0x4,(%esp)
406061:	e8 6a fe ff ff       	call   0x405ed0
406066:	c3                   	ret
406067:	90                   	nop
406068:	53                   	push   %ebx
406069:	85 c0                	test   %eax,%eax
40606b:	74 12                	je     0x40607f
40606d:	8b d8                	mov    %eax,%ebx
40606f:	83 eb 04             	sub    $0x4,%ebx
406072:	8b 1b                	mov    (%ebx),%ebx
406074:	53                   	push   %ebx
406075:	51                   	push   %ecx
406076:	33 c9                	xor    %ecx,%ecx
406078:	e8 0b 00 00 00       	call   0x406088
40607d:	5b                   	pop    %ebx
40607e:	c3                   	ret
40607f:	8b c1                	mov    %ecx,%eax
406081:	e8 f6 00 00 00       	call   0x40617c
406086:	5b                   	pop    %ebx
406087:	c3                   	ret
406088:	55                   	push   %ebp
406089:	8b ec                	mov    %esp,%ebp
40608b:	83 c4 f0             	add    $0xfffffff0,%esp
40608e:	53                   	push   %ebx
40608f:	56                   	push   %esi
406090:	57                   	push   %edi
406091:	8b f9                	mov    %ecx,%edi
406093:	89 55 f8             	mov    %edx,-0x8(%ebp)
406096:	89 45 fc             	mov    %eax,-0x4(%ebp)
406099:	8b 75 0c             	mov    0xc(%ebp),%esi
40609c:	33 db                	xor    %ebx,%ebx
40609e:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4060a2:	0f 84 ba 00 00 00    	je     0x406162
4060a8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4060ab:	89 45 f0             	mov    %eax,-0x10(%ebp)
4060ae:	85 ff                	test   %edi,%edi
4060b0:	7d 04                	jge    0x4060b6
4060b2:	03 f7                	add    %edi,%esi
4060b4:	33 ff                	xor    %edi,%edi
4060b6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4060b9:	83 e8 04             	sub    $0x4,%eax
4060bc:	8b 00                	mov    (%eax),%eax
4060be:	3b c7                	cmp    %edi,%eax
4060c0:	7d 02                	jge    0x4060c4
4060c2:	8b f8                	mov    %eax,%edi
4060c4:	8b d0                	mov    %eax,%edx
4060c6:	2b d7                	sub    %edi,%edx
4060c8:	3b f2                	cmp    %edx,%esi
4060ca:	7e 02                	jle    0x4060ce
4060cc:	8b f2                	mov    %edx,%esi
4060ce:	85 f6                	test   %esi,%esi
4060d0:	7d 02                	jge    0x4060d4
4060d2:	33 f6                	xor    %esi,%esi
4060d4:	85 f6                	test   %esi,%esi
4060d6:	0f 8e 86 00 00 00    	jle    0x406162
4060dc:	8b 45 f0             	mov    -0x10(%ebp),%eax
4060df:	0f b6 40 01          	movzbl 0x1(%eax),%eax
4060e3:	01 45 f0             	add    %eax,-0x10(%ebp)
4060e6:	8b 45 f0             	mov    -0x10(%ebp),%eax
4060e9:	8b 40 02             	mov    0x2(%eax),%eax
4060ec:	89 45 f4             	mov    %eax,-0xc(%ebp)
4060ef:	8b 45 f0             	mov    -0x10(%ebp),%eax
4060f2:	8b 40 06             	mov    0x6(%eax),%eax
4060f5:	85 c0                	test   %eax,%eax
4060f7:	74 07                	je     0x406100
4060f9:	8b 00                	mov    (%eax),%eax
4060fb:	89 45 f0             	mov    %eax,-0x10(%ebp)
4060fe:	eb 05                	jmp    0x406105
406100:	33 c0                	xor    %eax,%eax
406102:	89 45 f0             	mov    %eax,-0x10(%ebp)
406105:	8b c6                	mov    %esi,%eax
406107:	f7 6d f4             	imull  -0xc(%ebp)
40610a:	83 c0 08             	add    $0x8,%eax
40610d:	e8 9a c6 ff ff       	call   0x4027ac
406112:	8b d8                	mov    %eax,%ebx
406114:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
40611a:	83 c3 04             	add    $0x4,%ebx
40611d:	89 33                	mov    %esi,(%ebx)
40611f:	83 c3 04             	add    $0x4,%ebx
406122:	0f af 7d f4          	imul   -0xc(%ebp),%edi
406126:	01 7d fc             	add    %edi,-0x4(%ebp)
406129:	85 f6                	test   %esi,%esi
40612b:	7e 35                	jle    0x406162
40612d:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
406131:	74 1f                	je     0x406152
406133:	8b d6                	mov    %esi,%edx
406135:	0f af 55 f4          	imul   -0xc(%ebp),%edx
406139:	8b c3                	mov    %ebx,%eax
40613b:	33 c9                	xor    %ecx,%ecx
40613d:	e8 fe d0 ff ff       	call   0x403240
406142:	56                   	push   %esi
406143:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406146:	8b 55 fc             	mov    -0x4(%ebp),%edx
406149:	8b c3                	mov    %ebx,%eax
40614b:	e8 60 fd ff ff       	call   0x405eb0
406150:	eb 10                	jmp    0x406162
406152:	8b ce                	mov    %esi,%ecx
406154:	0f af 4d f4          	imul   -0xc(%ebp),%ecx
406158:	8b d3                	mov    %ebx,%edx
40615a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40615d:	e8 be c8 ff ff       	call   0x402a20
406162:	8b 45 08             	mov    0x8(%ebp),%eax
406165:	8b 55 f8             	mov    -0x8(%ebp),%edx
406168:	e8 5b fd ff ff       	call   0x405ec8
40616d:	8b 45 08             	mov    0x8(%ebp),%eax
406170:	89 18                	mov    %ebx,(%eax)
406172:	5f                   	pop    %edi
406173:	5e                   	pop    %esi
406174:	5b                   	pop    %ebx
406175:	8b e5                	mov    %ebp,%esp
406177:	5d                   	pop    %ebp
406178:	c2 08 00             	ret    $0x8
40617b:	90                   	nop
40617c:	8b 08                	mov    (%eax),%ecx
40617e:	85 c9                	test   %ecx,%ecx
406180:	74 33                	je     0x4061b5
406182:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
406188:	f0 ff 49 f8          	lock decl -0x8(%ecx)
40618c:	75 27                	jne    0x4061b5
40618e:	50                   	push   %eax
40618f:	89 c8                	mov    %ecx,%eax
406191:	31 c9                	xor    %ecx,%ecx
406193:	8a 4a 01             	mov    0x1(%edx),%cl
406196:	8b 54 11 06          	mov    0x6(%ecx,%edx,1),%edx
40619a:	85 d2                	test   %edx,%edx
40619c:	74 0e                	je     0x4061ac
40619e:	8b 48 fc             	mov    -0x4(%eax),%ecx
4061a1:	85 c9                	test   %ecx,%ecx
4061a3:	74 07                	je     0x4061ac
4061a5:	8b 12                	mov    (%edx),%edx
4061a7:	e8 b4 f2 ff ff       	call   0x405460
4061ac:	83 e8 08             	sub    $0x8,%eax
4061af:	e8 18 c6 ff ff       	call   0x4027cc
4061b4:	58                   	pop    %eax
4061b5:	c3                   	ret
4061b6:	8b c0                	mov    %eax,%eax
4061b8:	53                   	push   %ebx
4061b9:	8b 18                	mov    (%eax),%ebx
4061bb:	85 d2                	test   %edx,%edx
4061bd:	74 04                	je     0x4061c3
4061bf:	f0 ff 42 f8          	lock incl -0x8(%edx)
4061c3:	85 db                	test   %ebx,%ebx
4061c5:	74 14                	je     0x4061db
4061c7:	f0 ff 4b f8          	lock decl -0x8(%ebx)
4061cb:	75 0e                	jne    0x4061db
4061cd:	50                   	push   %eax
4061ce:	52                   	push   %edx
4061cf:	89 ca                	mov    %ecx,%edx
4061d1:	ff 43 f8             	incl   -0x8(%ebx)
4061d4:	e8 a3 ff ff ff       	call   0x40617c
4061d9:	5a                   	pop    %edx
4061da:	58                   	pop    %eax
4061db:	89 10                	mov    %edx,(%eax)
4061dd:	5b                   	pop    %ebx
4061de:	c3                   	ret
4061df:	90                   	nop
4061e0:	85 c0                	test   %eax,%eax
4061e2:	74 04                	je     0x4061e8
4061e4:	f0 ff 40 f8          	lock incl -0x8(%eax)
4061e8:	c3                   	ret
4061e9:	8d 40 00             	lea    0x0(%eax),%eax
4061ec:	83 c4 e4             	add    $0xffffffe4,%esp
4061ef:	6a 1c                	push   $0x1c
4061f1:	8d 54 24 04          	lea    0x4(%esp),%edx
4061f5:	52                   	push   %edx
4061f6:	50                   	push   %eax
4061f7:	e8 d4 b1 ff ff       	call   0x4013d0
4061fc:	81 7c 24 10 00 10 00 	cmpl   $0x1000,0x10(%esp)
406203:	00
406204:	75 06                	jne    0x40620c
406206:	8b 44 24 04          	mov    0x4(%esp),%eax
40620a:	eb 02                	jmp    0x40620e
40620c:	33 c0                	xor    %eax,%eax
40620e:	83 c4 1c             	add    $0x1c,%esp
406211:	c3                   	ret
406212:	8b c0                	mov    %eax,%eax
406214:	e8 d3 ff ff ff       	call   0x4061ec
406219:	c3                   	ret
40621a:	8b c0                	mov    %eax,%eax
40621c:	53                   	push   %ebx
40621d:	56                   	push   %esi
40621e:	81 c4 f8 fe ff ff    	add    $0xfffffef8,%esp
406224:	8b d8                	mov    %eax,%ebx
406226:	83 7b 10 00          	cmpl   $0x0,0x10(%ebx)
40622a:	75 2b                	jne    0x406257
40622c:	68 05 01 00 00       	push   $0x105
406231:	8d 44 24 04          	lea    0x4(%esp),%eax
406235:	50                   	push   %eax
406236:	8b 43 04             	mov    0x4(%ebx),%eax
406239:	50                   	push   %eax
40623a:	e8 19 b1 ff ff       	call   0x401358
40623f:	8b c4                	mov    %esp,%eax
406241:	b2 01                	mov    $0x1,%dl
406243:	e8 10 02 00 00       	call   0x406458
406248:	8b f0                	mov    %eax,%esi
40624a:	89 73 10             	mov    %esi,0x10(%ebx)
40624d:	85 f6                	test   %esi,%esi
40624f:	75 06                	jne    0x406257
406251:	8b 43 04             	mov    0x4(%ebx),%eax
406254:	89 43 10             	mov    %eax,0x10(%ebx)
406257:	8b 43 10             	mov    0x10(%ebx),%eax
40625a:	81 c4 08 01 00 00    	add    $0x108,%esp
406260:	5e                   	pop    %esi
406261:	5b                   	pop    %ebx
406262:	c3                   	ret
406263:	90                   	nop
406264:	8b 15 28 a0 68 00    	mov    0x68a028,%edx
40626a:	85 d2                	test   %edx,%edx
40626c:	74 1d                	je     0x40628b
40626e:	3b 42 04             	cmp    0x4(%edx),%eax
406271:	74 0a                	je     0x40627d
406273:	3b 42 08             	cmp    0x8(%edx),%eax
406276:	74 05                	je     0x40627d
406278:	3b 42 0c             	cmp    0xc(%edx),%eax
40627b:	75 08                	jne    0x406285
40627d:	8b c2                	mov    %edx,%eax
40627f:	e8 98 ff ff ff       	call   0x40621c
406284:	c3                   	ret
406285:	8b 12                	mov    (%edx),%edx
406287:	85 d2                	test   %edx,%edx
406289:	75 e3                	jne    0x40626e
40628b:	c3                   	ret
40628c:	eb 06                	jmp    0x406294
40628e:	50                   	push   %eax
40628f:	e8 64 b0 ff ff       	call   0x4012f8
406294:	8a 10                	mov    (%eax),%dl
406296:	84 d2                	test   %dl,%dl
406298:	74 05                	je     0x40629f
40629a:	80 fa 5c             	cmp    $0x5c,%dl
40629d:	75 ef                	jne    0x40628e
40629f:	c3                   	ret
4062a0:	55                   	push   %ebp
4062a1:	8b ec                	mov    %esp,%ebp
4062a3:	81 c4 b0 fd ff ff    	add    $0xfffffdb0,%esp
4062a9:	53                   	push   %ebx
4062aa:	56                   	push   %esi
4062ab:	57                   	push   %edi
4062ac:	89 55 f8             	mov    %edx,-0x8(%ebp)
4062af:	89 45 fc             	mov    %eax,-0x4(%ebp)
4062b2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4062b5:	89 45 f4             	mov    %eax,-0xc(%ebp)
4062b8:	68 34 64 40 00       	push   $0x406434
4062bd:	e8 9e b0 ff ff       	call   0x401360
4062c2:	8b f0                	mov    %eax,%esi
4062c4:	85 f6                	test   %esi,%esi
4062c6:	74 40                	je     0x406308
4062c8:	68 44 64 40 00       	push   $0x406444
4062cd:	56                   	push   %esi
4062ce:	e8 95 b0 ff ff       	call   0x401368
4062d3:	89 c3                	mov    %eax,%ebx
4062d5:	85 db                	test   %ebx,%ebx
4062d7:	74 2f                	je     0x406308
4062d9:	68 05 01 00 00       	push   $0x105
4062de:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
4062e4:	50                   	push   %eax
4062e5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4062e8:	50                   	push   %eax
4062e9:	ff d3                	call   *%ebx
4062eb:	85 c0                	test   %eax,%eax
4062ed:	74 19                	je     0x406308
4062ef:	8b 45 f8             	mov    -0x8(%ebp),%eax
4062f2:	50                   	push   %eax
4062f3:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
4062f9:	50                   	push   %eax
4062fa:	8b 45 fc             	mov    -0x4(%ebp),%eax
4062fd:	50                   	push   %eax
4062fe:	e8 8d b0 ff ff       	call   0x401390