4051ad:	cc                   	int3
4051ae:	cc                   	int3
4051af:	cc                   	int3
4051b0:	8b ff                	mov    %edi,%edi
4051b2:	55                   	push   %ebp
4051b3:	8b ec                	mov    %esp,%ebp
4051b5:	8b 45 10             	mov    0x10(%ebp),%eax
4051b8:	85 c0                	test   %eax,%eax
4051ba:	74 03                	je     0x4051bf
4051bc:	83 20 00             	andl   $0x0,(%eax)
4051bf:	b8 01 40 00 80       	mov    $0x80004001,%eax
4051c4:	5d                   	pop    %ebp
4051c5:	c2 0c 00             	ret    $0xc
4051c8:	cc                   	int3
4051c9:	cc                   	int3
4051ca:	cc                   	int3
4051cb:	cc                   	int3
4051cc:	cc                   	int3
4051cd:	cc                   	int3
4051ce:	cc                   	int3
4051cf:	cc                   	int3
4051d0:	33 c0                	xor    %eax,%eax
4051d2:	40                   	inc    %eax
4051d3:	c2 04 00             	ret    $0x4
4051d6:	cc                   	int3
4051d7:	cc                   	int3
4051d8:	cc                   	int3
4051d9:	cc                   	int3
4051da:	cc                   	int3
4051db:	cc                   	int3
4051dc:	cc                   	int3
4051dd:	cc                   	int3
4051de:	cc                   	int3
4051df:	cc                   	int3
4051e0:	33 c0                	xor    %eax,%eax
4051e2:	c2 04 00             	ret    $0x4
4051e5:	8b ff                	mov    %edi,%edi
4051e7:	56                   	push   %esi
4051e8:	8b f1                	mov    %ecx,%esi
4051ea:	56                   	push   %esi
4051eb:	c7 06 5c 16 40 00    	movl   $0x40165c,(%esi)
4051f1:	e8 9a 02 00 00       	call   0x405490
4051f6:	8d 46 10             	lea    0x10(%esi),%eax
4051f9:	80 78 18 00          	cmpb   $0x0,0x18(%eax)
4051fd:	74 0b                	je     0x40520a
4051ff:	50                   	push   %eax
405200:	c6 40 18 00          	movb   $0x0,0x18(%eax)
405204:	ff 15 c8 60 41 00    	call   *0x4160c8
40520a:	8d 4e 04             	lea    0x4(%esi),%ecx
40520d:	e8 89 fe ff ff       	call   0x40509b
405212:	8d 4e 04             	lea    0x4(%esi),%ecx
405215:	5e                   	pop    %esi
405216:	e9 05 25 00 00       	jmp    0x407720
40521b:	cc                   	int3
40521c:	cc                   	int3
40521d:	cc                   	int3
40521e:	cc                   	int3
40521f:	cc                   	int3
405220:	8b ff                	mov    %edi,%edi
405222:	55                   	push   %ebp
405223:	8b ec                	mov    %esp,%ebp
405225:	56                   	push   %esi
405226:	8b f1                	mov    %ecx,%esi
405228:	e8 b8 ff ff ff       	call   0x4051e5
40522d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
405231:	74 08                	je     0x40523b
405233:	56                   	push   %esi
405234:	ff 15 d0 62 41 00    	call   *0x4162d0
40523a:	59                   	pop    %ecx
40523b:	8b c6                	mov    %esi,%eax
40523d:	5e                   	pop    %esi
40523e:	5d                   	pop    %ebp
40523f:	c2 04 00             	ret    $0x4
405242:	cc                   	int3
405243:	cc                   	int3
405244:	cc                   	int3
405245:	cc                   	int3
405246:	cc                   	int3
405247:	cc                   	int3
405248:	cc                   	int3
405249:	cc                   	int3
40524a:	cc                   	int3
40524b:	cc                   	int3
40524c:	cc                   	int3
40524d:	cc                   	int3
40524e:	cc                   	int3
40524f:	cc                   	int3
405250:	6a 04                	push   $0x4
405252:	b8 2a 2b 41 00       	mov    $0x412b2a,%eax
405257:	e8 02 d3 00 00       	call   0x41255e
40525c:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
405260:	74 4c                	je     0x4052ae
405262:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
405266:	74 46                	je     0x4052ae
405268:	8b 75 08             	mov    0x8(%ebp),%esi
40526b:	8d 7e 10             	lea    0x10(%esi),%edi
40526e:	57                   	push   %edi
40526f:	ff 15 64 61 41 00    	call   *0x416164
405275:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
405279:	ff 75 10             	push   0x10(%ebp)
40527c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405280:	8d 4e 04             	lea    0x4(%esi),%ecx
405283:	ff 75 0c             	push   0xc(%ebp)
405286:	e8 aa fc ff ff       	call   0x404f35
40528b:	57                   	push   %edi
40528c:	8b f0                	mov    %eax,%esi
40528e:	ff 15 5c 61 41 00    	call   *0x41615c
405294:	8d 4d f0             	lea    -0x10(%ebp),%ecx
405297:	e8 21 25 00 00       	call   0x4077bd
40529c:	f7 de                	neg    %esi
40529e:	1b f6                	sbb    %esi,%esi
4052a0:	81 e6 f2 ff f8 7f    	and    $0x7ff8fff2,%esi
4052a6:	8d 86 0e 00 07 80    	lea    -0x7ff8fff2(%esi),%eax
4052ac:	eb 05                	jmp    0x4052b3
4052ae:	b8 57 00 07 80       	mov    $0x80070057,%eax
4052b3:	e8 74 d2 00 00       	call   0x41252c
4052b8:	c2 0c 00             	ret    $0xc
4052bb:	68 2c 04 00 00       	push   $0x42c
4052c0:	b8 5b 2b 41 00       	mov    $0x412b5b,%eax
4052c5:	e8 33 d3 00 00       	call   0x4125fd
4052ca:	8b 55 10             	mov    0x10(%ebp),%edx
4052cd:	33 f6                	xor    %esi,%esi
4052cf:	8b 45 08             	mov    0x8(%ebp),%eax
4052d2:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4052d5:	89 95 dc fb ff ff    	mov    %edx,-0x424(%ebp)
4052db:	89 b5 d8 fb ff ff    	mov    %esi,-0x428(%ebp)
4052e1:	89 75 fc             	mov    %esi,-0x4(%ebp)
4052e4:	89 8d cc fb ff ff    	mov    %ecx,-0x434(%ebp)
4052ea:	89 b5 c8 fb ff ff    	mov    %esi,-0x438(%ebp)
4052f0:	89 b5 e0 fb ff ff    	mov    %esi,-0x420(%ebp)
4052f6:	6a 02                	push   $0x2
4052f8:	59                   	pop    %ecx
4052f9:	51                   	push   %ecx
4052fa:	56                   	push   %esi
4052fb:	50                   	push   %eax
4052fc:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
405300:	ff 15 d8 60 41 00    	call   *0x4160d8
405306:	8b f8                	mov    %eax,%edi
405308:	89 bd d4 fb ff ff    	mov    %edi,-0x42c(%ebp)
40530e:	85 ff                	test   %edi,%edi
405310:	75 0c                	jne    0x40531e
405312:	e8 79 f9 ff ff       	call   0x404c90
405317:	8b f0                	mov    %eax,%esi
405319:	e9 32 01 00 00       	jmp    0x405450
40531e:	56                   	push   %esi
40531f:	53                   	push   %ebx
405320:	ff b5 dc fb ff ff    	push   -0x424(%ebp)
405326:	57                   	push   %edi
405327:	ff 15 bc 60 41 00    	call   *0x4160bc
40532d:	8b d8                	mov    %eax,%ebx
40532f:	85 db                	test   %ebx,%ebx
405331:	75 0a                	jne    0x40533d
405333:	e8 58 f9 ff ff       	call   0x404c90
405338:	e9 0a 01 00 00       	jmp    0x405447
40533d:	53                   	push   %ebx
40533e:	57                   	push   %edi
40533f:	ff 15 c0 60 41 00    	call   *0x4160c0
405345:	89 85 d0 fb ff ff    	mov    %eax,-0x430(%ebp)
40534b:	85 c0                	test   %eax,%eax
40534d:	74 e4                	je     0x405333
40534f:	53                   	push   %ebx
405350:	57                   	push   %edi
405351:	ff 15 6c 61 41 00    	call   *0x41616c
405357:	8b d8                	mov    %eax,%ebx
405359:	89 9d dc fb ff ff    	mov    %ebx,-0x424(%ebp)
40535f:	8d 43 01             	lea    0x1(%ebx),%eax
405362:	3b c3                	cmp    %ebx,%eax
405364:	73 2e                	jae    0x405394
405366:	8d 85 e4 fb ff ff    	lea    -0x41c(%ebp),%eax
40536c:	39 85 e0 fb ff ff    	cmp    %eax,-0x420(%ebp)
405372:	74 0b                	je     0x40537f
405374:	8d 8d e0 fb ff ff    	lea    -0x420(%ebp),%ecx
40537a:	e8 b0 2b 00 00       	call   0x407f2f
40537f:	8d 8d d8 fb ff ff    	lea    -0x428(%ebp),%ecx
405385:	e8 33 24 00 00       	call   0x4077bd
40538a:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
40538f:	e9 e2 00 00 00       	jmp    0x405476
405394:	6a 02                	push   $0x2
405396:	59                   	pop    %ecx
405397:	f7 e1                	mul    %ecx
405399:	88 4d fc             	mov    %cl,-0x4(%ebp)
40539c:	3b d6                	cmp    %esi,%edx
40539e:	0f 87 da 00 00 00    	ja     0x40547e
4053a4:	72 09                	jb     0x4053af
4053a6:	83 f8 ff             	cmp    $0xffffffff,%eax
4053a9:	0f 87 cf 00 00 00    	ja     0x40547e
4053af:	3d 00 04 00 00       	cmp    $0x400,%eax
4053b4:	76 14                	jbe    0x4053ca
4053b6:	50                   	push   %eax
4053b7:	8d 8d e0 fb ff ff    	lea    -0x420(%ebp),%ecx
4053bd:	e8 48 36 00 00       	call   0x408a0a
4053c2:	8b 85 e0 fb ff ff    	mov    -0x420(%ebp),%eax
4053c8:	eb 0c                	jmp    0x4053d6
4053ca:	8d 85 e4 fb ff ff    	lea    -0x41c(%ebp),%eax
4053d0:	89 85 e0 fb ff ff    	mov    %eax,-0x420(%ebp)
4053d6:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4053dd:	eb 21                	jmp    0x405400
4053df:	b8 e5 53 40 00       	mov    $0x4053e5,%eax
4053e4:	c3                   	ret
4053e5:	8b bd d4 fb ff ff    	mov    -0x42c(%ebp),%edi
4053eb:	33 f6                	xor    %esi,%esi
4053ed:	8b 9d dc fb ff ff    	mov    -0x424(%ebp),%ebx
4053f3:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4053fa:	8b 85 e0 fb ff ff    	mov    -0x420(%ebp),%eax
405400:	85 c0                	test   %eax,%eax
405402:	75 07                	jne    0x40540b
405404:	be 0e 00 07 80       	mov    $0x8007000e,%esi
405409:	eb 3e                	jmp    0x405449
40540b:	53                   	push   %ebx
40540c:	50                   	push   %eax
40540d:	53                   	push   %ebx
40540e:	ff b5 d0 fb ff ff    	push   -0x430(%ebp)
405414:	56                   	push   %esi
405415:	6a 03                	push   $0x3
405417:	ff 15 c4 60 41 00    	call   *0x4160c4
40541d:	8b c8                	mov    %eax,%ecx
40541f:	85 c9                	test   %ecx,%ecx
405421:	0f 84 0c ff ff ff    	je     0x405333
405427:	8b 85 e0 fb ff ff    	mov    -0x420(%ebp),%eax
40542d:	33 d2                	xor    %edx,%edx
40542f:	ff 75 14             	push   0x14(%ebp)
405432:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
405436:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
40543c:	ff b5 e0 fb ff ff    	push   -0x420(%ebp)
405442:	e8 cc 09 00 00       	call   0x405e13
405447:	8b f0                	mov    %eax,%esi
405449:	57                   	push   %edi
40544a:	ff 15 d0 60 41 00    	call   *0x4160d0
405450:	8d 85 e4 fb ff ff    	lea    -0x41c(%ebp),%eax
405456:	39 85 e0 fb ff ff    	cmp    %eax,-0x420(%ebp)
40545c:	74 0b                	je     0x405469
40545e:	8d 8d e0 fb ff ff    	lea    -0x420(%ebp),%ecx
405464:	e8 c6 2a 00 00       	call   0x407f2f
405469:	8d 8d d8 fb ff ff    	lea    -0x428(%ebp),%ecx
40546f:	e8 49 23 00 00       	call   0x4077bd
405474:	8b c6                	mov    %esi,%eax
405476:	e8 d4 d0 00 00       	call   0x41254f
40547b:	c2 10 00             	ret    $0x10
40547e:	b9 57 00 07 80       	mov    $0x80070057,%ecx
405483:	e8 67 f7 ff ff       	call   0x404bef
405488:	cc                   	int3
405489:	cc                   	int3
40548a:	cc                   	int3
40548b:	cc                   	int3
40548c:	cc                   	int3
40548d:	cc                   	int3
40548e:	cc                   	int3
40548f:	cc                   	int3
405490:	8b ff                	mov    %edi,%edi
405492:	55                   	push   %ebp
405493:	8b ec                	mov    %esp,%ebp
405495:	56                   	push   %esi
405496:	8b 75 08             	mov    0x8(%ebp),%esi
405499:	57                   	push   %edi
40549a:	8d 7e 10             	lea    0x10(%esi),%edi
40549d:	57                   	push   %edi
40549e:	ff 15 64 61 41 00    	call   *0x416164
4054a4:	8d 4e 04             	lea    0x4(%esi),%ecx
4054a7:	e8 ef fb ff ff       	call   0x40509b
4054ac:	57                   	push   %edi
4054ad:	8b f0                	mov    %eax,%esi
4054af:	ff 15 5c 61 41 00    	call   *0x41615c
4054b5:	5f                   	pop    %edi
4054b6:	8b c6                	mov    %esi,%eax
4054b8:	5e                   	pop    %esi
4054b9:	5d                   	pop    %ebp
4054ba:	c2 04 00             	ret    $0x4
4054bd:	8b ff                	mov    %edi,%edi
4054bf:	55                   	push   %ebp
4054c0:	8b ec                	mov    %esp,%ebp
4054c2:	51                   	push   %ecx
4054c3:	53                   	push   %ebx
4054c4:	56                   	push   %esi
4054c5:	57                   	push   %edi
4054c6:	8b f9                	mov    %ecx,%edi
4054c8:	8d 47 10             	lea    0x10(%edi),%eax
4054cb:	50                   	push   %eax
4054cc:	89 45 fc             	mov    %eax,-0x4(%ebp)
4054cf:	ff 15 64 61 41 00    	call   *0x416164
4054d5:	33 db                	xor    %ebx,%ebx
4054d7:	8b f3                	mov    %ebx,%esi
4054d9:	39 5f 0c             	cmp    %ebx,0xc(%edi)
4054dc:	7e 19                	jle    0x4054f7
4054de:	8b 47 04             	mov    0x4(%edi),%eax
4054e1:	ff 75 08             	push   0x8(%ebp)
4054e4:	ff 34 b0             	push   (%eax,%esi,4)
4054e7:	ff 15 d4 60 41 00    	call   *0x4160d4
4054ed:	85 c0                	test   %eax,%eax
4054ef:	74 09                	je     0x4054fa
4054f1:	46                   	inc    %esi
4054f2:	3b 77 0c             	cmp    0xc(%edi),%esi
4054f5:	7c e7                	jl     0x4054de
4054f7:	83 ce ff             	or     $0xffffffff,%esi
4054fa:	83 fe ff             	cmp    $0xffffffff,%esi
4054fd:	74 0f                	je     0x40550e
4054ff:	85 f6                	test   %esi,%esi
405501:	78 1d                	js     0x405520
405503:	3b 77 0c             	cmp    0xc(%edi),%esi
405506:	7d 18                	jge    0x405520
405508:	8b 47 08             	mov    0x8(%edi),%eax
40550b:	8b 1c b0             	mov    (%eax,%esi,4),%ebx
40550e:	ff 75 fc             	push   -0x4(%ebp)
405511:	ff 15 5c 61 41 00    	call   *0x41615c
405517:	5f                   	pop    %edi
405518:	5e                   	pop    %esi
405519:	8b c3                	mov    %ebx,%eax
40551b:	5b                   	pop    %ebx
40551c:	c9                   	leave
40551d:	c2 04 00             	ret    $0x4
405520:	b9 8c 00 00 c0       	mov    $0xc000008c,%ecx
405525:	e8 a7 f6 ff ff       	call   0x404bd1
40552a:	cc                   	int3
40552b:	8b ff                	mov    %edi,%edi
40552d:	56                   	push   %esi
40552e:	33 f6                	xor    %esi,%esi
405530:	57                   	push   %edi
405531:	66 8b fa             	mov    %dx,%di
405534:	85 c9                	test   %ecx,%ecx
405536:	75 04                	jne    0x40553c
405538:	33 c0                	xor    %eax,%eax
40553a:	eb 28                	jmp    0x405564
40553c:	0f b7 01             	movzwl (%ecx),%eax
40553f:	66 85 c0             	test   %ax,%ax
405542:	74 1e                	je     0x405562
405544:	8b d0                	mov    %eax,%edx
405546:	66 3b d7             	cmp    %di,%dx
405549:	74 15                	je     0x405560
40554b:	51                   	push   %ecx
40554c:	ff 15 f0 61 41 00    	call   *0x4161f0
405552:	8b c8                	mov    %eax,%ecx
405554:	0f b7 01             	movzwl (%ecx),%eax
405557:	8b d0                	mov    %eax,%edx
405559:	66 85 c0             	test   %ax,%ax
40555c:	75 e8                	jne    0x405546
40555e:	eb 02                	jmp    0x405562
405560:	8b f1                	mov    %ecx,%esi
405562:	8b c6                	mov    %esi,%eax
405564:	5f                   	pop    %edi
405565:	5e                   	pop    %esi
405566:	c3                   	ret
405567:	8b ff                	mov    %edi,%edi
405569:	56                   	push   %esi
40556a:	8b f1                	mov    %ecx,%esi
40556c:	8b 16                	mov    (%esi),%edx
40556e:	0f b7 0a             	movzwl (%edx),%ecx
405571:	8b c1                	mov    %ecx,%eax
405573:	83 f8 09             	cmp    $0x9,%eax
405576:	72 1a                	jb     0x405592
405578:	83 f8 0a             	cmp    $0xa,%eax
40557b:	76 0a                	jbe    0x405587