4031ff:	56                   	push   %esi
403200:	50                   	push   %eax
403201:	e8 12 02 01 00       	call   0x413418
403206:	59                   	pop    %ecx
403207:	59                   	pop    %ecx
403208:	57                   	push   %edi
403209:	e8 12 f8 00 00       	call   0x412a20
40320e:	89 44 24 1c          	mov    %eax,0x1c(%esp)
403212:	8d 44 24 1c          	lea    0x1c(%esp),%eax
403216:	50                   	push   %eax
403217:	8d 44 24 2c          	lea    0x2c(%esp),%eax
40321b:	89 54 24 24          	mov    %edx,0x24(%esp)
40321f:	50                   	push   %eax
403220:	e8 60 fe 00 00       	call   0x413085
403225:	8d 93 2c 00 02 00    	lea    0x2002c(%ebx),%edx
40322b:	83 c4 0c             	add    $0xc,%esp
40322e:	85 d2                	test   %edx,%edx
403230:	74 16                	je     0x403248
403232:	8b ca                	mov    %edx,%ecx
403234:	8d 71 02             	lea    0x2(%ecx),%esi
403237:	66 8b 01             	mov    (%ecx),%ax
40323a:	83 c1 02             	add    $0x2,%ecx
40323d:	66 3b c7             	cmp    %di,%ax
403240:	75 f5                	jne    0x403237
403242:	2b ce                	sub    %esi,%ecx
403244:	d1 f9                	sar    $1,%ecx
403246:	75 04                	jne    0x40324c
403248:	8d 54 24 78          	lea    0x78(%esp),%edx
40324c:	ff 05 a0 ff 43 00    	incl   0x43ffa0
403252:	b9 44 94 43 00       	mov    $0x439444,%ecx
403257:	ff 35 a0 ff 43 00    	push   0x43ffa0
40325d:	8b 44 24 38          	mov    0x38(%esp),%eax
403261:	ff 74 24 28          	push   0x28(%esp)
403265:	40                   	inc    %eax
403266:	ff 74 24 30          	push   0x30(%esp)
40326a:	ff 74 24 38          	push   0x38(%esp)
40326e:	ff 74 24 40          	push   0x40(%esp)
403272:	50                   	push   %eax
403273:	8b 44 24 50          	mov    0x50(%esp),%eax
403277:	05 6c 07 00 00       	add    $0x76c,%eax
40327c:	39 7b 20             	cmp    %edi,0x20(%ebx)
40327f:	50                   	push   %eax
403280:	52                   	push   %edx
403281:	b8 38 94 43 00       	mov    $0x439438,%eax
403286:	0f 44 c1             	cmove  %ecx,%eax
403289:	50                   	push   %eax
40328a:	68 58 94 43 00       	push   $0x439458
40328f:	8d 84 24 a8 02 00 00 	lea    0x2a8(%esp),%eax
403296:	68 00 02 00 00       	push   $0x200
40329b:	50                   	push   %eax
40329c:	e8 0d f5 ff ff       	call   0x4027ae
4032a1:	83 c4 2c             	add    $0x2c,%esp
4032a4:	8d 93 30 01 02 00    	lea    0x20130(%ebx),%edx
4032aa:	8d 4c 24 64          	lea    0x64(%esp),%ecx
4032ae:	e8 c6 03 00 00       	call   0x403679
4032b3:	59                   	pop    %ecx
4032b4:	8d 8c 24 80 02 00 00 	lea    0x280(%esp),%ecx
4032bb:	8b f0                	mov    %eax,%esi
4032bd:	e8 8a de ff ff       	call   0x40114c
4032c2:	50                   	push   %eax
4032c3:	8d 84 24 84 02 00 00 	lea    0x284(%esp),%eax
4032ca:	8b ce                	mov    %esi,%ecx
4032cc:	50                   	push   %eax
4032cd:	e8 8a 01 00 00       	call   0x40345c
4032d2:	50                   	push   %eax
4032d3:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
4032d7:	e8 f2 ec ff ff       	call   0x401fce
4032dc:	8d 44 24 48          	lea    0x48(%esp),%eax
4032e0:	8b cd                	mov    %ebp,%ecx
4032e2:	50                   	push   %eax
4032e3:	e8 bd 00 00 00       	call   0x4033a5
4032e8:	57                   	push   %edi
4032e9:	6a 01                	push   $0x1
4032eb:	8d 4c 24 50          	lea    0x50(%esp),%ecx
4032ef:	e8 d1 ed ff ff       	call   0x4020c5
4032f4:	57                   	push   %edi
4032f5:	6a 01                	push   $0x1
4032f7:	8d 4c 24 68          	lea    0x68(%esp),%ecx
4032fb:	e8 c5 ed ff ff       	call   0x4020c5
403300:	8b 8c 24 84 06 00 00 	mov    0x684(%esp),%ecx
403307:	b0 01                	mov    $0x1,%al
403309:	5f                   	pop    %edi
40330a:	5e                   	pop    %esi
40330b:	5d                   	pop    %ebp
40330c:	5b                   	pop    %ebx
40330d:	33 cc                	xor    %esp,%ecx
40330f:	e8 93 69 00 00       	call   0x409ca7
403314:	81 c4 78 06 00 00    	add    $0x678,%esp
40331a:	c2 04 00             	ret    $0x4
40331d:	56                   	push   %esi
40331e:	8b f1                	mov    %ecx,%esi
403320:	57                   	push   %edi
403321:	8b 7c 24 0c          	mov    0xc(%esp),%edi
403325:	8b 4e 04             	mov    0x4(%esi),%ecx
403328:	8b 06                	mov    (%esi),%eax
40332a:	2b c8                	sub    %eax,%ecx
40332c:	3b f9                	cmp    %ecx,%edi
40332e:	72 26                	jb     0x403356
403330:	76 29                	jbe    0x40335b
403332:	2b 46 04             	sub    0x4(%esi),%eax
403335:	8b ce                	mov    %esi,%ecx
403337:	03 c7                	add    %edi,%eax
403339:	50                   	push   %eax
40333a:	e8 ab 00 00 00       	call   0x4033ea
40333f:	8b 06                	mov    (%esi),%eax
403341:	2b 46 04             	sub    0x4(%esi),%eax
403344:	03 c7                	add    %edi,%eax
403346:	50                   	push   %eax
403347:	6a 00                	push   $0x0
403349:	ff 76 04             	push   0x4(%esi)
40334c:	e8 6f 80 00 00       	call   0x40b3c0
403351:	8b 06                	mov    (%esi),%eax
403353:	83 c4 0c             	add    $0xc,%esp
403356:	03 c7                	add    %edi,%eax
403358:	89 46 04             	mov    %eax,0x4(%esi)
40335b:	5f                   	pop    %edi
40335c:	5e                   	pop    %esi
40335d:	c2 04 00             	ret    $0x4
403360:	53                   	push   %ebx
403361:	55                   	push   %ebp
403362:	57                   	push   %edi
403363:	8b f9                	mov    %ecx,%edi
403365:	bd 28 01 00 00       	mov    $0x128,%ebp
40336a:	8b 07                	mov    (%edi),%eax
40336c:	8b 18                	mov    (%eax),%ebx
40336e:	89 00                	mov    %eax,(%eax)
403370:	8b 07                	mov    (%edi),%eax
403372:	89 40 04             	mov    %eax,0x4(%eax)
403375:	83 67 04 00          	andl   $0x0,0x4(%edi)
403379:	8b 0f                	mov    (%edi),%ecx
40337b:	3b d9                	cmp    %ecx,%ebx
40337d:	74 18                	je     0x403397
40337f:	56                   	push   %esi
403380:	8b 33                	mov    (%ebx),%esi
403382:	33 d2                	xor    %edx,%edx
403384:	55                   	push   %ebp
403385:	42                   	inc    %edx
403386:	8b cb                	mov    %ebx,%ecx
403388:	e8 51 de ff ff       	call   0x4011de
40338d:	59                   	pop    %ecx
40338e:	8b 0f                	mov    (%edi),%ecx
403390:	8b de                	mov    %esi,%ebx
403392:	3b f1                	cmp    %ecx,%esi
403394:	75 ea                	jne    0x403380
403396:	5e                   	pop    %esi
403397:	33 d2                	xor    %edx,%edx
403399:	55                   	push   %ebp
40339a:	42                   	inc    %edx
40339b:	e8 3e de ff ff       	call   0x4011de
4033a0:	59                   	pop    %ecx
4033a1:	5f                   	pop    %edi
4033a2:	5d                   	pop    %ebp
4033a3:	5b                   	pop    %ebx
4033a4:	c3                   	ret
4033a5:	56                   	push   %esi
4033a6:	8b f1                	mov    %ecx,%esi
4033a8:	3b 74 24 08          	cmp    0x8(%esp),%esi
4033ac:	74 14                	je     0x4033c2
4033ae:	6a 00                	push   $0x0
4033b0:	6a 01                	push   $0x1
4033b2:	e8 0e ed ff ff       	call   0x4020c5
4033b7:	ff 74 24 08          	push   0x8(%esp)
4033bb:	8b ce                	mov    %esi,%ecx
4033bd:	e8 c8 ed ff ff       	call   0x40218a
4033c2:	8b c6                	mov    %esi,%eax
4033c4:	5e                   	pop    %esi
4033c5:	c2 04 00             	ret    $0x4
4033c8:	56                   	push   %esi
4033c9:	8b f1                	mov    %ecx,%esi
4033cb:	8b 0e                	mov    (%esi),%ecx
4033cd:	85 c9                	test   %ecx,%ecx
4033cf:	74 17                	je     0x4033e8
4033d1:	8b 56 08             	mov    0x8(%esi),%edx
4033d4:	6a 01                	push   $0x1
4033d6:	2b d1                	sub    %ecx,%edx
4033d8:	e8 01 de ff ff       	call   0x4011de
4033dd:	33 c0                	xor    %eax,%eax
4033df:	59                   	pop    %ecx
4033e0:	89 06                	mov    %eax,(%esi)
4033e2:	89 46 04             	mov    %eax,0x4(%esi)
4033e5:	89 46 08             	mov    %eax,0x8(%esi)
4033e8:	5e                   	pop    %esi
4033e9:	c3                   	ret
4033ea:	8b 54 24 04          	mov    0x4(%esp),%edx
4033ee:	53                   	push   %ebx
4033ef:	57                   	push   %edi
4033f0:	8b f9                	mov    %ecx,%edi
4033f2:	8b 5f 08             	mov    0x8(%edi),%ebx
4033f5:	8b c3                	mov    %ebx,%eax
4033f7:	8b 4f 04             	mov    0x4(%edi),%ecx
4033fa:	2b c1                	sub    %ecx,%eax
4033fc:	3b c2                	cmp    %edx,%eax
4033fe:	73 30                	jae    0x403430
403400:	8b 07                	mov    (%edi),%eax
403402:	2b c1                	sub    %ecx,%eax
403404:	48                   	dec    %eax
403405:	3b c2                	cmp    %edx,%eax
403407:	72 2c                	jb     0x403435
403409:	2b 0f                	sub    (%edi),%ecx
40340b:	2b 1f                	sub    (%edi),%ebx
40340d:	56                   	push   %esi
40340e:	8b c3                	mov    %ebx,%eax
403410:	8d 34 11             	lea    (%ecx,%edx,1),%esi
403413:	d1 e8                	shr    $1,%eax
403415:	8b c8                	mov    %eax,%ecx
403417:	33 d2                	xor    %edx,%edx
403419:	f7 d1                	not    %ecx
40341b:	03 c3                	add    %ebx,%eax
40341d:	3b cb                	cmp    %ebx,%ecx
40341f:	8b cf                	mov    %edi,%ecx
403421:	0f 43 d0             	cmovae %eax,%edx
403424:	3b d6                	cmp    %esi,%edx
403426:	0f 43 f2             	cmovae %edx,%esi
403429:	56                   	push   %esi
40342a:	e8 bf 00 00 00       	call   0x4034ee
40342f:	5e                   	pop    %esi
403430:	5f                   	pop    %edi
403431:	5b                   	pop    %ebx
403432:	c2 04 00             	ret    $0x4
403435:	e8 a9 00 00 00       	call   0x4034e3
40343a:	cc                   	int3
40343b:	8b 44 24 04          	mov    0x4(%esp),%eax
40343f:	3b 41 10             	cmp    0x10(%ecx),%eax
403442:	77 08                	ja     0x40344c
403444:	50                   	push   %eax
403445:	e8 2b ee ff ff       	call   0x402275
40344a:	eb 0d                	jmp    0x403459
40344c:	ff 74 24 08          	push   0x8(%esp)
403450:	2b 41 10             	sub    0x10(%ecx),%eax
403453:	50                   	push   %eax
403454:	e8 eb 00 00 00       	call   0x403544
403459:	c2 08 00             	ret    $0x8
40345c:	56                   	push   %esi
40345d:	57                   	push   %edi
40345e:	8b 7c 24 0c          	mov    0xc(%esp),%edi
403462:	8b f1                	mov    %ecx,%esi
403464:	57                   	push   %edi
403465:	e8 74 ed ff ff       	call   0x4021de
40346a:	84 c0                	test   %al,%al
40346c:	74 1d                	je     0x40348b
40346e:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
403472:	72 04                	jb     0x403478
403474:	8b 06                	mov    (%esi),%eax
403476:	eb 02                	jmp    0x40347a
403478:	8b c6                	mov    %esi,%eax
40347a:	ff 74 24 10          	push   0x10(%esp)
40347e:	2b f8                	sub    %eax,%edi
403480:	d1 ff                	sar    $1,%edi
403482:	57                   	push   %edi
403483:	56                   	push   %esi
403484:	e8 36 01 00 00       	call   0x4035bf
403489:	eb 4d                	jmp    0x4034d8
40348b:	8b 4e 10             	mov    0x10(%esi),%ecx
40348e:	8b c1                	mov    %ecx,%eax
403490:	53                   	push   %ebx
403491:	8b 5c 24 14          	mov    0x14(%esp),%ebx
403495:	f7 d0                	not    %eax
403497:	3b c3                	cmp    %ebx,%eax
403499:	76 42                	jbe    0x4034dd
40349b:	85 db                	test   %ebx,%ebx
40349d:	74 36                	je     0x4034d5
40349f:	55                   	push   %ebp
4034a0:	8d 2c 19             	lea    (%ecx,%ebx,1),%ebp
4034a3:	8b ce                	mov    %esi,%ecx
4034a5:	6a 00                	push   $0x0
4034a7:	55                   	push   %ebp
4034a8:	e8 6a ed ff ff       	call   0x402217
4034ad:	84 c0                	test   %al,%al
4034af:	74 23                	je     0x4034d4
4034b1:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
4034b5:	72 04                	jb     0x4034bb
4034b7:	8b 0e                	mov    (%esi),%ecx
4034b9:	eb 02                	jmp    0x4034bd
4034bb:	8b ce                	mov    %esi,%ecx
4034bd:	8b 46 10             	mov    0x10(%esi),%eax
4034c0:	8b d7                	mov    %edi,%edx
4034c2:	53                   	push   %ebx
4034c3:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
4034c6:	e8 a1 dc ff ff       	call   0x40116c
4034cb:	59                   	pop    %ecx
4034cc:	55                   	push   %ebp
4034cd:	8b ce                	mov    %esi,%ecx
4034cf:	e8 a1 ed ff ff       	call   0x402275
4034d4:	5d                   	pop    %ebp
4034d5:	8b c6                	mov    %esi,%eax
4034d7:	5b                   	pop    %ebx
4034d8:	5f                   	pop    %edi
4034d9:	5e                   	pop    %esi
4034da:	c2 08 00             	ret    $0x8
4034dd:	e8 21 ee ff ff       	call   0x402303
4034e2:	cc                   	int3
4034e3:	68 a4 94 43 00       	push   $0x4394a4
4034e8:	e8 2c 64 00 00       	call   0x409919
4034ed:	cc                   	int3
4034ee:	53                   	push   %ebx
4034ef:	55                   	push   %ebp
4034f0:	56                   	push   %esi
4034f1:	57                   	push   %edi
4034f2:	33 d2                	xor    %edx,%edx
4034f4:	8b f9                	mov    %ecx,%edi
4034f6:	51                   	push   %ecx
4034f7:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4034fb:	42                   	inc    %edx
4034fc:	e8 85 dc ff ff       	call   0x401186
403501:	8b 4f 04             	mov    0x4(%edi),%ecx
403504:	8b d8                	mov    %eax,%ebx
403506:	2b 0f                	sub    (%edi),%ecx
403508:	51                   	push   %ecx
403509:	ff 37                	push   (%edi)
40350b:	53                   	push   %ebx
40350c:	e8 2f 79 00 00       	call   0x40ae40
403511:	8b 0f                	mov    (%edi),%ecx
403513:	83 c4 10             	add    $0x10,%esp
403516:	8b 6f 04             	mov    0x4(%edi),%ebp
403519:	2b e9                	sub    %ecx,%ebp
40351b:	85 c9                	test   %ecx,%ecx
40351d:	74 0d                	je     0x40352c
40351f:	8b 57 08             	mov    0x8(%edi),%edx
403522:	6a 01                	push   $0x1
403524:	2b d1                	sub    %ecx,%edx
403526:	e8 b3 dc ff ff       	call   0x4011de
40352b:	59                   	pop    %ecx
40352c:	8b 44 24 14          	mov    0x14(%esp),%eax
403530:	03 c3                	add    %ebx,%eax
403532:	89 1f                	mov    %ebx,(%edi)
403534:	89 47 08             	mov    %eax,0x8(%edi)
403537:	8d 04 2b             	lea    (%ebx,%ebp,1),%eax
40353a:	89 47 04             	mov    %eax,0x4(%edi)
40353d:	5f                   	pop    %edi
40353e:	5e                   	pop    %esi
40353f:	5d                   	pop    %ebp
403540:	5b                   	pop    %ebx
403541:	c2 04 00             	ret    $0x4
403544:	56                   	push   %esi
403545:	8b f1                	mov    %ecx,%esi
403547:	57                   	push   %edi
403548:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40354c:	8b 4e 10             	mov    0x10(%esi),%ecx
40354f:	8b c1                	mov    %ecx,%eax
403551:	f7 d0                	not    %eax
403553:	3b c7                	cmp    %edi,%eax
403555:	76 62                	jbe    0x4035b9
403557:	85 ff                	test   %edi,%edi
403559:	74 57                	je     0x4035b2
40355b:	53                   	push   %ebx
40355c:	8d 1c 39             	lea    (%ecx,%edi,1),%ebx
40355f:	8b ce                	mov    %esi,%ecx
403561:	6a 00                	push   $0x0
403563:	53                   	push   %ebx
403564:	e8 ae ec ff ff       	call   0x402217