4050f8:	85 f6                	test   %esi,%esi
4050fa:	0f 95 c0             	setne  %al
4050fd:	5e                   	pop    %esi
4050fe:	5d                   	pop    %ebp
4050ff:	c2 08 00             	ret    $0x8
405102:	e8 5b ff ff ff       	call   0x405062
405107:	cc                   	int3
405108:	8b ff                	mov    %edi,%edi
40510a:	55                   	push   %ebp
40510b:	8b ec                	mov    %esp,%ebp
40510d:	8b 45 0c             	mov    0xc(%ebp),%eax
405110:	53                   	push   %ebx
405111:	8b 5d 08             	mov    0x8(%ebp),%ebx
405114:	56                   	push   %esi
405115:	57                   	push   %edi
405116:	8b f1                	mov    %ecx,%esi
405118:	8b 7b 10             	mov    0x10(%ebx),%edi
40511b:	3b f8                	cmp    %eax,%edi
40511d:	72 79                	jb     0x405198
40511f:	2b f8                	sub    %eax,%edi
405121:	39 7d 10             	cmp    %edi,0x10(%ebp)
405124:	73 03                	jae    0x405129
405126:	8b 7d 10             	mov    0x10(%ebp),%edi
405129:	3b f3                	cmp    %ebx,%esi
40512b:	75 17                	jne    0x405144
40512d:	03 c7                	add    %edi,%eax
40512f:	50                   	push   %eax
405130:	e8 d7 01 00 00       	call   0x40530c
405135:	8b 45 0c             	mov    0xc(%ebp),%eax
405138:	8b ce                	mov    %esi,%ecx
40513a:	50                   	push   %eax
40513b:	6a 00                	push   $0x0
40513d:	e8 41 01 00 00       	call   0x405283
405142:	eb 4b                	jmp    0x40518f
405144:	6a 00                	push   $0x0
405146:	57                   	push   %edi
405147:	e8 5e ff ff ff       	call   0x4050aa
40514c:	84 c0                	test   %al,%al
40514e:	74 3f                	je     0x40518f
405150:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
405154:	72 02                	jb     0x405158
405156:	8b 1b                	mov    (%ebx),%ebx
405158:	8b 46 14             	mov    0x14(%esi),%eax
40515b:	83 f8 10             	cmp    $0x10,%eax
40515e:	72 04                	jb     0x405164
405160:	8b 0e                	mov    (%esi),%ecx
405162:	eb 02                	jmp    0x405166
405164:	8b ce                	mov    %esi,%ecx
405166:	85 ff                	test   %edi,%edi
405168:	74 13                	je     0x40517d
40516a:	8b 45 0c             	mov    0xc(%ebp),%eax
40516d:	57                   	push   %edi
40516e:	03 c3                	add    %ebx,%eax
405170:	50                   	push   %eax
405171:	51                   	push   %ecx
405172:	e8 af 95 00 00       	call   0x40e726
405177:	8b 46 14             	mov    0x14(%esi),%eax
40517a:	83 c4 0c             	add    $0xc,%esp
40517d:	89 7e 10             	mov    %edi,0x10(%esi)
405180:	83 f8 10             	cmp    $0x10,%eax
405183:	72 04                	jb     0x405189
405185:	8b 06                	mov    (%esi),%eax
405187:	eb 02                	jmp    0x40518b
405189:	8b c6                	mov    %esi,%eax
40518b:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
40518f:	5f                   	pop    %edi
405190:	8b c6                	mov    %esi,%eax
405192:	5e                   	pop    %esi
405193:	5b                   	pop    %ebx
405194:	5d                   	pop    %ebp
405195:	c2 0c 00             	ret    $0xc
405198:	e8 3b fe ff ff       	call   0x404fd8
40519d:	cc                   	int3
40519e:	6a 14                	push   $0x14
4051a0:	b8 55 ec 40 00       	mov    $0x40ec55,%eax
4051a5:	e8 0d 95 00 00       	call   0x40e6b7
4051aa:	8b f9                	mov    %ecx,%edi
4051ac:	89 7d e8             	mov    %edi,-0x18(%ebp)
4051af:	8b 75 08             	mov    0x8(%ebp),%esi
4051b2:	83 ce 0f             	or     $0xf,%esi
4051b5:	83 fe fe             	cmp    $0xfffffffe,%esi
4051b8:	76 05                	jbe    0x4051bf
4051ba:	8b 75 08             	mov    0x8(%ebp),%esi
4051bd:	eb 2a                	jmp    0x4051e9
4051bf:	33 d2                	xor    %edx,%edx
4051c1:	c7 45 e4 03 00 00 00 	movl   $0x3,-0x1c(%ebp)
4051c8:	8b c6                	mov    %esi,%eax
4051ca:	8b 5f 14             	mov    0x14(%edi),%ebx
4051cd:	f7 75 e4             	divl   -0x1c(%ebp)
4051d0:	8b cb                	mov    %ebx,%ecx
4051d2:	d1 e9                	shr    $1,%ecx
4051d4:	3b c8                	cmp    %eax,%ecx
4051d6:	76 11                	jbe    0x4051e9
4051d8:	6a fe                	push   $0xfffffffe
4051da:	58                   	pop    %eax
4051db:	2b c1                	sub    %ecx,%eax
4051dd:	3b d8                	cmp    %eax,%ebx
4051df:	77 05                	ja     0x4051e6
4051e1:	8d 34 19             	lea    (%ecx,%ebx,1),%esi
4051e4:	eb 03                	jmp    0x4051e9
4051e6:	6a fe                	push   $0xfffffffe
4051e8:	5e                   	pop    %esi
4051e9:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4051ed:	8d 46 01             	lea    0x1(%esi),%eax
4051f0:	50                   	push   %eax
4051f1:	8d 4d ef             	lea    -0x11(%ebp),%ecx
4051f4:	e8 3f 01 00 00       	call   0x405338
4051f9:	8b d8                	mov    %eax,%ebx
4051fb:	eb 29                	jmp    0x405226
4051fd:	8b 45 08             	mov    0x8(%ebp),%eax
405200:	8d 4d ef             	lea    -0x11(%ebp),%ecx
405203:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405206:	40                   	inc    %eax
405207:	89 65 f0             	mov    %esp,-0x10(%ebp)
40520a:	50                   	push   %eax
40520b:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40520f:	e8 24 01 00 00       	call   0x405338
405214:	89 45 e0             	mov    %eax,-0x20(%ebp)
405217:	b8 1d 52 40 00       	mov    $0x40521d,%eax
40521c:	c3                   	ret
40521d:	8b 7d e8             	mov    -0x18(%ebp),%edi
405220:	8b 75 e4             	mov    -0x1c(%ebp),%esi
405223:	8b 5d e0             	mov    -0x20(%ebp),%ebx
405226:	8b 45 0c             	mov    0xc(%ebp),%eax
405229:	85 c0                	test   %eax,%eax
40522b:	74 17                	je     0x405244
40522d:	83 7f 14 10          	cmpl   $0x10,0x14(%edi)
405231:	72 04                	jb     0x405237
405233:	8b 0f                	mov    (%edi),%ecx
405235:	eb 02                	jmp    0x405239
405237:	8b cf                	mov    %edi,%ecx
405239:	50                   	push   %eax
40523a:	51                   	push   %ecx
40523b:	53                   	push   %ebx
40523c:	e8 e5 94 00 00       	call   0x40e726
405241:	83 c4 0c             	add    $0xc,%esp
405244:	6a 00                	push   $0x0
405246:	6a 01                	push   $0x1
405248:	8b cf                	mov    %edi,%ecx
40524a:	e8 42 fd ff ff       	call   0x404f91
40524f:	8b 45 0c             	mov    0xc(%ebp),%eax
405252:	89 1f                	mov    %ebx,(%edi)
405254:	89 77 14             	mov    %esi,0x14(%edi)
405257:	89 47 10             	mov    %eax,0x10(%edi)
40525a:	83 fe 10             	cmp    $0x10,%esi
40525d:	73 02                	jae    0x405261
40525f:	8b df                	mov    %edi,%ebx
405261:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
405265:	e8 b2 93 00 00       	call   0x40e61c
40526a:	c2 08 00             	ret    $0x8
40526d:	8b 4d e8             	mov    -0x18(%ebp),%ecx
405270:	6a 00                	push   $0x0
405272:	6a 01                	push   $0x1
405274:	e8 18 fd ff ff       	call   0x404f91
405279:	6a 00                	push   $0x0
40527b:	6a 00                	push   $0x0
40527d:	e8 94 93 00 00       	call   0x40e616
405282:	cc                   	int3
405283:	8b ff                	mov    %edi,%edi
405285:	55                   	push   %ebp
405286:	8b ec                	mov    %esp,%ebp
405288:	51                   	push   %ecx
405289:	56                   	push   %esi
40528a:	8b f1                	mov    %ecx,%esi
40528c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40528f:	57                   	push   %edi
405290:	8b 7e 10             	mov    0x10(%esi),%edi
405293:	3b f9                	cmp    %ecx,%edi
405295:	72 6d                	jb     0x405304
405297:	8b 55 0c             	mov    0xc(%ebp),%edx
40529a:	8b c7                	mov    %edi,%eax
40529c:	2b c1                	sub    %ecx,%eax
40529e:	3b c2                	cmp    %edx,%eax
4052a0:	77 15                	ja     0x4052b7
4052a2:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
4052a6:	89 4e 10             	mov    %ecx,0x10(%esi)
4052a9:	72 04                	jb     0x4052af
4052ab:	8b 06                	mov    (%esi),%eax
4052ad:	eb 02                	jmp    0x4052b1
4052af:	8b c6                	mov    %esi,%eax
4052b1:	c6 04 08 00          	movb   $0x0,(%eax,%ecx,1)
4052b5:	eb 45                	jmp    0x4052fc
4052b7:	85 d2                	test   %edx,%edx
4052b9:	74 41                	je     0x4052fc
4052bb:	8b 46 14             	mov    0x14(%esi),%eax
4052be:	53                   	push   %ebx
4052bf:	83 f8 10             	cmp    $0x10,%eax
4052c2:	72 04                	jb     0x4052c8
4052c4:	8b 1e                	mov    (%esi),%ebx
4052c6:	eb 02                	jmp    0x4052ca
4052c8:	8b de                	mov    %esi,%ebx
4052ca:	2b fa                	sub    %edx,%edi
4052cc:	03 d9                	add    %ecx,%ebx
4052ce:	89 7d fc             	mov    %edi,-0x4(%ebp)
4052d1:	29 4d fc             	sub    %ecx,-0x4(%ebp)
4052d4:	74 13                	je     0x4052e9
4052d6:	ff 75 fc             	push   -0x4(%ebp)
4052d9:	8d 04 13             	lea    (%ebx,%edx,1),%eax
4052dc:	50                   	push   %eax
4052dd:	53                   	push   %ebx
4052de:	e8 49 94 00 00       	call   0x40e72c
4052e3:	8b 46 14             	mov    0x14(%esi),%eax
4052e6:	83 c4 0c             	add    $0xc,%esp
4052e9:	89 7e 10             	mov    %edi,0x10(%esi)
4052ec:	5b                   	pop    %ebx
4052ed:	83 f8 10             	cmp    $0x10,%eax
4052f0:	72 04                	jb     0x4052f6
4052f2:	8b 06                	mov    (%esi),%eax
4052f4:	eb 02                	jmp    0x4052f8
4052f6:	8b c6                	mov    %esi,%eax
4052f8:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
4052fc:	5f                   	pop    %edi
4052fd:	8b c6                	mov    %esi,%eax
4052ff:	5e                   	pop    %esi
405300:	c9                   	leave
405301:	c2 08 00             	ret    $0x8
405304:	8b ce                	mov    %esi,%ecx
405306:	e8 cd fc ff ff       	call   0x404fd8
40530b:	cc                   	int3
40530c:	8b ff                	mov    %edi,%edi
40530e:	55                   	push   %ebp
40530f:	8b ec                	mov    %esp,%ebp
405311:	8b 45 08             	mov    0x8(%ebp),%eax
405314:	39 41 10             	cmp    %eax,0x10(%ecx)
405317:	72 19                	jb     0x405332
405319:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
40531d:	89 41 10             	mov    %eax,0x10(%ecx)
405320:	72 04                	jb     0x405326
405322:	8b 11                	mov    (%ecx),%edx
405324:	eb 02                	jmp    0x405328
405326:	8b d1                	mov    %ecx,%edx
405328:	c6 04 02 00          	movb   $0x0,(%edx,%eax,1)
40532c:	8b c1                	mov    %ecx,%eax
40532e:	5d                   	pop    %ebp
40532f:	c2 04 00             	ret    $0x4
405332:	e8 a1 fc ff ff       	call   0x404fd8
405337:	cc                   	int3
405338:	8b ff                	mov    %edi,%edi
40533a:	55                   	push   %ebp
40533b:	8b ec                	mov    %esp,%ebp
40533d:	33 c0                	xor    %eax,%eax
40533f:	39 45 08             	cmp    %eax,0x8(%ebp)
405342:	74 0d                	je     0x405351
405344:	ff 75 08             	push   0x8(%ebp)
405347:	e8 7c 8b 00 00       	call   0x40dec8
40534c:	59                   	pop    %ecx
40534d:	85 c0                	test   %eax,%eax
40534f:	74 04                	je     0x405355
405351:	5d                   	pop    %ebp
405352:	c2 04 00             	ret    $0x4
405355:	e8 b7 8c 00 00       	call   0x40e011
40535a:	cc                   	int3
40535b:	8b ff                	mov    %edi,%edi
40535d:	55                   	push   %ebp
40535e:	8b ec                	mov    %esp,%ebp
405360:	8b 45 0c             	mov    0xc(%ebp),%eax
405363:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
405367:	72 02                	jb     0x40536b
405369:	8b 00                	mov    (%eax),%eax
40536b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40536e:	83 79 14 08          	cmpl   $0x8,0x14(%ecx)
405372:	72 02                	jb     0x405376
405374:	8b 09                	mov    (%ecx),%ecx
405376:	50                   	push   %eax
405377:	51                   	push   %ecx
405378:	ff 15 00 21 41 00    	call   *0x412100
40537e:	85 c0                	test   %eax,%eax
405380:	0f 9f c0             	setg   %al
405383:	5d                   	pop    %ebp
405384:	c2 08 00             	ret    $0x8
405387:	8b ff                	mov    %edi,%edi
405389:	55                   	push   %ebp
40538a:	8b ec                	mov    %esp,%ebp
40538c:	83 ec 28             	sub    $0x28,%esp
40538f:	a1 54 13 41 00       	mov    0x411354,%eax
405394:	33 c5                	xor    %ebp,%eax
405396:	89 45 f8             	mov    %eax,-0x8(%ebp)
405399:	8b 45 0c             	mov    0xc(%ebp),%eax
40539c:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
4053a0:	53                   	push   %ebx
4053a1:	8b 5d 08             	mov    0x8(%ebp),%ebx
4053a4:	56                   	push   %esi
4053a5:	57                   	push   %edi
4053a6:	8b f9                	mov    %ecx,%edi
4053a8:	c7 45 f4 07 00 00 00 	movl   $0x7,-0xc(%ebp)
4053af:	8b 4d 10             	mov    0x10(%ebp),%ecx
4053b2:	89 4d dc             	mov    %ecx,-0x24(%ebp)
4053b5:	33 c9                	xor    %ecx,%ecx
4053b7:	66 89 4d e0          	mov    %cx,-0x20(%ebp)
4053bb:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4053be:	50                   	push   %eax
4053bf:	e8 dd 10 00 00       	call   0x4064a1
4053c4:	8d 45 e0             	lea    -0x20(%ebp),%eax
4053c7:	50                   	push   %eax
4053c8:	8d 45 d8             	lea    -0x28(%ebp),%eax
4053cb:	50                   	push   %eax
4053cc:	8d 4f 08             	lea    0x8(%edi),%ecx
4053cf:	e8 62 0b 00 00       	call   0x405f36
4053d4:	8b 75 d8             	mov    -0x28(%ebp),%esi
4053d7:	3b 77 08             	cmp    0x8(%edi),%esi
4053da:	74 11                	je     0x4053ed
4053dc:	8d 46 10             	lea    0x10(%esi),%eax
4053df:	50                   	push   %eax
4053e0:	8d 45 e0             	lea    -0x20(%ebp),%eax
4053e3:	50                   	push   %eax
4053e4:	e8 72 ff ff ff       	call   0x40535b
4053e9:	84 c0                	test   %al,%al
4053eb:	74 03                	je     0x4053f0
4053ed:	8b 77 08             	mov    0x8(%edi),%esi
4053f0:	6a 00                	push   $0x0
4053f2:	6a 01                	push   $0x1
4053f4:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4053f7:	e8 f4 10 00 00       	call   0x4064f0
4053fc:	3b 77 08             	cmp    0x8(%edi),%esi
4053ff:	75 5d                	jne    0x40545e
405401:	8b 45 dc             	mov    -0x24(%ebp),%eax
405404:	85 c0                	test   %eax,%eax
405406:	74 56                	je     0x40545e
405408:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40540c:	33 c9                	xor    %ecx,%ecx
40540e:	66 89 4d e0          	mov    %cx,-0x20(%ebp)
405412:	8d 4d e0             	lea    -0x20(%ebp),%ecx
405415:	50                   	push   %eax
405416:	c7 45 f4 07 00 00 00 	movl   $0x7,-0xc(%ebp)
40541d:	e8 7f 10 00 00       	call   0x4064a1
405422:	8d 45 e0             	lea    -0x20(%ebp),%eax
405425:	50                   	push   %eax
405426:	8d 45 dc             	lea    -0x24(%ebp),%eax
405429:	50                   	push   %eax
40542a:	8d 4f 08             	lea    0x8(%edi),%ecx
40542d:	e8 04 0b 00 00       	call   0x405f36
405432:	8b 75 dc             	mov    -0x24(%ebp),%esi
405435:	3b 77 08             	cmp    0x8(%edi),%esi
405438:	74 11                	je     0x40544b
40543a:	8d 46 10             	lea    0x10(%esi),%eax
40543d:	50                   	push   %eax
40543e:	8d 45 e0             	lea    -0x20(%ebp),%eax
405441:	50                   	push   %eax
405442:	e8 14 ff ff ff       	call   0x40535b
405447:	84 c0                	test   %al,%al
405449:	74 03                	je     0x40544e
40544b:	8b 77 08             	mov    0x8(%edi),%esi
40544e:	6a 00                	push   $0x0
405450:	6a 01                	push   $0x1
405452:	8d 4d e0             	lea    -0x20(%ebp),%ecx
405455:	89 33                	mov    %esi,(%ebx)
405457:	e8 94 10 00 00       	call   0x4064f0
40545c:	eb 02                	jmp    0x405460
40545e:	89 33                	mov    %esi,(%ebx)
405460:	8b 4d f8             	mov    -0x8(%ebp),%ecx