40412c:	ff 15 20 23 41 00    	call   *0x412320
404132:	ff d6                	call   *%esi
404134:	89 5d e0             	mov    %ebx,-0x20(%ebp)
404137:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40413b:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40413e:	ff 15 30 22 41 00    	call   *0x412230
404144:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404148:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40414b:	ff 15 30 22 41 00    	call   *0x412230
404151:	88 5d fc             	mov    %bl,-0x4(%ebp)
404154:	8d 4d dc             	lea    -0x24(%ebp),%ecx
404157:	ff 15 30 22 41 00    	call   *0x412230
40415d:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404161:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404164:	ff 15 30 22 41 00    	call   *0x412230
40416a:	e8 8a b1 00 00       	call   0x40f2f9
40416f:	c2 08 00             	ret    $0x8
404172:	6a 3c                	push   $0x3c
404174:	b8 7e f6 40 00       	mov    $0x40f67e,%eax
404179:	e8 07 b2 00 00       	call   0x40f385
40417e:	8b f9                	mov    %ecx,%edi
404180:	8b 75 0c             	mov    0xc(%ebp),%esi
404183:	8d 4d d8             	lea    -0x28(%ebp),%ecx
404186:	ff 15 f8 21 41 00    	call   *0x4121f8
40418c:	33 db                	xor    %ebx,%ebx
40418e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
404191:	89 5d c0             	mov    %ebx,-0x40(%ebp)
404194:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
404197:	89 5d c8             	mov    %ebx,-0x38(%ebp)
40419a:	89 5d cc             	mov    %ebx,-0x34(%ebp)
40419d:	89 5d d0             	mov    %ebx,-0x30(%ebp)
4041a0:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
4041a3:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4041a7:	8d 45 d0             	lea    -0x30(%ebp),%eax
4041aa:	50                   	push   %eax
4041ab:	ba ec 14 40 00       	mov    $0x4014ec,%edx
4041b0:	8b ce                	mov    %esi,%ecx
4041b2:	e8 c2 3b 00 00       	call   0x407d79
4041b7:	8d 45 c8             	lea    -0x38(%ebp),%eax
4041ba:	50                   	push   %eax
4041bb:	ba 0c 15 40 00       	mov    $0x40150c,%edx
4041c0:	8b ce                	mov    %esi,%ecx
4041c2:	e8 b2 3b 00 00       	call   0x407d79
4041c7:	8b 4d d0             	mov    -0x30(%ebp),%ecx
4041ca:	03 4d c8             	add    -0x38(%ebp),%ecx
4041cd:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4041d0:	13 45 cc             	adc    -0x34(%ebp),%eax
4041d3:	89 4d c0             	mov    %ecx,-0x40(%ebp)
4041d6:	89 45 c4             	mov    %eax,-0x3c(%ebp)
4041d9:	6a 10                	push   $0x10
4041db:	58                   	pop    %eax
4041dc:	89 45 b8             	mov    %eax,-0x48(%ebp)
4041df:	8d 4d dc             	lea    -0x24(%ebp),%ecx
4041e2:	89 4d bc             	mov    %ecx,-0x44(%ebp)
4041e5:	85 c0                	test   %eax,%eax
4041e7:	74 0c                	je     0x4041f5
4041e9:	88 19                	mov    %bl,(%ecx)
4041eb:	41                   	inc    %ecx
4041ec:	89 4d bc             	mov    %ecx,-0x44(%ebp)
4041ef:	48                   	dec    %eax
4041f0:	89 45 b8             	mov    %eax,-0x48(%ebp)
4041f3:	eb f0                	jmp    0x4041e5
4041f5:	8d 45 dc             	lea    -0x24(%ebp),%eax
4041f8:	50                   	push   %eax
4041f9:	8d 45 c0             	lea    -0x40(%ebp),%eax
4041fc:	50                   	push   %eax
4041fd:	ff 15 00 23 41 00    	call   *0x412300
404203:	6b 45 e0 18          	imul   $0x18,-0x20(%ebp),%eax
404207:	66 8b 4d e2          	mov    -0x1e(%ebp),%cx
40420b:	66 03 c8             	add    %ax,%cx
40420e:	66 89 4d e2          	mov    %cx,-0x1e(%ebp)
404212:	0f bf 45 e6          	movswl -0x1a(%ebp),%eax
404216:	50                   	push   %eax
404217:	ff 77 68             	push   0x68(%edi)
40421a:	0f bf 45 e4          	movswl -0x1c(%ebp),%eax
40421e:	50                   	push   %eax
40421f:	ff 77 68             	push   0x68(%edi)
404222:	0f bf c1             	movswl %cx,%eax
404225:	50                   	push   %eax
404226:	68 28 15 40 00       	push   $0x401528
40422b:	8d 45 d8             	lea    -0x28(%ebp),%eax
40422e:	50                   	push   %eax
40422f:	ff 15 04 22 41 00    	call   *0x412204
404235:	83 c4 18             	add    $0x18,%esp
404238:	ff 75 d8             	push   -0x28(%ebp)
40423b:	6a 08                	push   $0x8
40423d:	8b 55 08             	mov    0x8(%ebp),%edx
404240:	8b 8f 80 00 00 00    	mov    0x80(%edi),%ecx
404246:	e8 9f 50 00 00       	call   0x4092ea
40424b:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40424e:	eb 1a                	jmp    0x40426a
404250:	68 0e 00 07 80       	push   $0x8007000e
404255:	ff 15 74 20 41 00    	call   *0x412074
40425b:	e8 94 55 00 00       	call   0x4097f4
404260:	b8 66 42 40 00       	mov    $0x404266,%eax
404265:	c3                   	ret
404266:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40426a:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40426e:	8d 4d d8             	lea    -0x28(%ebp),%ecx
404271:	ff 15 30 22 41 00    	call   *0x412230
404277:	e8 91 b0 00 00       	call   0x40f30d
40427c:	c2 08 00             	ret    $0x8
40427f:	6a 10                	push   $0x10
404281:	b8 b5 f6 40 00       	mov    $0x40f6b5,%eax
404286:	e8 c4 b0 00 00       	call   0x40f34f
40428b:	8b f1                	mov    %ecx,%esi
40428d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
404290:	ff 15 f8 21 41 00    	call   *0x4121f8
404296:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40429a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40429d:	ff 15 f8 21 41 00    	call   *0x4121f8
4042a3:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4042a7:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4042ab:	b9 01 01 00 00       	mov    $0x101,%ecx
4042b0:	e8 9c 57 00 00       	call   0x409a51
4042b5:	50                   	push   %eax
4042b6:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4042b9:	ff 15 2c 22 41 00    	call   *0x41222c
4042bf:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax
4042c5:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4042c8:	51                   	push   %ecx
4042c9:	6a 00                	push   $0x0
4042cb:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4042ce:	50                   	push   %eax
4042cf:	68 00 00 04 00       	push   $0x40000
4042d4:	33 d2                	xor    %edx,%edx
4042d6:	8b 4e 58             	mov    0x58(%esi),%ecx
4042d9:	e8 02 47 00 00       	call   0x4089e0
4042de:	8b f8                	mov    %eax,%edi
4042e0:	83 ff ff             	cmp    $0xffffffff,%edi
4042e3:	74 41                	je     0x404326
4042e5:	6a 04                	push   $0x4
4042e7:	8b d7                	mov    %edi,%edx
4042e9:	8b 4e 58             	mov    0x58(%esi),%ecx
4042ec:	e8 7e 4d 00 00       	call   0x40906f
4042f1:	85 c0                	test   %eax,%eax
4042f3:	74 0a                	je     0x4042ff
4042f5:	50                   	push   %eax
4042f6:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4042f9:	ff 15 2c 22 41 00    	call   *0x41222c
4042ff:	51                   	push   %ecx
404300:	8b d7                	mov    %edi,%edx
404302:	8b 4e 58             	mov    0x58(%esi),%ecx
404305:	e8 b6 4d 00 00       	call   0x4090c0
40430a:	33 c9                	xor    %ecx,%ecx
40430c:	85 c0                	test   %eax,%eax
40430e:	0f 95 c1             	setne  %cl
404311:	81 c1 fb 00 00 00    	add    $0xfb,%ecx
404317:	e8 35 57 00 00       	call   0x409a51
40431c:	50                   	push   %eax
40431d:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404320:	ff 15 2c 22 41 00    	call   *0x41222c
404326:	83 7e 70 00          	cmpl   $0x0,0x70(%esi)
40432a:	74 1a                	je     0x404346
40432c:	83 7e 74 00          	cmpl   $0x0,0x74(%esi)
404330:	74 14                	je     0x404346
404332:	b9 02 01 00 00       	mov    $0x102,%ecx
404337:	e8 15 57 00 00       	call   0x409a51
40433c:	50                   	push   %eax
40433d:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404340:	ff 15 2c 22 41 00    	call   *0x41222c
404346:	51                   	push   %ecx
404347:	ff 75 ec             	push   -0x14(%ebp)
40434a:	6a 06                	push   $0x6
40434c:	8b 55 08             	mov    0x8(%ebp),%edx
40434f:	8b 8e 80 00 00 00    	mov    0x80(%esi),%ecx
404355:	e8 90 4f 00 00       	call   0x4092ea
40435a:	51                   	push   %ecx
40435b:	ff 75 e8             	push   -0x18(%ebp)
40435e:	6a 09                	push   $0x9
404360:	8b 55 08             	mov    0x8(%ebp),%edx
404363:	8b 8e 80 00 00 00    	mov    0x80(%esi),%ecx
404369:	e8 7c 4f 00 00       	call   0x4092ea
40436e:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
404375:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
404379:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40437c:	ff 15 30 22 41 00    	call   *0x412230
404382:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404386:	8d 4d e8             	lea    -0x18(%ebp),%ecx
404389:	ff 15 30 22 41 00    	call   *0x412230
40438f:	e8 65 af 00 00       	call   0x40f2f9
404394:	c2 04 00             	ret    $0x4
404397:	68 0e 00 07 80       	push   $0x8007000e
40439c:	ff 15 74 20 41 00    	call   *0x412074
4043a2:	e8 4d 54 00 00       	call   0x4097f4
4043a7:	b8 6e 43 40 00       	mov    $0x40436e,%eax
4043ac:	c3                   	ret
4043ad:	6a 0c                	push   $0xc
4043af:	b8 d9 f6 40 00       	mov    $0x40f6d9,%eax
4043b4:	e8 96 af 00 00       	call   0x40f34f
4043b9:	8b f1                	mov    %ecx,%esi
4043bb:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4043be:	ff 15 f8 21 41 00    	call   *0x4121f8
4043c4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4043c8:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
4043cc:	51                   	push   %ecx
4043cd:	b9 8d 13 00 00       	mov    $0x138d,%ecx
4043d2:	e8 7a 56 00 00       	call   0x409a51
4043d7:	50                   	push   %eax
4043d8:	6a 04                	push   $0x4
4043da:	8b 55 08             	mov    0x8(%ebp),%edx
4043dd:	8b 8e 80 00 00 00    	mov    0x80(%esi),%ecx
4043e3:	e8 02 4f 00 00       	call   0x4092ea
4043e8:	51                   	push   %ecx
4043e9:	68 98 16 40 00       	push   $0x401698
4043ee:	6a 03                	push   $0x3
4043f0:	8b 55 08             	mov    0x8(%ebp),%edx
4043f3:	8b 8e 80 00 00 00    	mov    0x80(%esi),%ecx
4043f9:	e8 ec 4e 00 00       	call   0x4092ea
4043fe:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404402:	51                   	push   %ecx
404403:	8d 45 e8             	lea    -0x18(%ebp),%eax
404406:	50                   	push   %eax
404407:	ba f4 13 40 00       	mov    $0x4013f4,%edx
40440c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40440f:	e8 9d 38 00 00       	call   0x407cb1
404414:	85 c0                	test   %eax,%eax
404416:	0f 84 a6 00 00 00    	je     0x4044c2
40441c:	ff 75 e8             	push   -0x18(%ebp)
40441f:	68 48 15 40 00       	push   $0x401548
404424:	8d 45 ec             	lea    -0x14(%ebp),%eax
404427:	50                   	push   %eax
404428:	ff 15 04 22 41 00    	call   *0x412204
40442e:	59                   	pop    %ecx
40442f:	59                   	pop    %ecx
404430:	ff 75 ec             	push   -0x14(%ebp)
404433:	6a 04                	push   $0x4
404435:	8b 55 08             	mov    0x8(%ebp),%edx
404438:	8b 8e 80 00 00 00    	mov    0x80(%esi),%ecx
40443e:	e8 a7 4e 00 00       	call   0x4092ea
404443:	8b 86 d8 00 00 00    	mov    0xd8(%esi),%eax
404449:	83 f8 01             	cmp    $0x1,%eax
40444c:	74 0c                	je     0x40445a
40444e:	85 c0                	test   %eax,%eax
404450:	75 6c                	jne    0x4044be
404452:	39 86 98 00 00 00    	cmp    %eax,0x98(%esi)
404458:	74 64                	je     0x4044be
40445a:	6a 41                	push   $0x41
40445c:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40445f:	ff 15 34 22 41 00    	call   *0x412234
404465:	85 c0                	test   %eax,%eax
404467:	74 20                	je     0x404489
404469:	8b be cc 00 00 00    	mov    0xcc(%esi),%edi
40446f:	85 ff                	test   %edi,%edi
404471:	74 16                	je     0x404489
404473:	50                   	push   %eax
404474:	ff 75 e8             	push   -0x18(%ebp)
404477:	ff b6 98 00 00 00    	push   0x98(%esi)
40447d:	8b cf                	mov    %edi,%ecx
40447f:	ff 15 20 23 41 00    	call   *0x412320
404485:	ff d7                	call   *%edi
404487:	eb 02                	jmp    0x40448b
404489:	32 c0                	xor    %al,%al
40448b:	84 c0                	test   %al,%al
40448d:	74 33                	je     0x4044c2
40448f:	6a ff                	push   $0xffffffff
404491:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404494:	ff 15 40 22 41 00    	call   *0x412240
40449a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40449d:	ff 15 38 22 41 00    	call   *0x412238
4044a3:	8b 40 04             	mov    0x4(%eax),%eax
4044a6:	85 c0                	test   %eax,%eax
4044a8:	74 14                	je     0x4044be
4044aa:	51                   	push   %ecx
4044ab:	ff 75 ec             	push   -0x14(%ebp)
4044ae:	6a 03                	push   $0x3
4044b0:	8b 55 08             	mov    0x8(%ebp),%edx
4044b3:	8b 8e 80 00 00 00    	mov    0x80(%esi),%ecx
4044b9:	e8 2c 4e 00 00       	call   0x4092ea
4044be:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4044c2:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4044c6:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4044c9:	ff 15 30 22 41 00    	call   *0x412230
4044cf:	e8 25 ae 00 00       	call   0x40f2f9
4044d4:	c2 08 00             	ret    $0x8
4044d7:	68 0e 00 07 80       	push   $0x8007000e
4044dc:	ff 15 74 20 41 00    	call   *0x412074
4044e2:	e8 0d 53 00 00       	call   0x4097f4
4044e7:	b8 be 44 40 00       	mov    $0x4044be,%eax
4044ec:	c3                   	ret
4044ed:	68 9c 00 00 00       	push   $0x9c
4044f2:	b8 fd f6 40 00       	mov    $0x40f6fd,%eax
4044f7:	e8 89 ae 00 00       	call   0x40f385
4044fc:	8b d9                	mov    %ecx,%ebx
4044fe:	8b 75 0c             	mov    0xc(%ebp),%esi
404501:	8d 4d 80             	lea    -0x80(%ebp),%ecx
404504:	ff 15 f8 21 41 00    	call   *0x4121f8
40450a:	33 d2                	xor    %edx,%edx
40450c:	89 55 fc             	mov    %edx,-0x4(%ebp)
40450f:	89 95 78 ff ff ff    	mov    %edx,-0x88(%ebp)
404515:	89 95 7c ff ff ff    	mov    %edx,-0x84(%ebp)
40451b:	89 95 70 ff ff ff    	mov    %edx,-0x90(%ebp)
404521:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)
404527:	6a 08                	push   $0x8
404529:	59                   	pop    %ecx
40452a:	33 c0                	xor    %eax,%eax
40452c:	8d 7d c8             	lea    -0x38(%ebp),%edi
40452f:	f3 ab                	rep stos %eax,%es:(%edi)
404531:	aa                   	stos   %al,%es:(%edi)
404532:	6a 42                	push   $0x42
404534:	52                   	push   %edx
404535:	8d 45 84             	lea    -0x7c(%ebp),%eax
404538:	50                   	push   %eax
404539:	e8 86 ae 00 00       	call   0x40f3c4
40453e:	83 c4 0c             	add    $0xc,%esp
404541:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404545:	51                   	push   %ecx
404546:	b9 8d 13 00 00       	mov    $0x138d,%ecx
40454b:	e8 01 55 00 00       	call   0x409a51
404550:	50                   	push   %eax
404551:	6a 05                	push   $0x5
404553:	8b 55 08             	mov    0x8(%ebp),%edx
404556:	8b 8b 80 00 00 00    	mov    0x80(%ebx),%ecx
40455c:	e8 89 4d 00 00       	call   0x4092ea
404561:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
404567:	50                   	push   %eax
404568:	ba 38 14 40 00       	mov    $0x401438,%edx
40456d:	8b ce                	mov    %esi,%ecx
40456f:	e8 05 38 00 00       	call   0x407d79
404574:	85 c0                	test   %eax,%eax
404576:	0f 84 12 01 00 00    	je     0x40468e
40457c:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
404582:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
404588:	0f ac c8 0a          	shrd   $0xa,%ecx,%eax
40458c:	c1 e9 0a             	shr    $0xa,%ecx
40458f:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
404595:	89 8d 7c ff ff ff    	mov    %ecx,-0x84(%ebp)
40459b:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
4045a1:	89 8d 74 ff ff ff    	mov    %ecx,-0x8c(%ebp)
4045a7:	8d 45 c8             	lea    -0x38(%ebp),%eax
4045aa:	50                   	push   %eax
4045ab:	6a 21                	push   $0x21
4045ad:	6a 0a                	push   $0xa
4045af:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
4045b5:	50                   	push   %eax
4045b6:	ff 15 04 23 41 00    	call   *0x412304
4045bc:	85 c0                	test   %eax,%eax
4045be:	0f 88 ca 00 00 00    	js     0x40468e
4045c4:	8d 45 c8             	lea    -0x38(%ebp),%eax
4045c7:	50                   	push   %eax
4045c8:	8d 4d 80             	lea    -0x80(%ebp),%ecx
4045cb:	ff 15 1c 22 41 00    	call   *0x41221c
4045d1:	33 ff                	xor    %edi,%edi
4045d3:	89 bd 58 ff ff ff    	mov    %edi,-0xa8(%ebp)
4045d9:	89 bd 5c ff ff ff    	mov    %edi,-0xa4(%ebp)
4045df:	89 bd 6c ff ff ff    	mov    %edi,-0x94(%ebp)
4045e5:	8b 43 64             	mov    0x64(%ebx),%eax
4045e8:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
4045ee:	8d 73 6c             	lea    0x6c(%ebx),%esi
4045f1:	8b ce                	mov    %esi,%ecx