405f83:	68 03 01 00 00       	push   $0x103
405f88:	ff 75 08             	push   0x8(%ebp)
405f8b:	8b 47 08             	mov    0x8(%edi),%eax
405f8e:	ff 74 f0 04          	push   0x4(%eax,%esi,8)
405f92:	e8 39 01 00 00       	call   0x4060d0
405f97:	eb 0d                	jmp    0x405fa6
405f99:	ff 75 ec             	push   -0x14(%ebp)
405f9c:	e8 60 ea ff ff       	call   0x404a01
405fa1:	59                   	pop    %ecx
405fa2:	c3                   	ret
405fa3:	8b 65 e8             	mov    -0x18(%ebp),%esp
405fa6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405faa:	8b 75 e0             	mov    -0x20(%ebp),%esi
405fad:	89 75 e4             	mov    %esi,-0x1c(%ebp)
405fb0:	eb 93                	jmp    0x405f45
405fb2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
405fb9:	e8 27 00 00 00       	call   0x405fe5
405fbe:	3b 75 14             	cmp    0x14(%ebp),%esi
405fc1:	75 36                	jne    0x405ff9
405fc3:	56                   	push   %esi
405fc4:	ff 75 10             	push   0x10(%ebp)
405fc7:	ff 75 08             	push   0x8(%ebp)
405fca:	e8 ae 05 00 00       	call   0x40657d
405fcf:	83 c4 0c             	add    $0xc,%esp
405fd2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
405fd5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
405fdc:	59                   	pop    %ecx
405fdd:	5f                   	pop    %edi
405fde:	5e                   	pop    %esi
405fdf:	5b                   	pop    %ebx
405fe0:	c9                   	leave
405fe1:	c3                   	ret
405fe2:	8b 75 e4             	mov    -0x1c(%ebp),%esi
405fe5:	e8 b2 f2 ff ff       	call   0x40529c
405fea:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
405fee:	7e 08                	jle    0x405ff8
405ff0:	e8 a7 f2 ff ff       	call   0x40529c
405ff5:	ff 48 18             	decl   0x18(%eax)
405ff8:	c3                   	ret
405ff9:	e8 2c 45 00 00       	call   0x40a52a
405ffe:	cc                   	int3
405fff:	55                   	push   %ebp
406000:	8b ec                	mov    %esp,%ebp
406002:	83 ec 1c             	sub    $0x1c,%esp
406005:	53                   	push   %ebx
406006:	56                   	push   %esi
406007:	8b 75 0c             	mov    0xc(%ebp),%esi
40600a:	57                   	push   %edi
40600b:	85 f6                	test   %esi,%esi
40600d:	0f 84 80 00 00 00    	je     0x406093
406013:	8b 3e                	mov    (%esi),%edi
406015:	33 db                	xor    %ebx,%ebx
406017:	85 ff                	test   %edi,%edi
406019:	7e 71                	jle    0x40608c
40601b:	8b 45 08             	mov    0x8(%ebp),%eax
40601e:	8b d3                	mov    %ebx,%edx
406020:	89 5d fc             	mov    %ebx,-0x4(%ebp)
406023:	8b 40 1c             	mov    0x1c(%eax),%eax
406026:	89 45 ec             	mov    %eax,-0x14(%ebp)
406029:	8b 40 0c             	mov    0xc(%eax),%eax
40602c:	8b 08                	mov    (%eax),%ecx
40602e:	83 c0 04             	add    $0x4,%eax
406031:	89 4d f0             	mov    %ecx,-0x10(%ebp)
406034:	89 45 e4             	mov    %eax,-0x1c(%ebp)
406037:	8b c8                	mov    %eax,%ecx
406039:	8b 45 f0             	mov    -0x10(%ebp),%eax
40603c:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40603f:	89 45 f8             	mov    %eax,-0x8(%ebp)
406042:	85 c0                	test   %eax,%eax
406044:	7e 38                	jle    0x40607e
406046:	8b 46 04             	mov    0x4(%esi),%eax
406049:	03 c2                	add    %edx,%eax
40604b:	89 45 e8             	mov    %eax,-0x18(%ebp)
40604e:	ff 75 ec             	push   -0x14(%ebp)
406051:	ff 31                	push   (%ecx)
406053:	50                   	push   %eax
406054:	e8 63 fa ff ff       	call   0x405abc
406059:	83 c4 0c             	add    $0xc,%esp
40605c:	85 c0                	test   %eax,%eax
40605e:	75 19                	jne    0x406079
406060:	8b 45 f8             	mov    -0x8(%ebp),%eax
406063:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406066:	48                   	dec    %eax
406067:	83 c1 04             	add    $0x4,%ecx
40606a:	89 45 f8             	mov    %eax,-0x8(%ebp)
40606d:	85 c0                	test   %eax,%eax
40606f:	89 4d f4             	mov    %ecx,-0xc(%ebp)
406072:	8b 45 e8             	mov    -0x18(%ebp),%eax
406075:	7f d7                	jg     0x40604e
406077:	eb 02                	jmp    0x40607b
406079:	b3 01                	mov    $0x1,%bl
40607b:	8b 55 fc             	mov    -0x4(%ebp),%edx
40607e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
406081:	83 c2 10             	add    $0x10,%edx
406084:	89 55 fc             	mov    %edx,-0x4(%ebp)
406087:	83 ef 01             	sub    $0x1,%edi
40608a:	75 ab                	jne    0x406037
40608c:	5f                   	pop    %edi
40608d:	5e                   	pop    %esi
40608e:	8a c3                	mov    %bl,%al
406090:	5b                   	pop    %ebx
406091:	c9                   	leave
406092:	c3                   	ret
406093:	e8 92 44 00 00       	call   0x40a52a
406098:	cc                   	int3
406099:	55                   	push   %ebp
40609a:	8b ec                	mov    %esp,%ebp
40609c:	ff 75 10             	push   0x10(%ebp)
40609f:	8b 4d 08             	mov    0x8(%ebp),%ecx
4060a2:	ff 55 0c             	call   *0xc(%ebp)
4060a5:	5d                   	pop    %ebp
4060a6:	c2 0c 00             	ret    $0xc
4060a9:	55                   	push   %ebp
4060aa:	8b ec                	mov    %esp,%ebp
4060ac:	ff 75 14             	push   0x14(%ebp)
4060af:	8b 4d 08             	mov    0x8(%ebp),%ecx
4060b2:	ff 75 10             	push   0x10(%ebp)
4060b5:	ff 55 0c             	call   *0xc(%ebp)
4060b8:	5d                   	pop    %ebp
4060b9:	c2 10 00             	ret    $0x10
4060bc:	55                   	push   %ebp
4060bd:	8b ec                	mov    %esp,%ebp
4060bf:	8b 45 08             	mov    0x8(%ebp),%eax
4060c2:	8b 40 1c             	mov    0x1c(%eax),%eax
4060c5:	5d                   	pop    %ebp
4060c6:	c3                   	ret
4060c7:	cc                   	int3
4060c8:	cc                   	int3
4060c9:	cc                   	int3
4060ca:	cc                   	int3
4060cb:	cc                   	int3
4060cc:	cc                   	int3
4060cd:	cc                   	int3
4060ce:	cc                   	int3
4060cf:	cc                   	int3
4060d0:	55                   	push   %ebp
4060d1:	8b ec                	mov    %esp,%ebp
4060d3:	83 ec 04             	sub    $0x4,%esp
4060d6:	53                   	push   %ebx
4060d7:	51                   	push   %ecx
4060d8:	8b 45 0c             	mov    0xc(%ebp),%eax
4060db:	83 c0 0c             	add    $0xc,%eax
4060de:	89 45 fc             	mov    %eax,-0x4(%ebp)
4060e1:	8b 45 08             	mov    0x8(%ebp),%eax
4060e4:	55                   	push   %ebp
4060e5:	ff 75 10             	push   0x10(%ebp)
4060e8:	8b 4d 10             	mov    0x10(%ebp),%ecx
4060eb:	8b 6d fc             	mov    -0x4(%ebp),%ebp
4060ee:	e8 9d 04 00 00       	call   0x406590
4060f3:	56                   	push   %esi
4060f4:	57                   	push   %edi
4060f5:	ff d0                	call   *%eax
4060f7:	5f                   	pop    %edi
4060f8:	5e                   	pop    %esi
4060f9:	8b dd                	mov    %ebp,%ebx
4060fb:	5d                   	pop    %ebp
4060fc:	8b 4d 10             	mov    0x10(%ebp),%ecx
4060ff:	55                   	push   %ebp
406100:	8b eb                	mov    %ebx,%ebp
406102:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
406108:	75 05                	jne    0x40610f
40610a:	b9 02 00 00 00       	mov    $0x2,%ecx
40610f:	51                   	push   %ecx
406110:	e8 7b 04 00 00       	call   0x406590
406115:	5d                   	pop    %ebp
406116:	59                   	pop    %ecx
406117:	5b                   	pop    %ebx
406118:	c9                   	leave
406119:	c2 0c 00             	ret    $0xc
40611c:	55                   	push   %ebp
40611d:	8b ec                	mov    %esp,%ebp
40611f:	a1 54 91 41 00       	mov    0x419154,%eax
406124:	3d 43 3c 40 00       	cmp    $0x403c43,%eax
406129:	74 1f                	je     0x40614a
40612b:	64 8b 0d 18 00 00 00 	mov    %fs:0x18,%ecx
406132:	8b 45 08             	mov    0x8(%ebp),%eax
406135:	8b 80 c4 00 00 00    	mov    0xc4(%eax),%eax
40613b:	3b 41 08             	cmp    0x8(%ecx),%eax
40613e:	72 05                	jb     0x406145
406140:	3b 41 04             	cmp    0x4(%ecx),%eax
406143:	76 05                	jbe    0x40614a
406145:	6a 0d                	push   $0xd
406147:	59                   	pop    %ecx
406148:	cd 29                	int    $0x29
40614a:	5d                   	pop    %ebp
40614b:	c3                   	ret
40614c:	cc                   	int3
40614d:	cc                   	int3
40614e:	cc                   	int3
40614f:	cc                   	int3
406150:	53                   	push   %ebx
406151:	56                   	push   %esi
406152:	57                   	push   %edi
406153:	8b 54 24 10          	mov    0x10(%esp),%edx
406157:	8b 44 24 14          	mov    0x14(%esp),%eax
40615b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40615f:	55                   	push   %ebp
406160:	52                   	push   %edx
406161:	50                   	push   %eax
406162:	51                   	push   %ecx
406163:	51                   	push   %ecx
406164:	68 f0 61 40 00       	push   $0x4061f0
406169:	64 ff 35 00 00 00 00 	push   %fs:0x0
406170:	a1 c0 10 42 00       	mov    0x4210c0,%eax
406175:	33 c4                	xor    %esp,%eax
406177:	89 44 24 08          	mov    %eax,0x8(%esp)
40617b:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
406182:	8b 44 24 30          	mov    0x30(%esp),%eax
406186:	8b 58 08             	mov    0x8(%eax),%ebx
406189:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40618d:	33 19                	xor    (%ecx),%ebx
40618f:	8b 70 0c             	mov    0xc(%eax),%esi
406192:	83 fe fe             	cmp    $0xfffffffe,%esi
406195:	0f 84 46 00 00 00    	je     0x4061e1
40619b:	8b 54 24 34          	mov    0x34(%esp),%edx
40619f:	83 fa fe             	cmp    $0xfffffffe,%edx
4061a2:	74 08                	je     0x4061ac
4061a4:	3b f2                	cmp    %edx,%esi
4061a6:	0f 86 35 00 00 00    	jbe    0x4061e1
4061ac:	8d 34 76             	lea    (%esi,%esi,2),%esi
4061af:	8d 5c b3 10          	lea    0x10(%ebx,%esi,4),%ebx
4061b3:	8b 0b                	mov    (%ebx),%ecx
4061b5:	89 48 0c             	mov    %ecx,0xc(%eax)
4061b8:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
4061bc:	0f 85 c0 ff ff ff    	jne    0x406182
4061c2:	68 01 01 00 00       	push   $0x101
4061c7:	8b 43 08             	mov    0x8(%ebx),%eax
4061ca:	e8 d1 03 00 00       	call   0x4065a0
4061cf:	b9 01 00 00 00       	mov    $0x1,%ecx
4061d4:	8b 43 08             	mov    0x8(%ebx),%eax
4061d7:	e8 e4 03 00 00       	call   0x4065c0
4061dc:	e9 a1 ff ff ff       	jmp    0x406182
4061e1:	64 8f 05 00 00 00 00 	pop    %fs:0x0
4061e8:	83 c4 18             	add    $0x18,%esp
4061eb:	5f                   	pop    %edi
4061ec:	5e                   	pop    %esi
4061ed:	5b                   	pop    %ebx
4061ee:	c3                   	ret
4061ef:	cc                   	int3
4061f0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4061f4:	f7 41 04 06 00 00 00 	testl  $0x6,0x4(%ecx)
4061fb:	b8 01 00 00 00       	mov    $0x1,%eax
406200:	74 33                	je     0x406235
406202:	8b 44 24 08          	mov    0x8(%esp),%eax
406206:	8b 48 08             	mov    0x8(%eax),%ecx
406209:	33 c8                	xor    %eax,%ecx
40620b:	e8 b8 de ff ff       	call   0x4040c8
406210:	55                   	push   %ebp
406211:	8b 68 18             	mov    0x18(%eax),%ebp
406214:	ff 70 0c             	push   0xc(%eax)
406217:	ff 70 10             	push   0x10(%eax)
40621a:	ff 70 14             	push   0x14(%eax)
40621d:	e8 2e ff ff ff       	call   0x406150
406222:	83 c4 0c             	add    $0xc,%esp
406225:	5d                   	pop    %ebp
406226:	8b 44 24 08          	mov    0x8(%esp),%eax
40622a:	8b 54 24 10          	mov    0x10(%esp),%edx
40622e:	89 02                	mov    %eax,(%edx)
406230:	b8 03 00 00 00       	mov    $0x3,%eax
406235:	c3                   	ret
406236:	cc                   	int3
406237:	cc                   	int3
406238:	cc                   	int3
406239:	cc                   	int3
40623a:	cc                   	int3
40623b:	cc                   	int3
40623c:	cc                   	int3
40623d:	cc                   	int3
40623e:	cc                   	int3
40623f:	cc                   	int3
406240:	55                   	push   %ebp
406241:	56                   	push   %esi
406242:	57                   	push   %edi
406243:	53                   	push   %ebx
406244:	8b ea                	mov    %edx,%ebp
406246:	33 c0                	xor    %eax,%eax
406248:	33 db                	xor    %ebx,%ebx
40624a:	33 d2                	xor    %edx,%edx
40624c:	33 f6                	xor    %esi,%esi
40624e:	33 ff                	xor    %edi,%edi
406250:	ff d1                	call   *%ecx
406252:	5b                   	pop    %ebx
406253:	5f                   	pop    %edi
406254:	5e                   	pop    %esi
406255:	5d                   	pop    %ebp
406256:	c3                   	ret
406257:	cc                   	int3
406258:	cc                   	int3
406259:	cc                   	int3
40625a:	cc                   	int3
40625b:	cc                   	int3
40625c:	cc                   	int3
40625d:	cc                   	int3
40625e:	cc                   	int3
40625f:	cc                   	int3
406260:	8b ea                	mov    %edx,%ebp
406262:	8b f1                	mov    %ecx,%esi
406264:	8b c1                	mov    %ecx,%eax
406266:	6a 01                	push   $0x1
406268:	e8 33 03 00 00       	call   0x4065a0
40626d:	33 c0                	xor    %eax,%eax
40626f:	33 db                	xor    %ebx,%ebx
406271:	33 c9                	xor    %ecx,%ecx
406273:	33 d2                	xor    %edx,%edx
406275:	33 ff                	xor    %edi,%edi
406277:	ff e6                	jmp    *%esi
406279:	cc                   	int3
40627a:	cc                   	int3
40627b:	cc                   	int3
40627c:	cc                   	int3
40627d:	cc                   	int3
40627e:	cc                   	int3
40627f:	cc                   	int3
406280:	55                   	push   %ebp
406281:	8b ec                	mov    %esp,%ebp
406283:	53                   	push   %ebx
406284:	56                   	push   %esi
406285:	57                   	push   %edi
406286:	6a 00                	push   $0x0
406288:	52                   	push   %edx
406289:	68 95 62 40 00       	push   $0x406295
40628e:	51                   	push   %ecx
40628f:	ff 15 84 90 41 00    	call   *0x419084
406295:	5f                   	pop    %edi
406296:	5e                   	pop    %esi
406297:	5b                   	pop    %ebx
406298:	5d                   	pop    %ebp
406299:	c3                   	ret
40629a:	cc                   	int3
40629b:	cc                   	int3
40629c:	cc                   	int3
40629d:	cc                   	int3
40629e:	cc                   	int3
40629f:	cc                   	int3
4062a0:	55                   	push   %ebp
4062a1:	8b 6c 24 08          	mov    0x8(%esp),%ebp
4062a5:	52                   	push   %edx
4062a6:	51                   	push   %ecx
4062a7:	ff 74 24 14          	push   0x14(%esp)
4062ab:	e8 a0 fe ff ff       	call   0x406150
4062b0:	83 c4 0c             	add    $0xc,%esp
4062b3:	5d                   	pop    %ebp
4062b4:	c2 08 00             	ret    $0x8
4062b7:	56                   	push   %esi
4062b8:	57                   	push   %edi
4062b9:	bf c0 1d 42 00       	mov    $0x421dc0,%edi
4062be:	33 f6                	xor    %esi,%esi
4062c0:	6a 00                	push   $0x0
4062c2:	68 a0 0f 00 00       	push   $0xfa0
4062c7:	57                   	push   %edi