404105:	76 0b                	jbe    0x404112
404107:	8b 45 10             	mov    0x10(%ebp),%eax
40410a:	3b f0                	cmp    %eax,%esi
40410c:	76 04                	jbe    0x404112
40410e:	2b f0                	sub    %eax,%esi
404110:	eb 02                	jmp    0x404114
404112:	8b f3                	mov    %ebx,%esi
404114:	57                   	push   %edi
404115:	8d 4d dc             	lea    -0x24(%ebp),%ecx
404118:	e8 cc 8f 00 00       	call   0x40d0e9
40411d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
404120:	80 7d e0 00          	cmpb   $0x0,-0x20(%ebp)
404124:	75 08                	jne    0x40412e
404126:	6a 04                	push   $0x4
404128:	5a                   	pop    %edx
404129:	e9 f4 00 00 00       	jmp    0x404222
40412e:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404132:	8b 0f                	mov    (%edi),%ecx
404134:	8b 41 04             	mov    0x4(%ecx),%eax
404137:	8b 44 38 14          	mov    0x14(%eax,%edi,1),%eax
40413b:	25 c0 01 00 00       	and    $0x1c0,%eax
404140:	83 f8 40             	cmp    $0x40,%eax
404143:	74 38                	je     0x40417d
404145:	85 f6                	test   %esi,%esi
404147:	74 32                	je     0x40417b
404149:	8b 07                	mov    (%edi),%eax
40414b:	8b 40 04             	mov    0x4(%eax),%eax
40414e:	8b 4c 38 38          	mov    0x38(%eax,%edi,1),%ecx
404152:	0f b7 44 38 40       	movzwl 0x40(%eax,%edi,1),%eax
404157:	50                   	push   %eax
404158:	e8 7c eb 01 00       	call   0x422cd9
40415d:	0f b7 c0             	movzwl %ax,%eax
404160:	b9 ff ff 00 00       	mov    $0xffff,%ecx
404165:	66 3b c8             	cmp    %ax,%cx
404168:	75 0b                	jne    0x404175
40416a:	6a 04                	push   $0x4
40416c:	58                   	pop    %eax
40416d:	89 45 e8             	mov    %eax,-0x18(%ebp)
404170:	89 45 ec             	mov    %eax,-0x14(%ebp)
404173:	eb 26                	jmp    0x40419b
404175:	4e                   	dec    %esi
404176:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404179:	eb ca                	jmp    0x404145
40417b:	8b 0f                	mov    (%edi),%ecx
40417d:	8b 41 04             	mov    0x4(%ecx),%eax
404180:	8b 4c 38 38          	mov    0x38(%eax,%edi,1),%ecx
404184:	8b 01                	mov    (%ecx),%eax
404186:	8b 40 24             	mov    0x24(%eax),%eax
404189:	53                   	push   %ebx
40418a:	ff 75 10             	push   0x10(%ebp)
40418d:	ff 75 0c             	push   0xc(%ebp)
404190:	ff d0                	call   *%eax
404192:	3b 45 10             	cmp    0x10(%ebp),%eax
404195:	75 3a                	jne    0x4041d1
404197:	3b d3                	cmp    %ebx,%edx
404199:	75 36                	jne    0x4041d1
40419b:	85 f6                	test   %esi,%esi
40419d:	74 37                	je     0x4041d6
40419f:	8b 07                	mov    (%edi),%eax
4041a1:	8b 40 04             	mov    0x4(%eax),%eax
4041a4:	8b 4c 38 38          	mov    0x38(%eax,%edi,1),%ecx
4041a8:	0f b7 44 38 40       	movzwl 0x40(%eax,%edi,1),%eax
4041ad:	50                   	push   %eax
4041ae:	e8 26 eb 01 00       	call   0x422cd9
4041b3:	0f b7 c0             	movzwl %ax,%eax
4041b6:	b9 ff ff 00 00       	mov    $0xffff,%ecx
4041bb:	66 3b c8             	cmp    %ax,%cx
4041be:	75 0b                	jne    0x4041cb
4041c0:	8b 55 e8             	mov    -0x18(%ebp),%edx
4041c3:	83 ca 04             	or     $0x4,%edx
4041c6:	89 55 ec             	mov    %edx,-0x14(%ebp)
4041c9:	eb 0e                	jmp    0x4041d9
4041cb:	4e                   	dec    %esi
4041cc:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4041cf:	eb ca                	jmp    0x40419b
4041d1:	6a 04                	push   $0x4
4041d3:	5a                   	pop    %edx
4041d4:	eb f0                	jmp    0x4041c6
4041d6:	8b 55 e8             	mov    -0x18(%ebp),%edx
4041d9:	8b 07                	mov    (%edi),%eax
4041db:	8b 40 04             	mov    0x4(%eax),%eax
4041de:	89 5c 38 20          	mov    %ebx,0x20(%eax,%edi,1)
4041e2:	89 5c 38 24          	mov    %ebx,0x24(%eax,%edi,1)
4041e6:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4041e9:	eb 37                	jmp    0x404222
4041eb:	8b 4d 08             	mov    0x8(%ebp),%ecx
4041ee:	8b 01                	mov    (%ecx),%eax
4041f0:	8b 70 04             	mov    0x4(%eax),%esi
4041f3:	03 f1                	add    %ecx,%esi
4041f5:	8b 56 0c             	mov    0xc(%esi),%edx
4041f8:	83 ca 04             	or     $0x4,%edx
4041fb:	6a 01                	push   $0x1
4041fd:	8b c2                	mov    %edx,%eax
4041ff:	83 c8 04             	or     $0x4,%eax
404202:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
404206:	0f 44 d0             	cmove  %eax,%edx
404209:	52                   	push   %edx
40420a:	8b ce                	mov    %esi,%ecx
40420c:	e8 38 b7 01 00       	call   0x41f949
404211:	b8 17 42 40 00       	mov    $0x404217,%eax
404216:	c3                   	ret
404217:	33 db                	xor    %ebx,%ebx
404219:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40421c:	8b 7d 08             	mov    0x8(%ebp),%edi
40421f:	8b 55 ec             	mov    -0x14(%ebp),%edx
404222:	8b 07                	mov    (%edi),%eax
404224:	8b 48 04             	mov    0x4(%eax),%ecx
404227:	03 cf                	add    %edi,%ecx
404229:	8b 71 0c             	mov    0xc(%ecx),%esi
40422c:	0b f2                	or     %edx,%esi
40422e:	53                   	push   %ebx
40422f:	8b d6                	mov    %esi,%edx
404231:	83 ca 04             	or     $0x4,%edx
404234:	39 59 38             	cmp    %ebx,0x38(%ecx)
404237:	0f 44 f2             	cmove  %edx,%esi
40423a:	56                   	push   %esi
40423b:	e8 09 b7 01 00       	call   0x41f949
404240:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404244:	8d 4d dc             	lea    -0x24(%ebp),%ecx
404247:	e8 0e b3 00 00       	call   0x40f55a
40424c:	8b c7                	mov    %edi,%eax
40424e:	e8 c0 b7 03 00       	call   0x43fa13
404253:	c3                   	ret
404254:	6a 3c                	push   $0x3c
404256:	b8 ae a1 48 00       	mov    $0x48a1ae,%eax
40425b:	e8 1e b8 03 00       	call   0x43fa7e
404260:	8b 75 08             	mov    0x8(%ebp),%esi
404263:	8b 45 0c             	mov    0xc(%ebp),%eax
404266:	89 75 b8             	mov    %esi,-0x48(%ebp)
404269:	83 65 bc 00          	andl   $0x0,-0x44(%ebp)
40426d:	85 c0                	test   %eax,%eax
40426f:	79 19                	jns    0x40428a
404271:	f7 d8                	neg    %eax
404273:	50                   	push   %eax
404274:	8d 45 ee             	lea    -0x12(%ebp),%eax
404277:	50                   	push   %eax
404278:	e8 fb 1f 00 00       	call   0x406278
40427d:	59                   	pop    %ecx
40427e:	59                   	pop    %ecx
40427f:	83 e8 02             	sub    $0x2,%eax
404282:	6a 2d                	push   $0x2d
404284:	59                   	pop    %ecx
404285:	66 89 08             	mov    %cx,(%eax)
404288:	eb 0c                	jmp    0x404296
40428a:	50                   	push   %eax
40428b:	8d 45 ee             	lea    -0x12(%ebp),%eax
40428e:	50                   	push   %eax
40428f:	e8 e4 1f 00 00       	call   0x406278
404294:	59                   	pop    %ecx
404295:	59                   	pop    %ecx
404296:	8d 4d c3             	lea    -0x3d(%ebp),%ecx
404299:	51                   	push   %ecx
40429a:	8d 4d ee             	lea    -0x12(%ebp),%ecx
40429d:	51                   	push   %ecx
40429e:	50                   	push   %eax
40429f:	8b ce                	mov    %esi,%ecx
4042a1:	e8 b8 d3 ff ff       	call   0x40165e
4042a6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4042aa:	c7 45 bc 01 00 00 00 	movl   $0x1,-0x44(%ebp)
4042b1:	8b c6                	mov    %esi,%eax
4042b3:	e8 70 b7 03 00       	call   0x43fa28
4042b8:	c3                   	ret
4042b9:	55                   	push   %ebp
4042ba:	8b ec                	mov    %esp,%ebp
4042bc:	66 8b 45 08          	mov    0x8(%ebp),%ax
4042c0:	66 83 f8 7a          	cmp    $0x7a,%ax
4042c4:	77 10                	ja     0x4042d6
4042c6:	0f b6 c0             	movzbl %al,%eax
4042c9:	80 b8 78 4a 49 00 00 	cmpb   $0x0,0x494a78(%eax)
4042d0:	74 04                	je     0x4042d6
4042d2:	b0 01                	mov    $0x1,%al
4042d4:	5d                   	pop    %ebp
4042d5:	c3                   	ret
4042d6:	32 c0                	xor    %al,%al
4042d8:	5d                   	pop    %ebp
4042d9:	c3                   	ret
4042da:	55                   	push   %ebp
4042db:	8b ec                	mov    %esp,%ebp
4042dd:	8b 4d 10             	mov    0x10(%ebp),%ecx
4042e0:	53                   	push   %ebx
4042e1:	56                   	push   %esi
4042e2:	57                   	push   %edi
4042e3:	eb 38                	jmp    0x40431d
4042e5:	33 d2                	xor    %edx,%edx
4042e7:	39 51 08             	cmp    %edx,0x8(%ecx)
4042ea:	76 2e                	jbe    0x40431a
4042ec:	8b 75 08             	mov    0x8(%ebp),%esi
4042ef:	33 ff                	xor    %edi,%edi
4042f1:	39 39                	cmp    %edi,(%ecx)
4042f3:	76 19                	jbe    0x40430e
4042f5:	8b 41 0c             	mov    0xc(%ecx),%eax
4042f8:	8d 1c 50             	lea    (%eax,%edx,2),%ebx
4042fb:	0f b7 06             	movzwl (%esi),%eax
4042fe:	83 c6 02             	add    $0x2,%esi
404301:	66 3b 03             	cmp    (%ebx),%ax
404304:	75 08                	jne    0x40430e
404306:	47                   	inc    %edi
404307:	83 c3 02             	add    $0x2,%ebx
40430a:	3b 39                	cmp    (%ecx),%edi
40430c:	72 ed                	jb     0x4042fb
40430e:	3b 75 0c             	cmp    0xc(%ebp),%esi
404311:	74 16                	je     0x404329
404313:	03 11                	add    (%ecx),%edx
404315:	3b 51 08             	cmp    0x8(%ecx),%edx
404318:	72 d2                	jb     0x4042ec
40431a:	8b 49 10             	mov    0x10(%ecx),%ecx
40431d:	85 c9                	test   %ecx,%ecx
40431f:	75 c4                	jne    0x4042e5
404321:	8b 45 08             	mov    0x8(%ebp),%eax
404324:	5f                   	pop    %edi
404325:	5e                   	pop    %esi
404326:	5b                   	pop    %ebx
404327:	5d                   	pop    %ebp
404328:	c3                   	ret
404329:	8b 45 0c             	mov    0xc(%ebp),%eax
40432c:	eb f6                	jmp    0x404324
40432e:	55                   	push   %ebp
40432f:	8b ec                	mov    %esp,%ebp
404331:	51                   	push   %ecx
404332:	8b 4d 0c             	mov    0xc(%ebp),%ecx
404335:	53                   	push   %ebx
404336:	56                   	push   %esi
404337:	57                   	push   %edi
404338:	8b 7d 14             	mov    0x14(%ebp),%edi
40433b:	85 ff                	test   %edi,%edi
40433d:	74 47                	je     0x404386
40433f:	8b 55 10             	mov    0x10(%ebp),%edx
404342:	33 db                	xor    %ebx,%ebx
404344:	39 5f 08             	cmp    %ebx,0x8(%edi)
404347:	76 36                	jbe    0x40437f
404349:	83 65 14 00          	andl   $0x0,0x14(%ebp)
40434d:	8b f1                	mov    %ecx,%esi
40434f:	83 3f 00             	cmpl   $0x0,(%edi)
404352:	76 20                	jbe    0x404374
404354:	8b 47 0c             	mov    0xc(%edi),%eax
404357:	8b 55 14             	mov    0x14(%ebp),%edx
40435a:	03 c3                	add    %ebx,%eax
40435c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40435f:	8b c8                	mov    %eax,%ecx
404361:	8a 06                	mov    (%esi),%al
404363:	46                   	inc    %esi
404364:	3a 04 11             	cmp    (%ecx,%edx,1),%al
404367:	75 05                	jne    0x40436e
404369:	42                   	inc    %edx
40436a:	3b 17                	cmp    (%edi),%edx
40436c:	72 f3                	jb     0x404361
40436e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
404371:	8b 55 10             	mov    0x10(%ebp),%edx
404374:	3b f2                	cmp    %edx,%esi
404376:	74 18                	je     0x404390
404378:	03 1f                	add    (%edi),%ebx
40437a:	3b 5f 08             	cmp    0x8(%edi),%ebx
40437d:	72 ca                	jb     0x404349
40437f:	8b 7f 10             	mov    0x10(%edi),%edi
404382:	85 ff                	test   %edi,%edi
404384:	75 bc                	jne    0x404342
404386:	8b 45 08             	mov    0x8(%ebp),%eax
404389:	89 08                	mov    %ecx,(%eax)
40438b:	5f                   	pop    %edi
40438c:	5e                   	pop    %esi
40438d:	5b                   	pop    %ebx
40438e:	c9                   	leave
40438f:	c3                   	ret
404390:	8b 45 08             	mov    0x8(%ebp),%eax
404393:	89 10                	mov    %edx,(%eax)
404395:	eb f4                	jmp    0x40438b
404397:	55                   	push   %ebp
404398:	8b ec                	mov    %esp,%ebp
40439a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40439d:	53                   	push   %ebx
40439e:	56                   	push   %esi
40439f:	57                   	push   %edi
4043a0:	8b 7d 14             	mov    0x14(%ebp),%edi
4043a3:	85 ff                	test   %edi,%edi
4043a5:	74 49                	je     0x4043f0
4043a7:	8b 55 10             	mov    0x10(%ebp),%edx
4043aa:	33 db                	xor    %ebx,%ebx
4043ac:	39 5f 08             	cmp    %ebx,0x8(%edi)
4043af:	76 38                	jbe    0x4043e9
4043b1:	83 65 14 00          	andl   $0x0,0x14(%ebp)
4043b5:	8b f1                	mov    %ecx,%esi
4043b7:	83 3f 00             	cmpl   $0x0,(%edi)
4043ba:	76 22                	jbe    0x4043de
4043bc:	8b 47 0c             	mov    0xc(%edi),%eax
4043bf:	8b 55 14             	mov    0x14(%ebp),%edx
4043c2:	8d 0c 58             	lea    (%eax,%ebx,2),%ecx
4043c5:	66 8b 06             	mov    (%esi),%ax
4043c8:	83 c6 02             	add    $0x2,%esi
4043cb:	66 3b 01             	cmp    (%ecx),%ax
4043ce:	75 08                	jne    0x4043d8
4043d0:	42                   	inc    %edx
4043d1:	83 c1 02             	add    $0x2,%ecx
4043d4:	3b 17                	cmp    (%edi),%edx
4043d6:	72 ed                	jb     0x4043c5
4043d8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4043db:	8b 55 10             	mov    0x10(%ebp),%edx
4043de:	3b f2                	cmp    %edx,%esi
4043e0:	74 18                	je     0x4043fa
4043e2:	03 1f                	add    (%edi),%ebx
4043e4:	3b 5f 08             	cmp    0x8(%edi),%ebx
4043e7:	72 c8                	jb     0x4043b1
4043e9:	8b 7f 10             	mov    0x10(%edi),%edi
4043ec:	85 ff                	test   %edi,%edi
4043ee:	75 ba                	jne    0x4043aa
4043f0:	8b 45 08             	mov    0x8(%ebp),%eax
4043f3:	89 08                	mov    %ecx,(%eax)
4043f5:	5f                   	pop    %edi
4043f6:	5e                   	pop    %esi
4043f7:	5b                   	pop    %ebx
4043f8:	5d                   	pop    %ebp
4043f9:	c3                   	ret
4043fa:	8b 45 08             	mov    0x8(%ebp),%eax
4043fd:	89 10                	mov    %edx,(%eax)
4043ff:	eb f4                	jmp    0x4043f5
404401:	6a 50                	push   $0x50
404403:	b8 f3 a1 48 00       	mov    $0x48a1f3,%eax
404408:	e8 71 b6 03 00       	call   0x43fa7e
40440d:	8b 7d 10             	mov    0x10(%ebp),%edi
404410:	33 d2                	xor    %edx,%edx
404412:	8b 75 0c             	mov    0xc(%ebp),%esi
404415:	33 c0                	xor    %eax,%eax
404417:	6a 07                	push   $0x7
404419:	59                   	pop    %ecx
40441a:	89 55 d0             	mov    %edx,-0x30(%ebp)
40441d:	89 55 d4             	mov    %edx,-0x2c(%ebp)
404420:	89 7d a4             	mov    %edi,-0x5c(%ebp)
404423:	89 55 d0             	mov    %edx,-0x30(%ebp)
404426:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
404429:	66 89 45 c0          	mov    %ax,-0x40(%ebp)
40442d:	89 55 fc             	mov    %edx,-0x4(%ebp)
404430:	89 55 e8             	mov    %edx,-0x18(%ebp)
404433:	89 55 ec             	mov    %edx,-0x14(%ebp)
404436:	89 55 e8             	mov    %edx,-0x18(%ebp)
404439:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40443c:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
404440:	33 db                	xor    %ebx,%ebx
404442:	43                   	inc    %ebx
404443:	88 5d fc             	mov    %bl,-0x4(%ebp)
404446:	8d 4d d8             	lea    -0x28(%ebp),%ecx
404449:	ff 75 08             	push   0x8(%ebp)
40444c:	e8 7d e2 01 00       	call   0x4226ce
404451:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
404455:	8d 4d d8             	lea    -0x28(%ebp),%ecx
404458:	8b 45 e8             	mov    -0x18(%ebp),%eax
40445b:	0f 43 4d d8          	cmovae -0x28(%ebp),%ecx
40445f:	8d 04 41             	lea    (%ecx,%eax,2),%eax
404462:	50                   	push   %eax
404463:	8d 4d d8             	lea    -0x28(%ebp),%ecx
404466:	0f 43 4d d8          	cmovae -0x28(%ebp),%ecx
40446a:	8d 45 a8             	lea    -0x58(%ebp),%eax