4050cb:	ff 15 a4 d4 48 00    	call   *0x48d4a4
4050d1:	c6 05 c6 10 4c 00 01 	movb   $0x1,0x4c10c6
4050d8:	8b ce                	mov    %esi,%ecx
4050da:	e8 d0 00 00 00       	call   0x4051af
4050df:	5f                   	pop    %edi
4050e0:	5e                   	pop    %esi
4050e1:	5b                   	pop    %ebx
4050e2:	8b e5                	mov    %ebp,%esp
4050e4:	5d                   	pop    %ebp
4050e5:	c3                   	ret
4050e6:	55                   	push   %ebp
4050e7:	8b ec                	mov    %esp,%ebp
4050e9:	56                   	push   %esi
4050ea:	8b 75 08             	mov    0x8(%ebp),%esi
4050ed:	57                   	push   %edi
4050ee:	8b f9                	mov    %ecx,%edi
4050f0:	85 f6                	test   %esi,%esi
4050f2:	74 15                	je     0x405109
4050f4:	8d 46 ff             	lea    -0x1(%esi),%eax
4050f7:	50                   	push   %eax
4050f8:	52                   	push   %edx
4050f9:	57                   	push   %edi
4050fa:	e8 ad d2 01 00       	call   0x4223ac
4050ff:	83 c4 0c             	add    $0xc,%esp
405102:	33 c0                	xor    %eax,%eax
405104:	66 89 44 77 fe       	mov    %ax,-0x2(%edi,%esi,2)
405109:	5f                   	pop    %edi
40510a:	5e                   	pop    %esi
40510b:	5d                   	pop    %ebp
40510c:	c3                   	ret
40510d:	55                   	push   %ebp
40510e:	8b ec                	mov    %esp,%ebp
405110:	83 ec 18             	sub    $0x18,%esp
405113:	56                   	push   %esi
405114:	8b f1                	mov    %ecx,%esi
405116:	3b 75 08             	cmp    0x8(%ebp),%esi
405119:	0f 84 c8 ca 06 00    	je     0x471be7
40511f:	6a ff                	push   $0xffffffff
405121:	6a 00                	push   $0x0
405123:	ff 75 08             	push   0x8(%ebp)
405126:	e8 59 62 00 00       	call   0x40b384
40512b:	5e                   	pop    %esi
40512c:	c9                   	leave
40512d:	c2 04 00             	ret    $0x4
405130:	55                   	push   %ebp
405131:	8b ec                	mov    %esp,%ebp
405133:	53                   	push   %ebx
405134:	57                   	push   %edi
405135:	ff 75 08             	push   0x8(%ebp)
405138:	8b f9                	mov    %ecx,%edi
40513a:	e8 9c bb 01 00       	call   0x420cdb
40513f:	59                   	pop    %ecx
405140:	8b cf                	mov    %edi,%ecx
405142:	8b d8                	mov    %eax,%ebx
405144:	e8 a1 19 00 00       	call   0x406aea
405149:	84 c0                	test   %al,%al
40514b:	0f 85 d6 c9 06 00    	jne    0x471b27
405151:	8b 47 04             	mov    0x4(%edi),%eax
405154:	03 c3                	add    %ebx,%eax
405156:	50                   	push   %eax
405157:	8b cf                	mov    %edi,%ecx
405159:	e8 27 6a 00 00       	call   0x40bb85
40515e:	8b 4f 04             	mov    0x4(%edi),%ecx
405161:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
405164:	50                   	push   %eax
405165:	8b 07                	mov    (%edi),%eax
405167:	ff 75 08             	push   0x8(%ebp)
40516a:	8d 04 48             	lea    (%eax,%ecx,2),%eax
40516d:	50                   	push   %eax
40516e:	e8 0d 9d 01 00       	call   0x41ee80
405173:	01 5f 04             	add    %ebx,0x4(%edi)
405176:	8b 07                	mov    (%edi),%eax
405178:	8b 4f 04             	mov    0x4(%edi),%ecx
40517b:	83 c4 0c             	add    $0xc,%esp
40517e:	33 d2                	xor    %edx,%edx
405180:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
405184:	8b c7                	mov    %edi,%eax
405186:	5f                   	pop    %edi
405187:	5b                   	pop    %ebx
405188:	5d                   	pop    %ebp
405189:	c2 08 00             	ret    $0x8
40518c:	55                   	push   %ebp
40518d:	8b ec                	mov    %esp,%ebp
40518f:	57                   	push   %edi
405190:	8b f9                	mov    %ecx,%edi
405192:	e8 53 19 00 00       	call   0x406aea
405197:	84 c0                	test   %al,%al
405199:	0f 85 2f c9 06 00    	jne    0x471ace
40519f:	51                   	push   %ecx
4051a0:	ff 75 08             	push   0x8(%ebp)
4051a3:	8b cf                	mov    %edi,%ecx
4051a5:	e8 86 ff ff ff       	call   0x405130
4051aa:	5f                   	pop    %edi
4051ab:	5d                   	pop    %ebp
4051ac:	c2 04 00             	ret    $0x4
4051af:	55                   	push   %ebp
4051b0:	8b ec                	mov    %esp,%ebp
4051b2:	83 e4 f8             	and    $0xfffffff8,%esp
4051b5:	81 ec cc 04 00 00    	sub    $0x4cc,%esp
4051bb:	80 3d c6 10 4c 00 00 	cmpb   $0x0,0x4c10c6
4051c2:	56                   	push   %esi
4051c3:	8b f1                	mov    %ecx,%esi
4051c5:	0f 84 d7 00 00 00    	je     0x4052a2
4051cb:	68 04 01 00 00       	push   $0x104
4051d0:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
4051d4:	e8 36 19 00 00       	call   0x406b0f
4051d9:	80 3d c5 10 4c 00 01 	cmpb   $0x1,0x4c10c5
4051e0:	0f 84 bb ea 06 00    	je     0x473ca1
4051e6:	33 c0                	xor    %eax,%eax
4051e8:	66 89 44 24 18       	mov    %ax,0x18(%esp)
4051ed:	8d 44 24 18          	lea    0x18(%esp),%eax
4051f1:	50                   	push   %eax
4051f2:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
4051f6:	e8 68 18 00 00       	call   0x406a63
4051fb:	80 3d c3 10 4c 00 00 	cmpb   $0x0,0x4c10c3
405202:	8d 4c 24 08          	lea    0x8(%esp),%ecx
405206:	0f 85 af ea 06 00    	jne    0x473cbb
40520c:	83 7e 60 00          	cmpl   $0x0,0x60(%esi)
405210:	0f 85 91 00 00 00    	jne    0x4052a7
405216:	68 20 11 4c 00       	push   $0x4c1120
40521b:	e8 ed fe ff ff       	call   0x40510d
405220:	68 b4 03 00 00       	push   $0x3b4
405225:	8d 84 24 20 01 00 00 	lea    0x120(%esp),%eax
40522c:	6a 00                	push   $0x0
40522e:	50                   	push   %eax
40522f:	e8 1c bb 01 00       	call   0x420d50
405234:	a1 e8 10 4c 00       	mov    0x4c10e8,%eax
405239:	8b 54 24 14          	mov    0x14(%esp),%edx
40523d:	83 c4 0c             	add    $0xc,%esp
405240:	33 f6                	xor    %esi,%esi
405242:	46                   	inc    %esi
405243:	68 80 00 00 00       	push   $0x80
405248:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
40524c:	c7 84 24 1c 01 00 00 	movl   $0x3a8,0x11c(%esp)
405253:	a8 03 00 00
405257:	89 84 24 20 01 00 00 	mov    %eax,0x120(%esp)
40525e:	89 b4 24 24 01 00 00 	mov    %esi,0x124(%esp)
405265:	c7 84 24 28 01 00 00 	movl   $0x4,0x128(%esp)
40526c:	04 00 00 00
405270:	e8 71 fe ff ff       	call   0x4050e6
405275:	59                   	pop    %ecx
405276:	8d 44 24 18          	lea    0x18(%esp),%eax
40527a:	50                   	push   %eax
40527b:	8d 84 24 34 01 00 00 	lea    0x134(%esp),%eax
405282:	50                   	push   %eax
405283:	e8 9b ba 01 00       	call   0x420d23
405288:	59                   	pop    %ecx
405289:	59                   	pop    %ecx
40528a:	8d 84 24 18 01 00 00 	lea    0x118(%esp),%eax
405291:	50                   	push   %eax
405292:	56                   	push   %esi
405293:	ff 15 a4 d4 48 00    	call   *0x48d4a4
405299:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40529d:	e8 95 78 00 00       	call   0x40cb37
4052a2:	5e                   	pop    %esi
4052a3:	8b e5                	mov    %ebp,%esp
4052a5:	5d                   	pop    %ebp
4052a6:	c3                   	ret
4052a7:	8d 46 5c             	lea    0x5c(%esi),%eax
4052aa:	50                   	push   %eax
4052ab:	e8 3d 1c 00 00       	call   0x406eed
4052b0:	e9 6b ff ff ff       	jmp    0x405220
4052b5:	53                   	push   %ebx
4052b6:	57                   	push   %edi
4052b7:	8b f9                	mov    %ecx,%edi
4052b9:	8b 5f 08             	mov    0x8(%edi),%ebx
4052bc:	85 db                	test   %ebx,%ebx
4052be:	74 1a                	je     0x4052da
4052c0:	56                   	push   %esi
4052c1:	ff 33                	push   (%ebx)
4052c3:	8b 73 0c             	mov    0xc(%ebx),%esi
4052c6:	e8 93 a2 01 00       	call   0x41f55e
4052cb:	53                   	push   %ebx
4052cc:	e8 8d a2 01 00       	call   0x41f55e
4052d1:	59                   	pop    %ecx
4052d2:	59                   	pop    %ecx
4052d3:	8b de                	mov    %esi,%ebx
4052d5:	85 f6                	test   %esi,%esi
4052d7:	75 e8                	jne    0x4052c1
4052d9:	5e                   	pop    %esi
4052da:	8b 4f 4c             	mov    0x4c(%edi),%ecx
4052dd:	33 db                	xor    %ebx,%ebx
4052df:	85 c9                	test   %ecx,%ecx
4052e1:	74 0d                	je     0x4052f0
4052e3:	8d 41 fc             	lea    -0x4(%ecx),%eax
4052e6:	39 18                	cmp    %ebx,(%eax)
4052e8:	74 44                	je     0x40532e
4052ea:	8b 01                	mov    (%ecx),%eax
4052ec:	6a 03                	push   $0x3
4052ee:	ff 10                	call   *(%eax)
4052f0:	ff 77 14             	push   0x14(%edi)
4052f3:	e8 66 a2 01 00       	call   0x41f55e
4052f8:	59                   	pop    %ecx
4052f9:	8d 4f 18             	lea    0x18(%edi),%ecx
4052fc:	89 5f 08             	mov    %ebx,0x8(%edi)
4052ff:	89 5f 0c             	mov    %ebx,0xc(%edi)
405302:	89 5f 10             	mov    %ebx,0x10(%edi)
405305:	89 5f 14             	mov    %ebx,0x14(%edi)
405308:	89 5f 4c             	mov    %ebx,0x4c(%edi)
40530b:	66 89 1f             	mov    %bx,(%edi)
40530e:	e8 fd 00 00 00       	call   0x405410
405313:	8d 4f 28             	lea    0x28(%edi),%ecx
405316:	e8 f0 e0 ff ff       	call   0x40340b
40531b:	39 5f 58             	cmp    %ebx,0x58(%edi)
40531e:	0f 87 f1 e4 06 00    	ja     0x473815
405324:	8d 4f 50             	lea    0x50(%edi),%ecx
405327:	5f                   	pop    %edi
405328:	5b                   	pop    %ebx
405329:	e9 50 e1 ff ff       	jmp    0x40347e
40532e:	50                   	push   %eax
40532f:	e8 2a a2 01 00       	call   0x41f55e
405334:	59                   	pop    %ecx
405335:	eb b9                	jmp    0x4052f0
405337:	56                   	push   %esi
405338:	b9 00 21 4c 00       	mov    $0x4c2100,%ecx
40533d:	e8 73 ff ff ff       	call   0x4052b5
405342:	be 38 21 4c 00       	mov    $0x4c2138,%esi
405347:	8b ce                	mov    %esi,%ecx
405349:	e8 c2 00 00 00       	call   0x405410
40534e:	b9 50 21 4c 00       	mov    $0x4c2150,%ecx
405353:	e8 d1 e3 ff ff       	call   0x403729
405358:	8b ce                	mov    %esi,%ecx
40535a:	e8 93 00 00 00       	call   0x4053f2
40535f:	b9 28 21 4c 00       	mov    $0x4c2128,%ecx
405364:	e8 e9 ec ff ff       	call   0x404052
405369:	b9 18 21 4c 00       	mov    $0x4c2118,%ecx
40536e:	5e                   	pop    %esi
40536f:	e9 7e 00 00 00       	jmp    0x4053f2
405374:	55                   	push   %ebp
405375:	8b ec                	mov    %esp,%ebp
405377:	b8 14 00 01 00       	mov    $0x10014,%eax
40537c:	e8 1f a5 02 00       	call   0x42f8a0
405381:	56                   	push   %esi
405382:	68 ff 7f 00 00       	push   $0x7fff
405387:	8d 85 f0 ff fe ff    	lea    -0x10010(%ebp),%eax
40538d:	50                   	push   %eax
40538e:	6a 00                	push   $0x0
405390:	8b f1                	mov    %ecx,%esi
405392:	ff 15 98 d1 48 00    	call   *0x48d198
405398:	8d 85 f0 ff fe ff    	lea    -0x10010(%ebp),%eax
40539e:	50                   	push   %eax
40539f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4053a2:	e8 72 7a 00 00       	call   0x40ce19
4053a7:	8b d6                	mov    %esi,%edx
4053a9:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4053ac:	e8 5e 12 00 00       	call   0x40660f
4053b1:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4053b4:	e8 7e 77 00 00       	call   0x40cb37
4053b9:	5e                   	pop    %esi
4053ba:	c9                   	leave
4053bb:	c3                   	ret
4053bc:	55                   	push   %ebp
4053bd:	8b ec                	mov    %esp,%ebp
4053bf:	56                   	push   %esi
4053c0:	8b 75 08             	mov    0x8(%ebp),%esi
4053c3:	57                   	push   %edi
4053c4:	56                   	push   %esi
4053c5:	8b f9                	mov    %ecx,%edi
4053c7:	e8 21 1b 00 00       	call   0x406eed
4053cc:	8b 46 10             	mov    0x10(%esi),%eax
4053cf:	89 47 10             	mov    %eax,0x10(%edi)
4053d2:	8b 46 14             	mov    0x14(%esi),%eax
4053d5:	89 47 14             	mov    %eax,0x14(%edi)
4053d8:	8b 46 18             	mov    0x18(%esi),%eax
4053db:	89 47 18             	mov    %eax,0x18(%edi)
4053de:	8b 46 1c             	mov    0x1c(%esi),%eax
4053e1:	89 47 1c             	mov    %eax,0x1c(%edi)
4053e4:	8a 46 20             	mov    0x20(%esi),%al
4053e7:	88 47 20             	mov    %al,0x20(%edi)
4053ea:	8b c7                	mov    %edi,%eax
4053ec:	5f                   	pop    %edi
4053ed:	5e                   	pop    %esi
4053ee:	5d                   	pop    %ebp
4053ef:	c2 04 00             	ret    $0x4
4053f2:	56                   	push   %esi
4053f3:	8b f1                	mov    %ecx,%esi
4053f5:	c7 06 04 dc 49 00    	movl   $0x49dc04,(%esi)
4053fb:	e8 10 00 00 00       	call   0x405410
405400:	ff 76 04             	push   0x4(%esi)
405403:	e8 56 a1 01 00       	call   0x41f55e
405408:	59                   	pop    %ecx
405409:	5e                   	pop    %esi
40540a:	c3                   	ret
40540b:	cc                   	int3
40540c:	cc                   	int3
40540d:	cc                   	int3
40540e:	cc                   	int3
40540f:	cc                   	int3
405410:	53                   	push   %ebx
405411:	57                   	push   %edi
405412:	8b d9                	mov    %ecx,%ebx
405414:	33 ff                	xor    %edi,%edi
405416:	39 7b 08             	cmp    %edi,0x8(%ebx)
405419:	76 55                	jbe    0x405470
40541b:	56                   	push   %esi
40541c:	8d 64 24 00          	lea    0x0(%esp),%esp
405420:	8b 73 04             	mov    0x4(%ebx),%esi
405423:	8b 34 be             	mov    (%esi,%edi,4),%esi
405426:	85 f6                	test   %esi,%esi
405428:	74 16                	je     0x405440
40542a:	8b 46 0c             	mov    0xc(%esi),%eax
40542d:	ff 08                	decl   (%eax)
40542f:	8b 46 0c             	mov    0xc(%esi),%eax
405432:	83 38 00             	cmpl   $0x0,(%eax)
405435:	74 25                	je     0x40545c
405437:	56                   	push   %esi
405438:	e8 21 a1 01 00       	call   0x41f55e
40543d:	83 c4 04             	add    $0x4,%esp
405440:	8b 43 04             	mov    0x4(%ebx),%eax
405443:	47                   	inc    %edi
405444:	c7 44 b8 fc 00 00 00 	movl   $0x0,-0x4(%eax,%edi,4)
40544b:	00
40544c:	3b 7b 08             	cmp    0x8(%ebx),%edi
40544f:	72 cf                	jb     0x405420
405451:	5e                   	pop    %esi
405452:	5f                   	pop    %edi
405453:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)
40545a:	5b                   	pop    %ebx
40545b:	c3                   	ret
40545c:	ff 36                	push   (%esi)
40545e:	e8 fb a0 01 00       	call   0x41f55e
405463:	ff 76 0c             	push   0xc(%esi)
405466:	e8 f3 a0 01 00       	call   0x41f55e
40546b:	83 c4 08             	add    $0x8,%esp
40546e:	eb c7                	jmp    0x405437
405470:	89 7b 08             	mov    %edi,0x8(%ebx)
405473:	5f                   	pop    %edi
405474:	5b                   	pop    %ebx
405475:	c3                   	ret
405476:	55                   	push   %ebp
405477:	8b ec                	mov    %esp,%ebp
405479:	57                   	push   %edi
40547a:	8b f9                	mov    %ecx,%edi
40547c:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
405480:	75 47                	jne    0x4054c9
405482:	56                   	push   %esi
405483:	6a 28                	push   $0x28
405485:	e8 60 a0 01 00       	call   0x41f4ea
40548a:	8b f0                	mov    %eax,%esi
40548c:	59                   	pop    %ecx
40548d:	85 f6                	test   %esi,%esi
40548f:	74 41                	je     0x4054d2
405491:	8b ce                	mov    %esi,%ecx
405493:	e8 5f 83 00 00       	call   0x40d7f7
405498:	ff 75 08             	push   0x8(%ebp)
40549b:	8b ce                	mov    %esi,%ecx
40549d:	e8 1a ff ff ff       	call   0x4053bc
4054a2:	8b ce                	mov    %esi,%ecx
4054a4:	e8 51 69 00 00       	call   0x40bdfa
4054a9:	ff 76 04             	push   0x4(%esi)