408f74:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
408f77:	0f 84 68 02 00 00    	je     0x4091e5
408f7d:	3b c3                	cmp    %ebx,%eax
408f7f:	0f 84 60 02 00 00    	je     0x4091e5
408f85:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
408f88:	0f 84 57 02 00 00    	je     0x4091e5
408f8e:	39 5d d8             	cmp    %ebx,-0x28(%ebp)
408f91:	0f 84 4e 02 00 00    	je     0x4091e5
408f97:	8b 45 d4             	mov    -0x2c(%ebp),%eax
408f9a:	89 18                	mov    %ebx,(%eax)
408f9c:	33 c0                	xor    %eax,%eax
408f9e:	8b 4d e0             	mov    -0x20(%ebp),%ecx
408fa1:	88 04 08             	mov    %al,(%eax,%ecx,1)
408fa4:	40                   	inc    %eax
408fa5:	3d 00 01 00 00       	cmp    $0x100,%eax
408faa:	7c f2                	jl     0x408f9e
408fac:	8d 45 e8             	lea    -0x18(%ebp),%eax
408faf:	50                   	push   %eax
408fb0:	ff 76 04             	push   0x4(%esi)
408fb3:	ff 15 e0 70 41 00    	call   *0x4170e0
408fb9:	85 c0                	test   %eax,%eax
408fbb:	0f 84 24 02 00 00    	je     0x4091e5
408fc1:	83 7d e8 05          	cmpl   $0x5,-0x18(%ebp)
408fc5:	0f 87 1a 02 00 00    	ja     0x4091e5
408fcb:	0f b7 45 e8          	movzwl -0x18(%ebp),%eax
408fcf:	83 f8 01             	cmp    $0x1,%eax
408fd2:	89 45 d0             	mov    %eax,-0x30(%ebp)
408fd5:	7e 2d                	jle    0x409004
408fd7:	38 5d ee             	cmp    %bl,-0x12(%ebp)
408fda:	74 28                	je     0x409004
408fdc:	8d 45 ef             	lea    -0x11(%ebp),%eax
408fdf:	8a 08                	mov    (%eax),%cl
408fe1:	3a cb                	cmp    %bl,%cl
408fe3:	74 1f                	je     0x409004
408fe5:	0f b6 78 ff          	movzbl -0x1(%eax),%edi
408fe9:	0f b6 c9             	movzbl %cl,%ecx
408fec:	eb 0b                	jmp    0x408ff9
408fee:	8b 4d e0             	mov    -0x20(%ebp),%ecx
408ff1:	c6 04 0f 20          	movb   $0x20,(%edi,%ecx,1)
408ff5:	0f b6 08             	movzbl (%eax),%ecx
408ff8:	47                   	inc    %edi
408ff9:	3b f9                	cmp    %ecx,%edi
408ffb:	7e f1                	jle    0x408fee
408ffd:	40                   	inc    %eax
408ffe:	40                   	inc    %eax
408fff:	38 58 ff             	cmp    %bl,-0x1(%eax)
409002:	75 db                	jne    0x408fdf
409004:	8b 45 dc             	mov    -0x24(%ebp),%eax
409007:	53                   	push   %ebx
409008:	53                   	push   %ebx
409009:	ff 76 04             	push   0x4(%esi)
40900c:	05 00 01 00 00       	add    $0x100,%eax
409011:	50                   	push   %eax
409012:	68 00 01 00 00       	push   $0x100
409017:	ff 75 e0             	push   -0x20(%ebp)
40901a:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40901d:	6a 01                	push   $0x1
40901f:	53                   	push   %ebx
409020:	e8 c5 78 00 00       	call   0x4108ea
409025:	83 c4 20             	add    $0x20,%esp
409028:	85 c0                	test   %eax,%eax
40902a:	0f 84 b5 01 00 00    	je     0x4091e5
409030:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
409033:	8b 45 e0             	mov    -0x20(%ebp),%eax
409036:	53                   	push   %ebx
409037:	ff 76 04             	push   0x4(%esi)
40903a:	bf ff 00 00 00       	mov    $0xff,%edi
40903f:	57                   	push   %edi
409040:	81 c1 81 00 00 00    	add    $0x81,%ecx
409046:	51                   	push   %ecx
409047:	57                   	push   %edi
409048:	40                   	inc    %eax
409049:	50                   	push   %eax
40904a:	68 00 01 00 00       	push   $0x100
40904f:	ff 76 14             	push   0x14(%esi)
409052:	53                   	push   %ebx
409053:	e8 90 fd ff ff       	call   0x408de8
409058:	83 c4 24             	add    $0x24,%esp
40905b:	85 c0                	test   %eax,%eax
40905d:	0f 84 82 01 00 00    	je     0x4091e5
409063:	8b 45 d8             	mov    -0x28(%ebp),%eax
409066:	53                   	push   %ebx
409067:	ff 76 04             	push   0x4(%esi)
40906a:	05 81 00 00 00       	add    $0x81,%eax
40906f:	57                   	push   %edi
409070:	50                   	push   %eax
409071:	8b 45 e0             	mov    -0x20(%ebp),%eax
409074:	57                   	push   %edi
409075:	40                   	inc    %eax
409076:	50                   	push   %eax
409077:	68 00 02 00 00       	push   $0x200
40907c:	ff 76 14             	push   0x14(%esi)
40907f:	53                   	push   %ebx
409080:	e8 63 fd ff ff       	call   0x408de8
409085:	83 c4 24             	add    $0x24,%esp
409088:	85 c0                	test   %eax,%eax
40908a:	0f 84 55 01 00 00    	je     0x4091e5
409090:	83 7d d0 01          	cmpl   $0x1,-0x30(%ebp)
409094:	8b 45 dc             	mov    -0x24(%ebp),%eax
409097:	8b 7d e4             	mov    -0x1c(%ebp),%edi
40909a:	8b 55 d8             	mov    -0x28(%ebp),%edx
40909d:	8d 88 fe 00 00 00    	lea    0xfe(%eax),%ecx
4090a3:	66 89 19             	mov    %bx,(%ecx)
4090a6:	89 4d c8             	mov    %ecx,-0x38(%ebp)
4090a9:	8d 8f 80 00 00 00    	lea    0x80(%edi),%ecx
4090af:	88 5f 7f             	mov    %bl,0x7f(%edi)
4090b2:	88 5a 7f             	mov    %bl,0x7f(%edx)
4090b5:	88 19                	mov    %bl,(%ecx)
4090b7:	89 4d c0             	mov    %ecx,-0x40(%ebp)
4090ba:	8d 8a 80 00 00 00    	lea    0x80(%edx),%ecx
4090c0:	89 4d cc             	mov    %ecx,-0x34(%ebp)
4090c3:	88 19                	mov    %bl,(%ecx)
4090c5:	7e 4a                	jle    0x409111
4090c7:	38 5d ee             	cmp    %bl,-0x12(%ebp)
4090ca:	74 45                	je     0x409111
4090cc:	8d 4d ef             	lea    -0x11(%ebp),%ecx
4090cf:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4090d2:	8a 11                	mov    (%ecx),%dl
4090d4:	3a d3                	cmp    %bl,%dl
4090d6:	74 39                	je     0x409111
4090d8:	0f b6 49 ff          	movzbl -0x1(%ecx),%ecx
4090dc:	0f b6 d2             	movzbl %dl,%edx
4090df:	3b ca                	cmp    %edx,%ecx
4090e1:	7f 21                	jg     0x409104
4090e3:	8d 94 48 00 01 00 00 	lea    0x100(%eax,%ecx,2),%edx
4090ea:	eb 03                	jmp    0x4090ef
4090ec:	8b 55 dc             	mov    -0x24(%ebp),%edx
4090ef:	66 c7 02 00 80       	movw   $0x8000,(%edx)
4090f4:	41                   	inc    %ecx
4090f5:	42                   	inc    %edx
4090f6:	42                   	inc    %edx
4090f7:	89 55 dc             	mov    %edx,-0x24(%ebp)
4090fa:	8b 55 e4             	mov    -0x1c(%ebp),%edx
4090fd:	0f b6 12             	movzbl (%edx),%edx
409100:	3b ca                	cmp    %edx,%ecx
409102:	7e e8                	jle    0x4090ec
409104:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
409107:	41                   	inc    %ecx
409108:	41                   	inc    %ecx
409109:	38 59 ff             	cmp    %bl,-0x1(%ecx)
40910c:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40910f:	75 c1                	jne    0x4090d2
409111:	68 fe 00 00 00       	push   $0xfe
409116:	8d 88 00 02 00 00    	lea    0x200(%eax),%ecx
40911c:	51                   	push   %ecx
40911d:	50                   	push   %eax
40911e:	e8 ad ca ff ff       	call   0x405bd0
409123:	6a 7f                	push   $0x7f
409125:	8d 87 00 01 00 00    	lea    0x100(%edi),%eax
40912b:	50                   	push   %eax
40912c:	57                   	push   %edi
40912d:	e8 9e ca ff ff       	call   0x405bd0
409132:	8b 45 d8             	mov    -0x28(%ebp),%eax
409135:	6a 7f                	push   $0x7f
409137:	8d 88 00 01 00 00    	lea    0x100(%eax),%ecx
40913d:	51                   	push   %ecx
40913e:	50                   	push   %eax
40913f:	e8 8c ca ff ff       	call   0x405bd0
409144:	8b 86 c0 00 00 00    	mov    0xc0(%esi),%eax
40914a:	83 c4 24             	add    $0x24,%esp
40914d:	3b c3                	cmp    %ebx,%eax
40914f:	74 4b                	je     0x40919c
409151:	50                   	push   %eax
409152:	ff 15 98 70 41 00    	call   *0x417098
409158:	85 c0                	test   %eax,%eax
40915a:	75 40                	jne    0x40919c
40915c:	8b 86 c4 00 00 00    	mov    0xc4(%esi),%eax
409162:	2d fe 00 00 00       	sub    $0xfe,%eax
409167:	50                   	push   %eax
409168:	e8 e6 d2 ff ff       	call   0x406453
40916d:	8b 86 cc 00 00 00    	mov    0xcc(%esi),%eax
409173:	bf 80 00 00 00       	mov    $0x80,%edi
409178:	2b c7                	sub    %edi,%eax
40917a:	50                   	push   %eax
40917b:	e8 d3 d2 ff ff       	call   0x406453
409180:	8b 86 d0 00 00 00    	mov    0xd0(%esi),%eax
409186:	2b c7                	sub    %edi,%eax
409188:	50                   	push   %eax
409189:	e8 c5 d2 ff ff       	call   0x406453
40918e:	ff b6 c0 00 00 00    	push   0xc0(%esi)
409194:	e8 ba d2 ff ff       	call   0x406453
409199:	83 c4 10             	add    $0x10,%esp
40919c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40919f:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
4091a5:	89 86 c0 00 00 00    	mov    %eax,0xc0(%esi)
4091ab:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4091ae:	89 86 c8 00 00 00    	mov    %eax,0xc8(%esi)
4091b4:	8b 45 c8             	mov    -0x38(%ebp),%eax
4091b7:	89 86 c4 00 00 00    	mov    %eax,0xc4(%esi)
4091bd:	8b 45 c0             	mov    -0x40(%ebp),%eax
4091c0:	89 86 cc 00 00 00    	mov    %eax,0xcc(%esi)
4091c6:	8b 45 cc             	mov    -0x34(%ebp),%eax
4091c9:	89 86 d0 00 00 00    	mov    %eax,0xd0(%esi)
4091cf:	8b 45 d0             	mov    -0x30(%ebp),%eax
4091d2:	89 86 ac 00 00 00    	mov    %eax,0xac(%esi)
4091d8:	ff 75 e0             	push   -0x20(%ebp)
4091db:	e8 73 d2 ff ff       	call   0x406453
4091e0:	59                   	pop    %ecx
4091e1:	8b c3                	mov    %ebx,%eax
4091e3:	eb 6d                	jmp    0x409252
4091e5:	ff 75 d4             	push   -0x2c(%ebp)
4091e8:	e8 66 d2 ff ff       	call   0x406453
4091ed:	ff 75 dc             	push   -0x24(%ebp)
4091f0:	e8 5e d2 ff ff       	call   0x406453
4091f5:	ff 75 e4             	push   -0x1c(%ebp)
4091f8:	e8 56 d2 ff ff       	call   0x406453
4091fd:	ff 75 d8             	push   -0x28(%ebp)
409200:	e8 4e d2 ff ff       	call   0x406453
409205:	33 db                	xor    %ebx,%ebx
409207:	83 c4 10             	add    $0x10,%esp
40920a:	43                   	inc    %ebx
40920b:	eb cb                	jmp    0x4091d8
40920d:	8d be c0 00 00 00    	lea    0xc0(%esi),%edi
409213:	8b 07                	mov    (%edi),%eax
409215:	3b c3                	cmp    %ebx,%eax
409217:	74 07                	je     0x409220
409219:	50                   	push   %eax
40921a:	ff 15 98 70 41 00    	call   *0x417098
409220:	89 1f                	mov    %ebx,(%edi)
409222:	89 9e c4 00 00 00    	mov    %ebx,0xc4(%esi)
409228:	c7 86 c8 00 00 00 90 	movl   $0x417790,0xc8(%esi)
40922f:	77 41 00
409232:	c7 86 cc 00 00 00 18 	movl   $0x417c18,0xcc(%esi)
409239:	7c 41 00
40923c:	c7 86 d0 00 00 00 98 	movl   $0x417d98,0xd0(%esi)
409243:	7d 41 00
409246:	c7 86 ac 00 00 00 01 	movl   $0x1,0xac(%esi)
40924d:	00 00 00
409250:	33 c0                	xor    %eax,%eax
409252:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409255:	5f                   	pop    %edi
409256:	5e                   	pop    %esi
409257:	33 cd                	xor    %ebp,%ecx
409259:	5b                   	pop    %ebx
40925a:	e8 d6 cc ff ff       	call   0x405f35
40925f:	c9                   	leave
409260:	c3                   	ret
409261:	e8 e6 32 00 00       	call   0x40c54c
409266:	8b c8                	mov    %eax,%ecx
409268:	8b 41 6c             	mov    0x6c(%ecx),%eax
40926b:	3b 05 20 d2 41 00    	cmp    0x41d220,%eax
409271:	74 10                	je     0x409283
409273:	8b 15 38 d1 41 00    	mov    0x41d138,%edx
409279:	85 51 70             	test   %edx,0x70(%ecx)
40927c:	75 05                	jne    0x409283
40927e:	e8 6f 04 00 00       	call   0x4096f2
409283:	8b 80 ac 00 00 00    	mov    0xac(%eax),%eax
409289:	c3                   	ret
40928a:	8b 44 24 04          	mov    0x4(%esp),%eax
40928e:	85 c0                	test   %eax,%eax
409290:	75 05                	jne    0x409297
409292:	e9 ca ff ff ff       	jmp    0x409261
409297:	8b 00                	mov    (%eax),%eax
409299:	8b 80 ac 00 00 00    	mov    0xac(%eax),%eax
40929f:	c3                   	ret
4092a0:	e8 a7 32 00 00       	call   0x40c54c
4092a5:	8b c8                	mov    %eax,%ecx
4092a7:	8b 41 6c             	mov    0x6c(%ecx),%eax
4092aa:	3b 05 20 d2 41 00    	cmp    0x41d220,%eax
4092b0:	74 10                	je     0x4092c2
4092b2:	8b 15 38 d1 41 00    	mov    0x41d138,%edx
4092b8:	85 51 70             	test   %edx,0x70(%ecx)
4092bb:	75 05                	jne    0x4092c2
4092bd:	e8 30 04 00 00       	call   0x4096f2
4092c2:	8b 40 04             	mov    0x4(%eax),%eax
4092c5:	c3                   	ret
4092c6:	e8 81 32 00 00       	call   0x40c54c
4092cb:	8b c8                	mov    %eax,%ecx
4092cd:	8b 41 6c             	mov    0x6c(%ecx),%eax
4092d0:	3b 05 20 d2 41 00    	cmp    0x41d220,%eax
4092d6:	74 10                	je     0x4092e8
4092d8:	8b 15 38 d1 41 00    	mov    0x41d138,%edx
4092de:	85 51 70             	test   %edx,0x70(%ecx)
4092e1:	75 05                	jne    0x4092e8
4092e3:	e8 0a 04 00 00       	call   0x4096f2
4092e8:	83 c0 0c             	add    $0xc,%eax
4092eb:	c3                   	ret
4092ec:	56                   	push   %esi
4092ed:	57                   	push   %edi
4092ee:	33 f6                	xor    %esi,%esi
4092f0:	ff 74 24 0c          	push   0xc(%esp)
4092f4:	e8 56 1a 00 00       	call   0x40ad4f
4092f9:	8b f8                	mov    %eax,%edi
4092fb:	85 ff                	test   %edi,%edi
4092fd:	59                   	pop    %ecx
4092fe:	75 27                	jne    0x409327
409300:	39 05 00 da 41 00    	cmp    %eax,0x41da00
409306:	76 1f                	jbe    0x409327
409308:	56                   	push   %esi
409309:	ff 15 78 70 41 00    	call   *0x417078
40930f:	8d 86 e8 03 00 00    	lea    0x3e8(%esi),%eax
409315:	3b 05 00 da 41 00    	cmp    0x41da00,%eax
40931b:	76 03                	jbe    0x409320
40931d:	83 c8 ff             	or     $0xffffffff,%eax
409320:	83 f8 ff             	cmp    $0xffffffff,%eax
409323:	8b f0                	mov    %eax,%esi
409325:	75 c9                	jne    0x4092f0
409327:	8b c7                	mov    %edi,%eax
409329:	5f                   	pop    %edi
40932a:	5e                   	pop    %esi
40932b:	c3                   	ret
40932c:	56                   	push   %esi
40932d:	57                   	push   %edi
40932e:	33 f6                	xor    %esi,%esi
409330:	6a 00                	push   $0x0
409332:	ff 74 24 14          	push   0x14(%esp)
409336:	ff 74 24 14          	push   0x14(%esp)
40933a:	e8 4f 77 00 00       	call   0x410a8e
40933f:	8b f8                	mov    %eax,%edi
409341:	83 c4 0c             	add    $0xc,%esp
409344:	85 ff                	test   %edi,%edi
409346:	75 27                	jne    0x40936f
409348:	39 05 00 da 41 00    	cmp    %eax,0x41da00
40934e:	76 1f                	jbe    0x40936f
409350:	56                   	push   %esi
409351:	ff 15 78 70 41 00    	call   *0x417078
409357:	8d 86 e8 03 00 00    	lea    0x3e8(%esi),%eax
40935d:	3b 05 00 da 41 00    	cmp    0x41da00,%eax
409363:	76 03                	jbe    0x409368
409365:	83 c8 ff             	or     $0xffffffff,%eax
409368:	83 f8 ff             	cmp    $0xffffffff,%eax
40936b:	8b f0                	mov    %eax,%esi
40936d:	75 c1                	jne    0x409330
40936f:	8b c7                	mov    %edi,%eax
409371:	5f                   	pop    %edi
409372:	5e                   	pop    %esi
409373:	c3                   	ret
409374:	56                   	push   %esi
409375:	57                   	push   %edi
409376:	33 f6                	xor    %esi,%esi
409378:	ff 74 24 10          	push   0x10(%esp)
40937c:	ff 74 24 10          	push   0x10(%esp)
409380:	e8 27 78 00 00       	call   0x410bac
409385:	8b f8                	mov    %eax,%edi
409387:	85 ff                	test   %edi,%edi
409389:	59                   	pop    %ecx
40938a:	59                   	pop    %ecx
40938b:	75 2d                	jne    0x4093ba
40938d:	39 44 24 10          	cmp    %eax,0x10(%esp)
409391:	74 27                	je     0x4093ba
409393:	39 05 00 da 41 00    	cmp    %eax,0x41da00
409399:	76 1f                	jbe    0x4093ba
40939b:	56                   	push   %esi
40939c:	ff 15 78 70 41 00    	call   *0x417078
4093a2:	8d 86 e8 03 00 00    	lea    0x3e8(%esi),%eax
4093a8:	3b 05 00 da 41 00    	cmp    0x41da00,%eax
4093ae:	76 03                	jbe    0x4093b3
4093b0:	83 c8 ff             	or     $0xffffffff,%eax
4093b3:	83 f8 ff             	cmp    $0xffffffff,%eax
4093b6:	8b f0                	mov    %eax,%esi