4031d7:	33 f6                	xor    %esi,%esi
4031d9:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4031dc:	39 37                	cmp    %esi,(%edi)
4031de:	74 4b                	je     0x40322b
4031e0:	8b 41 64             	mov    0x64(%ecx),%eax
4031e3:	89 45 08             	mov    %eax,0x8(%ebp)
4031e6:	53                   	push   %ebx
4031e7:	85 c0                	test   %eax,%eax
4031e9:	74 3c                	je     0x403227
4031eb:	8b 41 60             	mov    0x60(%ecx),%eax
4031ee:	8b 04 b0             	mov    (%eax,%esi,4),%eax
4031f1:	8b 18                	mov    (%eax),%ebx
4031f3:	85 db                	test   %ebx,%ebx
4031f5:	74 2a                	je     0x403221
4031f7:	8b 8b cc 01 00 00    	mov    0x1cc(%ebx),%ecx
4031fd:	85 c9                	test   %ecx,%ecx
4031ff:	0f 85 63 9f 03 00    	jne    0x43d168
403205:	57                   	push   %edi
403206:	ff 33                	push   (%ebx)
403208:	ff 15 24 f5 48 00    	call   *0x48f524
40320e:	85 c0                	test   %eax,%eax
403210:	74 0c                	je     0x40321e
403212:	33 c0                	xor    %eax,%eax
403214:	40                   	inc    %eax
403215:	5b                   	pop    %ebx
403216:	5f                   	pop    %edi
403217:	5e                   	pop    %esi
403218:	8b e5                	mov    %ebp,%esp
40321a:	5d                   	pop    %ebp
40321b:	c2 04 00             	ret    $0x4
40321e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
403221:	46                   	inc    %esi
403222:	3b 75 08             	cmp    0x8(%ebp),%esi
403225:	72 c4                	jb     0x4031eb
403227:	33 c0                	xor    %eax,%eax
403229:	eb ea                	jmp    0x403215
40322b:	33 c0                	xor    %eax,%eax
40322d:	eb e7                	jmp    0x403216
40322f:	56                   	push   %esi
403230:	8b f1                	mov    %ecx,%esi
403232:	8b 0e                	mov    (%esi),%ecx
403234:	85 c9                	test   %ecx,%ecx
403236:	7e 1d                	jle    0x403255
403238:	8b d1                	mov    %ecx,%edx
40323a:	0f b6 c1             	movzbl %cl,%eax
40323d:	c1 fa 10             	sar    $0x10,%edx
403240:	81 e1 00 ff 00 00    	and    $0xff00,%ecx
403246:	81 e2 ff 00 00 00    	and    $0xff,%edx
40324c:	c1 e0 10             	shl    $0x10,%eax
40324f:	0b d0                	or     %eax,%edx
403251:	0b d1                	or     %ecx,%edx
403253:	89 16                	mov    %edx,(%esi)
403255:	5e                   	pop    %esi
403256:	c3                   	ret
403257:	55                   	push   %ebp
403258:	8b ec                	mov    %esp,%ebp
40325a:	56                   	push   %esi
40325b:	8b f1                	mov    %ecx,%esi
40325d:	57                   	push   %edi
40325e:	33 ff                	xor    %edi,%edi
403260:	6a 0c                	push   $0xc
403262:	39 7e 04             	cmp    %edi,0x4(%esi)
403265:	74 2e                	je     0x403295
403267:	e8 8a dd 01 00       	call   0x420ff6
40326c:	59                   	pop    %ecx
40326d:	85 c0                	test   %eax,%eax
40326f:	74 0c                	je     0x40327d
403271:	ff 75 08             	push   0x8(%ebp)
403274:	8b c8                	mov    %eax,%ecx
403276:	e8 4c 00 00 00       	call   0x4032c7
40327b:	8b f8                	mov    %eax,%edi
40327d:	8b 46 04             	mov    0x4(%esi),%eax
403280:	89 47 08             	mov    %eax,0x8(%edi)
403283:	8b 46 04             	mov    0x4(%esi),%eax
403286:	89 78 04             	mov    %edi,0x4(%eax)
403289:	ff 46 08             	incl   0x8(%esi)
40328c:	89 7e 04             	mov    %edi,0x4(%esi)
40328f:	5f                   	pop    %edi
403290:	5e                   	pop    %esi
403291:	5d                   	pop    %ebp
403292:	c2 04 00             	ret    $0x4
403295:	e8 5c dd 01 00       	call   0x420ff6
40329a:	59                   	pop    %ecx
40329b:	85 c0                	test   %eax,%eax
40329d:	74 0c                	je     0x4032ab
40329f:	ff 75 08             	push   0x8(%ebp)
4032a2:	8b c8                	mov    %eax,%ecx
4032a4:	e8 1e 00 00 00       	call   0x4032c7
4032a9:	8b f8                	mov    %eax,%edi
4032ab:	89 3e                	mov    %edi,(%esi)
4032ad:	eb da                	jmp    0x403289
4032af:	56                   	push   %esi
4032b0:	8b f1                	mov    %ecx,%esi
4032b2:	ff 36                	push   (%esi)
4032b4:	e8 b3 dd 01 00       	call   0x42106c
4032b9:	56                   	push   %esi
4032ba:	e8 ad dd 01 00       	call   0x42106c
4032bf:	59                   	pop    %ecx
4032c0:	59                   	pop    %ecx
4032c1:	8b c6                	mov    %esi,%eax
4032c3:	5e                   	pop    %esi
4032c4:	c2 04 00             	ret    $0x4
4032c7:	55                   	push   %ebp
4032c8:	8b ec                	mov    %esp,%ebp
4032ca:	53                   	push   %ebx
4032cb:	8b d9                	mov    %ecx,%ebx
4032cd:	6a 0c                	push   $0xc
4032cf:	83 63 04 00          	andl   $0x0,0x4(%ebx)
4032d3:	83 63 08 00          	andl   $0x0,0x8(%ebx)
4032d7:	e8 1a dd 01 00       	call   0x420ff6
4032dc:	59                   	pop    %ecx
4032dd:	85 c0                	test   %eax,%eax
4032df:	74 15                	je     0x4032f6
4032e1:	56                   	push   %esi
4032e2:	8b 75 08             	mov    0x8(%ebp),%esi
4032e5:	57                   	push   %edi
4032e6:	8b f8                	mov    %eax,%edi
4032e8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4032e9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4032ea:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4032eb:	5f                   	pop    %edi
4032ec:	5e                   	pop    %esi
4032ed:	89 03                	mov    %eax,(%ebx)
4032ef:	8b c3                	mov    %ebx,%eax
4032f1:	5b                   	pop    %ebx
4032f2:	5d                   	pop    %ebp
4032f3:	c2 04 00             	ret    $0x4
4032f6:	33 c0                	xor    %eax,%eax
4032f8:	eb f3                	jmp    0x4032ed
4032fa:	56                   	push   %esi
4032fb:	8b f1                	mov    %ecx,%esi
4032fd:	57                   	push   %edi
4032fe:	8b 4e 78             	mov    0x78(%esi),%ecx
403301:	85 c9                	test   %ecx,%ecx
403303:	75 59                	jne    0x40335e
403305:	8b 46 7c             	mov    0x7c(%esi),%eax
403308:	83 f8 0b             	cmp    $0xb,%eax
40330b:	0f 8f ee 9e 03 00    	jg     0x43d1ff
403311:	0f 84 ce 9e 03 00    	je     0x43d1e5
403317:	83 e8 05             	sub    $0x5,%eax
40331a:	74 4e                	je     0x40336a
40331c:	83 e8 03             	sub    $0x3,%eax
40331f:	0f 84 a3 9e 03 00    	je     0x43d1c8
403325:	48                   	dec    %eax
403326:	48                   	dec    %eax
403327:	0f 84 81 9e 03 00    	je     0x43d1ae
40332d:	83 66 70 00          	andl   $0x0,0x70(%esi)
403331:	8d 4e 54             	lea    0x54(%esi),%ecx
403334:	c7 46 7c 01 00 00 00 	movl   $0x1,0x7c(%esi)
40333b:	e8 24 27 00 00       	call   0x405a64
403340:	8d 4e 24             	lea    0x24(%esi),%ecx
403343:	e8 1c 27 00 00       	call   0x405a64
403348:	8d 4e 14             	lea    0x14(%esi),%ecx
40334b:	e8 14 27 00 00       	call   0x405a64
403350:	56                   	push   %esi
403351:	e8 16 dd 01 00       	call   0x42106c
403356:	59                   	pop    %ecx
403357:	5f                   	pop    %edi
403358:	8b c6                	mov    %esi,%eax
40335a:	5e                   	pop    %esi
40335b:	c2 04 00             	ret    $0x4
40335e:	51                   	push   %ecx
40335f:	e8 d9 47 00 00       	call   0x407b3d
403364:	83 66 78 00          	andl   $0x0,0x78(%esi)
403368:	eb 9b                	jmp    0x403305
40336a:	8b 4e 70             	mov    0x70(%esi),%ecx
40336d:	85 c9                	test   %ecx,%ecx
40336f:	74 bc                	je     0x40332d
403371:	51                   	push   %ecx
403372:	e8 bd 5a 00 00       	call   0x408e34
403377:	eb b4                	jmp    0x40332d
403379:	53                   	push   %ebx
40337a:	56                   	push   %esi
40337b:	8b f1                	mov    %ecx,%esi
40337d:	33 db                	xor    %ebx,%ebx
40337f:	57                   	push   %edi
403380:	83 cf ff             	or     $0xffffffff,%edi
403383:	8d 4e 14             	lea    0x14(%esi),%ecx
403386:	89 1e                	mov    %ebx,(%esi)
403388:	89 7e 04             	mov    %edi,0x4(%esi)
40338b:	89 5e 08             	mov    %ebx,0x8(%esi)
40338e:	89 5e 0c             	mov    %ebx,0xc(%esi)
403391:	89 5e 10             	mov    %ebx,0x10(%esi)
403394:	e8 2e 44 00 00       	call   0x4077c7
403399:	8d 4e 24             	lea    0x24(%esi),%ecx
40339c:	e8 26 44 00 00       	call   0x4077c7
4033a1:	8d 4e 54             	lea    0x54(%esi),%ecx
4033a4:	89 5e 34             	mov    %ebx,0x34(%esi)
4033a7:	89 5e 38             	mov    %ebx,0x38(%esi)
4033aa:	89 5e 3c             	mov    %ebx,0x3c(%esi)
4033ad:	89 5e 40             	mov    %ebx,0x40(%esi)
4033b0:	89 5e 44             	mov    %ebx,0x44(%esi)
4033b3:	89 7e 48             	mov    %edi,0x48(%esi)
4033b6:	89 7e 4c             	mov    %edi,0x4c(%esi)
4033b9:	89 5e 50             	mov    %ebx,0x50(%esi)
4033bc:	e8 06 44 00 00       	call   0x4077c7
4033c1:	89 5e 64             	mov    %ebx,0x64(%esi)
4033c4:	8b c6                	mov    %esi,%eax
4033c6:	89 5e 68             	mov    %ebx,0x68(%esi)
4033c9:	89 5e 70             	mov    %ebx,0x70(%esi)
4033cc:	89 5e 78             	mov    %ebx,0x78(%esi)
4033cf:	c7 46 7c 01 00 00 00 	movl   $0x1,0x7c(%esi)
4033d6:	66 89 be 84 00 00 00 	mov    %di,0x84(%esi)
4033dd:	66 89 be 88 00 00 00 	mov    %di,0x88(%esi)
4033e4:	66 89 be 8a 00 00 00 	mov    %di,0x8a(%esi)
4033eb:	66 89 be 8c 00 00 00 	mov    %di,0x8c(%esi)
4033f2:	66 89 be 8e 00 00 00 	mov    %di,0x8e(%esi)
4033f9:	89 be 9c 00 00 00    	mov    %edi,0x9c(%esi)
4033ff:	5f                   	pop    %edi
403400:	89 9e 80 00 00 00    	mov    %ebx,0x80(%esi)
403406:	88 9e 98 00 00 00    	mov    %bl,0x98(%esi)
40340c:	c6 86 93 00 00 00 ff 	movb   $0xff,0x93(%esi)
403413:	5e                   	pop    %esi
403414:	5b                   	pop    %ebx
403415:	c3                   	ret
403416:	55                   	push   %ebp
403417:	8b ec                	mov    %esp,%ebp
403419:	53                   	push   %ebx
40341a:	56                   	push   %esi
40341b:	8b f1                	mov    %ecx,%esi
40341d:	6a 04                	push   $0x4
40341f:	5b                   	pop    %ebx
403420:	8b 46 0c             	mov    0xc(%esi),%eax
403423:	39 46 08             	cmp    %eax,0x8(%esi)
403426:	74 26                	je     0x40344e
403428:	53                   	push   %ebx
403429:	e8 c8 db 01 00       	call   0x420ff6
40342e:	8b d0                	mov    %eax,%edx
403430:	59                   	pop    %ecx
403431:	85 d2                	test   %edx,%edx
403433:	74 4f                	je     0x403484
403435:	8b 4d 08             	mov    0x8(%ebp),%ecx
403438:	8b 09                	mov    (%ecx),%ecx
40343a:	89 0a                	mov    %ecx,(%edx)
40343c:	8b 4e 08             	mov    0x8(%esi),%ecx
40343f:	8b 46 04             	mov    0x4(%esi),%eax
403442:	89 14 88             	mov    %edx,(%eax,%ecx,4)
403445:	ff 46 08             	incl   0x8(%esi)
403448:	5e                   	pop    %esi
403449:	5b                   	pop    %ebx
40344a:	5d                   	pop    %ebp
40344b:	c2 04 00             	ret    $0x4
40344e:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
403451:	6a 08                	push   $0x8
403453:	58                   	pop    %eax
403454:	3b c8                	cmp    %eax,%ecx
403456:	73 28                	jae    0x403480
403458:	33 c9                	xor    %ecx,%ecx
40345a:	89 46 0c             	mov    %eax,0xc(%esi)
40345d:	f7 e3                	mul    %ebx
40345f:	57                   	push   %edi
403460:	0f 90 c1             	seto   %cl
403463:	f7 d9                	neg    %ecx
403465:	0b c8                	or     %eax,%ecx
403467:	51                   	push   %ecx
403468:	e8 89 db 01 00       	call   0x420ff6
40346d:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
403471:	8b f8                	mov    %eax,%edi
403473:	59                   	pop    %ecx
403474:	0f 85 d7 9d 03 00    	jne    0x43d251
40347a:	89 7e 04             	mov    %edi,0x4(%esi)
40347d:	5f                   	pop    %edi
40347e:	eb a8                	jmp    0x403428
403480:	8b c1                	mov    %ecx,%eax
403482:	eb d4                	jmp    0x403458
403484:	33 d2                	xor    %edx,%edx
403486:	eb b4                	jmp    0x40343c
403488:	56                   	push   %esi
403489:	8b f1                	mov    %ecx,%esi
40348b:	57                   	push   %edi
40348c:	33 ff                	xor    %edi,%edi
40348e:	c7 06 14 f9 48 00    	movl   $0x48f914,(%esi)
403494:	39 7e 08             	cmp    %edi,0x8(%esi)
403497:	76 19                	jbe    0x4034b2
403499:	8b 46 04             	mov    0x4(%esi),%eax
40349c:	ff 34 b8             	push   (%eax,%edi,4)
40349f:	e8 c8 db 01 00       	call   0x42106c
4034a4:	8b 46 04             	mov    0x4(%esi),%eax
4034a7:	59                   	pop    %ecx
4034a8:	83 24 b8 00          	andl   $0x0,(%eax,%edi,4)
4034ac:	47                   	inc    %edi
4034ad:	3b 7e 08             	cmp    0x8(%esi),%edi
4034b0:	72 e7                	jb     0x403499
4034b2:	ff 76 04             	push   0x4(%esi)
4034b5:	83 66 08 00          	andl   $0x0,0x8(%esi)
4034b9:	e8 ae db 01 00       	call   0x42106c
4034be:	59                   	pop    %ecx
4034bf:	5f                   	pop    %edi
4034c0:	5e                   	pop    %esi
4034c1:	c3                   	ret
4034c2:	55                   	push   %ebp
4034c3:	8b ec                	mov    %esp,%ebp
4034c5:	53                   	push   %ebx
4034c6:	56                   	push   %esi
4034c7:	8b f1                	mov    %ecx,%esi
4034c9:	6a 04                	push   $0x4
4034cb:	5b                   	pop    %ebx
4034cc:	8b 46 0c             	mov    0xc(%esi),%eax
4034cf:	39 46 08             	cmp    %eax,0x8(%esi)
4034d2:	75 30                	jne    0x403504
4034d4:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
4034d7:	6a 08                	push   $0x8
4034d9:	58                   	pop    %eax
4034da:	3b c8                	cmp    %eax,%ecx
4034dc:	73 4c                	jae    0x40352a
4034de:	33 c9                	xor    %ecx,%ecx
4034e0:	89 46 0c             	mov    %eax,0xc(%esi)
4034e3:	f7 e3                	mul    %ebx
4034e5:	57                   	push   %edi
4034e6:	0f 90 c1             	seto   %cl
4034e9:	f7 d9                	neg    %ecx
4034eb:	0b c8                	or     %eax,%ecx
4034ed:	51                   	push   %ecx
4034ee:	e8 03 db 01 00       	call   0x420ff6
4034f3:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
4034f7:	8b f8                	mov    %eax,%edi
4034f9:	59                   	pop    %ecx
4034fa:	0f 85 79 9d 03 00    	jne    0x43d279
403500:	89 7e 04             	mov    %edi,0x4(%esi)
403503:	5f                   	pop    %edi
403504:	53                   	push   %ebx
403505:	e8 ec da 01 00       	call   0x420ff6
40350a:	8b d0                	mov    %eax,%edx
40350c:	59                   	pop    %ecx
40350d:	85 d2                	test   %edx,%edx
40350f:	74 1d                	je     0x40352e
403511:	8b 4d 08             	mov    0x8(%ebp),%ecx
403514:	8b 09                	mov    (%ecx),%ecx
403516:	89 0a                	mov    %ecx,(%edx)
403518:	8b 4e 08             	mov    0x8(%esi),%ecx
40351b:	8b 46 04             	mov    0x4(%esi),%eax
40351e:	89 14 88             	mov    %edx,(%eax,%ecx,4)
403521:	ff 46 08             	incl   0x8(%esi)
403524:	5e                   	pop    %esi
403525:	5b                   	pop    %ebx
403526:	5d                   	pop    %ebp
403527:	c2 04 00             	ret    $0x4
40352a:	8b c1                	mov    %ecx,%eax
40352c:	eb b0                	jmp    0x4034de
40352e:	33 d2                	xor    %edx,%edx
403530:	eb e6                	jmp    0x403518
403532:	56                   	push   %esi
403533:	8b f1                	mov    %ecx,%esi
403535:	ff 4e 08             	decl   0x8(%esi)
403538:	8b 56 08             	mov    0x8(%esi),%edx
40353b:	8b 46 04             	mov    0x4(%esi),%eax
40353e:	ff 34 90             	push   (%eax,%edx,4)
403541:	e8 26 db 01 00       	call   0x42106c
403546:	8b 46 04             	mov    0x4(%esi),%eax
403549:	59                   	pop    %ecx