40513f:	cc                   	int3
405140:	55                   	push   %ebp
405141:	8b ec                	mov    %esp,%ebp
405143:	53                   	push   %ebx
405144:	56                   	push   %esi
405145:	57                   	push   %edi
405146:	6a 00                	push   $0x0
405148:	52                   	push   %edx
405149:	68 55 51 40 00       	push   $0x405155
40514e:	51                   	push   %ecx
40514f:	ff 15 50 f0 40 00    	call   *0x40f050
405155:	5f                   	pop    %edi
405156:	5e                   	pop    %esi
405157:	5b                   	pop    %ebx
405158:	5d                   	pop    %ebp
405159:	c3                   	ret
40515a:	cc                   	int3
40515b:	cc                   	int3
40515c:	cc                   	int3
40515d:	cc                   	int3
40515e:	cc                   	int3
40515f:	cc                   	int3
405160:	55                   	push   %ebp
405161:	8b 6c 24 08          	mov    0x8(%esp),%ebp
405165:	52                   	push   %edx
405166:	51                   	push   %ecx
405167:	ff 74 24 14          	push   0x14(%esp)
40516b:	e8 a0 fe ff ff       	call   0x405010
405170:	83 c4 0c             	add    $0xc,%esp
405173:	5d                   	pop    %ebp
405174:	c2 08 00             	ret    $0x8
405177:	56                   	push   %esi
405178:	57                   	push   %edi
405179:	bf 10 6d 41 00       	mov    $0x416d10,%edi
40517e:	33 f6                	xor    %esi,%esi
405180:	6a 00                	push   $0x0
405182:	68 a0 0f 00 00       	push   $0xfa0
405187:	57                   	push   %edi
405188:	e8 2f 02 00 00       	call   0x4053bc
40518d:	83 c4 0c             	add    $0xc,%esp
405190:	85 c0                	test   %eax,%eax
405192:	74 15                	je     0x4051a9
405194:	ff 05 28 6d 41 00    	incl   0x416d28
40519a:	83 c6 18             	add    $0x18,%esi
40519d:	83 c7 18             	add    $0x18,%edi
4051a0:	83 fe 18             	cmp    $0x18,%esi
4051a3:	72 db                	jb     0x405180
4051a5:	b0 01                	mov    $0x1,%al
4051a7:	eb 07                	jmp    0x4051b0
4051a9:	e8 05 00 00 00       	call   0x4051b3
4051ae:	32 c0                	xor    %al,%al
4051b0:	5f                   	pop    %edi
4051b1:	5e                   	pop    %esi
4051b2:	c3                   	ret
4051b3:	56                   	push   %esi
4051b4:	8b 35 28 6d 41 00    	mov    0x416d28,%esi
4051ba:	85 f6                	test   %esi,%esi
4051bc:	74 20                	je     0x4051de
4051be:	6b c6 18             	imul   $0x18,%esi,%eax
4051c1:	57                   	push   %edi
4051c2:	8d b8 f8 6c 41 00    	lea    0x416cf8(%eax),%edi
4051c8:	57                   	push   %edi
4051c9:	ff 15 6c f0 40 00    	call   *0x40f06c
4051cf:	ff 0d 28 6d 41 00    	decl   0x416d28
4051d5:	83 ef 18             	sub    $0x18,%edi
4051d8:	83 ee 01             	sub    $0x1,%esi
4051db:	75 eb                	jne    0x4051c8
4051dd:	5f                   	pop    %edi
4051de:	b0 01                	mov    $0x1,%al
4051e0:	5e                   	pop    %esi
4051e1:	c3                   	ret
4051e2:	55                   	push   %ebp
4051e3:	8b ec                	mov    %esp,%ebp
4051e5:	51                   	push   %ecx
4051e6:	51                   	push   %ecx
4051e7:	8b 45 08             	mov    0x8(%ebp),%eax
4051ea:	57                   	push   %edi
4051eb:	8d 04 85 74 6d 41 00 	lea    0x416d74(,%eax,4),%eax
4051f2:	89 45 f8             	mov    %eax,-0x8(%ebp)
4051f5:	8b 00                	mov    (%eax),%eax
4051f7:	90                   	nop
4051f8:	83 cf ff             	or     $0xffffffff,%edi
4051fb:	3b c7                	cmp    %edi,%eax
4051fd:	75 04                	jne    0x405203
4051ff:	33 c0                	xor    %eax,%eax
405201:	eb 56                	jmp    0x405259
405203:	85 c0                	test   %eax,%eax
405205:	75 52                	jne    0x405259
405207:	53                   	push   %ebx
405208:	8b 5d 10             	mov    0x10(%ebp),%ebx
40520b:	56                   	push   %esi
40520c:	eb 3d                	jmp    0x40524b
40520e:	8b 0b                	mov    (%ebx),%ecx
405210:	89 4d fc             	mov    %ecx,-0x4(%ebp)
405213:	8d 04 8d 68 6d 41 00 	lea    0x416d68(,%ecx,4),%eax
40521a:	8b 30                	mov    (%eax),%esi
40521c:	90                   	nop
40521d:	85 f6                	test   %esi,%esi
40521f:	74 06                	je     0x405227
405221:	3b f7                	cmp    %edi,%esi
405223:	75 46                	jne    0x40526b
405225:	eb 21                	jmp    0x405248
405227:	ff 34 8d ac fb 40 00 	push   0x40fbac(,%ecx,4)
40522e:	e8 4f 00 00 00       	call   0x405282
405233:	8b 55 fc             	mov    -0x4(%ebp),%edx
405236:	8b f0                	mov    %eax,%esi
405238:	59                   	pop    %ecx
405239:	8d 0c 95 68 6d 41 00 	lea    0x416d68(,%edx,4),%ecx
405240:	85 f6                	test   %esi,%esi
405242:	75 18                	jne    0x40525c
405244:	8b c7                	mov    %edi,%eax
405246:	87 01                	xchg   %eax,(%ecx)
405248:	83 c3 04             	add    $0x4,%ebx
40524b:	3b 5d 14             	cmp    0x14(%ebp),%ebx
40524e:	75 be                	jne    0x40520e
405250:	8b 55 f8             	mov    -0x8(%ebp),%edx
405253:	87 3a                	xchg   %edi,(%edx)
405255:	33 c0                	xor    %eax,%eax
405257:	5e                   	pop    %esi
405258:	5b                   	pop    %ebx
405259:	5f                   	pop    %edi
40525a:	c9                   	leave
40525b:	c3                   	ret
40525c:	8b c6                	mov    %esi,%eax
40525e:	87 01                	xchg   %eax,(%ecx)
405260:	85 c0                	test   %eax,%eax
405262:	74 07                	je     0x40526b
405264:	56                   	push   %esi
405265:	ff 15 84 f0 40 00    	call   *0x40f084
40526b:	ff 75 0c             	push   0xc(%ebp)
40526e:	56                   	push   %esi
40526f:	ff 15 88 f0 40 00    	call   *0x40f088
405275:	85 c0                	test   %eax,%eax
405277:	74 d7                	je     0x405250
405279:	8b 55 f8             	mov    -0x8(%ebp),%edx
40527c:	8b c8                	mov    %eax,%ecx
40527e:	87 0a                	xchg   %ecx,(%edx)
405280:	eb d5                	jmp    0x405257
405282:	55                   	push   %ebp
405283:	8b ec                	mov    %esp,%ebp
405285:	68 00 08 00 00       	push   $0x800
40528a:	6a 00                	push   $0x0
40528c:	ff 75 08             	push   0x8(%ebp)
40528f:	ff 15 8c f0 40 00    	call   *0x40f08c
405295:	85 c0                	test   %eax,%eax
405297:	75 32                	jne    0x4052cb
405299:	ff 15 58 f0 40 00    	call   *0x40f058
40529f:	83 f8 57             	cmp    $0x57,%eax
4052a2:	75 25                	jne    0x4052c9
4052a4:	6a 07                	push   $0x7
4052a6:	68 44 fc 40 00       	push   $0x40fc44
4052ab:	ff 75 08             	push   0x8(%ebp)
4052ae:	e8 75 1e 00 00       	call   0x407128
4052b3:	83 c4 0c             	add    $0xc,%esp
4052b6:	85 c0                	test   %eax,%eax
4052b8:	74 0f                	je     0x4052c9
4052ba:	6a 00                	push   $0x0
4052bc:	6a 00                	push   $0x0
4052be:	ff 75 08             	push   0x8(%ebp)
4052c1:	ff 15 8c f0 40 00    	call   *0x40f08c
4052c7:	5d                   	pop    %ebp
4052c8:	c3                   	ret
4052c9:	33 c0                	xor    %eax,%eax
4052cb:	5d                   	pop    %ebp
4052cc:	c3                   	ret
4052cd:	55                   	push   %ebp
4052ce:	8b ec                	mov    %esp,%ebp
4052d0:	56                   	push   %esi
4052d1:	68 5c fc 40 00       	push   $0x40fc5c
4052d6:	68 54 fc 40 00       	push   $0x40fc54
4052db:	68 5c fc 40 00       	push   $0x40fc5c
4052e0:	6a 00                	push   $0x0
4052e2:	e8 fb fe ff ff       	call   0x4051e2
4052e7:	8b f0                	mov    %eax,%esi
4052e9:	83 c4 10             	add    $0x10,%esp
4052ec:	85 f6                	test   %esi,%esi
4052ee:	74 10                	je     0x405300
4052f0:	ff 75 08             	push   0x8(%ebp)
4052f3:	8b ce                	mov    %esi,%ecx
4052f5:	ff 15 18 f1 40 00    	call   *0x40f118
4052fb:	ff d6                	call   *%esi
4052fd:	5e                   	pop    %esi
4052fe:	5d                   	pop    %ebp
4052ff:	c3                   	ret
405300:	5e                   	pop    %esi
405301:	5d                   	pop    %ebp
405302:	ff 25 74 f0 40 00    	jmp    *0x40f074
405308:	55                   	push   %ebp
405309:	8b ec                	mov    %esp,%ebp
40530b:	56                   	push   %esi
40530c:	68 70 fc 40 00       	push   $0x40fc70
405311:	68 68 fc 40 00       	push   $0x40fc68
405316:	68 70 fc 40 00       	push   $0x40fc70
40531b:	6a 01                	push   $0x1
40531d:	e8 c0 fe ff ff       	call   0x4051e2
405322:	83 c4 10             	add    $0x10,%esp
405325:	8b f0                	mov    %eax,%esi
405327:	ff 75 08             	push   0x8(%ebp)
40532a:	85 f6                	test   %esi,%esi
40532c:	74 0c                	je     0x40533a
40532e:	8b ce                	mov    %esi,%ecx
405330:	ff 15 18 f1 40 00    	call   *0x40f118
405336:	ff d6                	call   *%esi
405338:	eb 06                	jmp    0x405340
40533a:	ff 15 80 f0 40 00    	call   *0x40f080
405340:	5e                   	pop    %esi
405341:	5d                   	pop    %ebp
405342:	c3                   	ret
405343:	55                   	push   %ebp
405344:	8b ec                	mov    %esp,%ebp
405346:	56                   	push   %esi
405347:	68 80 fc 40 00       	push   $0x40fc80
40534c:	68 78 fc 40 00       	push   $0x40fc78
405351:	68 80 fc 40 00       	push   $0x40fc80
405356:	6a 02                	push   $0x2
405358:	e8 85 fe ff ff       	call   0x4051e2
40535d:	83 c4 10             	add    $0x10,%esp
405360:	8b f0                	mov    %eax,%esi
405362:	ff 75 08             	push   0x8(%ebp)
405365:	85 f6                	test   %esi,%esi
405367:	74 0c                	je     0x405375
405369:	8b ce                	mov    %esi,%ecx
40536b:	ff 15 18 f1 40 00    	call   *0x40f118
405371:	ff d6                	call   *%esi
405373:	eb 06                	jmp    0x40537b
405375:	ff 15 78 f0 40 00    	call   *0x40f078
40537b:	5e                   	pop    %esi
40537c:	5d                   	pop    %ebp
40537d:	c3                   	ret
40537e:	55                   	push   %ebp
40537f:	8b ec                	mov    %esp,%ebp
405381:	56                   	push   %esi
405382:	68 94 fc 40 00       	push   $0x40fc94
405387:	68 8c fc 40 00       	push   $0x40fc8c
40538c:	68 94 fc 40 00       	push   $0x40fc94
405391:	6a 03                	push   $0x3
405393:	e8 4a fe ff ff       	call   0x4051e2
405398:	83 c4 10             	add    $0x10,%esp
40539b:	8b f0                	mov    %eax,%esi
40539d:	ff 75 0c             	push   0xc(%ebp)
4053a0:	ff 75 08             	push   0x8(%ebp)
4053a3:	85 f6                	test   %esi,%esi
4053a5:	74 0c                	je     0x4053b3
4053a7:	8b ce                	mov    %esi,%ecx
4053a9:	ff 15 18 f1 40 00    	call   *0x40f118
4053af:	ff d6                	call   *%esi
4053b1:	eb 06                	jmp    0x4053b9
4053b3:	ff 15 7c f0 40 00    	call   *0x40f07c
4053b9:	5e                   	pop    %esi
4053ba:	5d                   	pop    %ebp
4053bb:	c3                   	ret
4053bc:	55                   	push   %ebp
4053bd:	8b ec                	mov    %esp,%ebp
4053bf:	56                   	push   %esi
4053c0:	68 a8 fc 40 00       	push   $0x40fca8
4053c5:	68 a0 fc 40 00       	push   $0x40fca0
4053ca:	68 a8 fc 40 00       	push   $0x40fca8
4053cf:	6a 04                	push   $0x4
4053d1:	e8 0c fe ff ff       	call   0x4051e2
4053d6:	8b f0                	mov    %eax,%esi
4053d8:	83 c4 10             	add    $0x10,%esp
4053db:	85 f6                	test   %esi,%esi
4053dd:	74 15                	je     0x4053f4
4053df:	ff 75 10             	push   0x10(%ebp)
4053e2:	8b ce                	mov    %esi,%ecx
4053e4:	ff 75 0c             	push   0xc(%ebp)
4053e7:	ff 75 08             	push   0x8(%ebp)
4053ea:	ff 15 18 f1 40 00    	call   *0x40f118
4053f0:	ff d6                	call   *%esi
4053f2:	eb 0c                	jmp    0x405400
4053f4:	ff 75 0c             	push   0xc(%ebp)
4053f7:	ff 75 08             	push   0x8(%ebp)
4053fa:	ff 15 70 f0 40 00    	call   *0x40f070
405400:	5e                   	pop    %esi
405401:	5d                   	pop    %ebp
405402:	c3                   	ret
405403:	56                   	push   %esi
405404:	e8 4d ed ff ff       	call   0x404156
405409:	8b 70 04             	mov    0x4(%eax),%esi
40540c:	85 f6                	test   %esi,%esi
40540e:	74 0a                	je     0x40541a
405410:	8b ce                	mov    %esi,%ecx
405412:	ff 15 18 f1 40 00    	call   *0x40f118
405418:	ff d6                	call   *%esi
40541a:	e8 43 1b 00 00       	call   0x406f62
40541f:	cc                   	int3
405420:	55                   	push   %ebp
405421:	8b ec                	mov    %esp,%ebp
405423:	8b 45 10             	mov    0x10(%ebp),%eax
405426:	8b 4d 08             	mov    0x8(%ebp),%ecx
405429:	81 78 04 80 00 00 00 	cmpl   $0x80,0x4(%eax)
405430:	7f 06                	jg     0x405438
405432:	0f be 41 08          	movsbl 0x8(%ecx),%eax
405436:	5d                   	pop    %ebp
405437:	c3                   	ret
405438:	8b 41 08             	mov    0x8(%ecx),%eax
40543b:	5d                   	pop    %ebp
40543c:	c3                   	ret
40543d:	55                   	push   %ebp
40543e:	8b ec                	mov    %esp,%ebp
405440:	8b 45 08             	mov    0x8(%ebp),%eax
405443:	8b 4d 10             	mov    0x10(%ebp),%ecx
405446:	89 48 08             	mov    %ecx,0x8(%eax)
405449:	5d                   	pop    %ebp
40544a:	c3                   	ret
40544b:	cc                   	int3
40544c:	cc                   	int3
40544d:	cc                   	int3
40544e:	cc                   	int3
40544f:	cc                   	int3
405450:	57                   	push   %edi
405451:	56                   	push   %esi
405452:	8b 74 24 10          	mov    0x10(%esp),%esi
405456:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40545a:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40545e:	8b c1                	mov    %ecx,%eax
405460:	8b d1                	mov    %ecx,%edx
405462:	03 c6                	add    %esi,%eax
405464:	3b fe                	cmp    %esi,%edi
405466:	76 08                	jbe    0x405470
405468:	3b f8                	cmp    %eax,%edi
40546a:	0f 82 94 02 00 00    	jb     0x405704
405470:	83 f9 20             	cmp    $0x20,%ecx
405473:	0f 82 d2 04 00 00    	jb     0x40594b
405479:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
40547f:	73 13                	jae    0x405494
405481:	0f ba 25 10 60 41 00 	btl    $0x1,0x416010
405488:	01
405489:	0f 82 8e 04 00 00    	jb     0x40591d
40548f:	e9 e3 01 00 00       	jmp    0x405677
405494:	0f ba 25 c0 69 41 00 	btl    $0x1,0x4169c0
40549b:	01
40549c:	73 09                	jae    0x4054a7
40549e:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4054a0:	8b 44 24 0c          	mov    0xc(%esp),%eax
4054a4:	5e                   	pop    %esi
4054a5:	5f                   	pop    %edi
4054a6:	c3                   	ret
4054a7:	8b c7                	mov    %edi,%eax
4054a9:	33 c6                	xor    %esi,%eax
4054ab:	a9 0f 00 00 00       	test   $0xf,%eax
4054b0:	75 0e                	jne    0x4054c0
4054b2:	0f ba 25 10 60 41 00 	btl    $0x1,0x416010
4054b9:	01
4054ba:	0f 82 e0 03 00 00    	jb     0x4058a0
4054c0:	0f ba 25 c0 69 41 00 	btl    $0x0,0x4169c0
4054c7:	00
4054c8:	0f 83 a9 01 00 00    	jae    0x405677
4054ce:	f7 c7 03 00 00 00    	test   $0x3,%edi
4054d4:	0f 85 9d 01 00 00    	jne    0x405677