43727f:	8b da                	mov    %edx,%ebx
437281:	8b f0                	mov    %eax,%esi
437283:	8b 46 48             	mov    0x48(%esi),%eax
437286:	e8 69 c6 fc ff       	call   0x4038f4
43728b:	8b d3                	mov    %ebx,%edx
43728d:	80 e2 fc             	and    $0xfc,%dl
437290:	8b c6                	mov    %esi,%eax
437292:	e8 4d c6 fc ff       	call   0x4038e4
437297:	84 db                	test   %bl,%bl
437299:	7e 07                	jle    0x4372a2
43729b:	8b c6                	mov    %esi,%eax
43729d:	e8 c6 c9 fc ff       	call   0x403c68
4372a2:	5e                   	pop    %esi
4372a3:	5b                   	pop    %ebx
4372a4:	c3                   	ret
4372a5:	8d 40 00             	lea    0x0(%eax),%eax
4372a8:	53                   	push   %ebx
4372a9:	56                   	push   %esi
4372aa:	57                   	push   %edi
4372ab:	8b f2                	mov    %edx,%esi
4372ad:	8b d8                	mov    %eax,%ebx
4372af:	8b d6                	mov    %esi,%edx
4372b1:	8b c3                	mov    %ebx,%eax
4372b3:	e8 6c fe ff ff       	call   0x437124
4372b8:	8b c6                	mov    %esi,%eax
4372ba:	8b 15 1c 46 43 00    	mov    0x43461c,%edx
4372c0:	e8 bb c7 fc ff       	call   0x403a80
4372c5:	84 c0                	test   %al,%al
4372c7:	74 39                	je     0x437302
4372c9:	8b c6                	mov    %esi,%eax
4372cb:	0f b6 50 5c          	movzbl 0x5c(%eax),%edx
4372cf:	88 53 5c             	mov    %dl,0x5c(%ebx)
4372d2:	8b 50 60             	mov    0x60(%eax),%edx
4372d5:	89 53 60             	mov    %edx,0x60(%ebx)
4372d8:	0f b6 50 74          	movzbl 0x74(%eax),%edx
4372dc:	88 53 74             	mov    %dl,0x74(%ebx)
4372df:	56                   	push   %esi
4372e0:	8d 70 4c             	lea    0x4c(%eax),%esi
4372e3:	8d 7b 4c             	lea    0x4c(%ebx),%edi
4372e6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4372e7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4372e8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4372e9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4372ea:	5e                   	pop    %esi
4372eb:	56                   	push   %esi
4372ec:	8d 70 64             	lea    0x64(%eax),%esi
4372ef:	8d 7b 64             	lea    0x64(%ebx),%edi
4372f2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4372f3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4372f4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4372f5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4372f6:	5e                   	pop    %esi
4372f7:	8b 50 48             	mov    0x48(%eax),%edx
4372fa:	8b 43 48             	mov    0x48(%ebx),%eax
4372fd:	8b 08                	mov    (%eax),%ecx
4372ff:	ff 51 08             	call   *0x8(%ecx)
437302:	5f                   	pop    %edi
437303:	5e                   	pop    %esi
437304:	5b                   	pop    %ebx
437305:	c3                   	ret
437306:	8b c0                	mov    %eax,%eax
437308:	55                   	push   %ebp
437309:	8b ec                	mov    %esp,%ebp
43730b:	56                   	push   %esi
43730c:	8b f0                	mov    %eax,%esi
43730e:	8b 45 08             	mov    0x8(%ebp),%eax
437311:	50                   	push   %eax
437312:	8b 46 40             	mov    0x40(%esi),%eax
437315:	66 be e5 ff          	mov    $0xffe5,%si
437319:	e8 d2 c7 fc ff       	call   0x403af0
43731e:	5e                   	pop    %esi
43731f:	5d                   	pop    %ebp
437320:	c2 04 00             	ret    $0x4
437323:	90                   	nop
437324:	53                   	push   %ebx
437325:	56                   	push   %esi
437326:	8b da                	mov    %edx,%ebx
437328:	8b c8                	mov    %eax,%ecx
43732a:	8b c1                	mov    %ecx,%eax
43732c:	99                   	cltd
43732d:	33 c2                	xor    %edx,%eax
43732f:	2b c2                	sub    %edx,%eax
437331:	8b f0                	mov    %eax,%esi
437333:	8b c3                	mov    %ebx,%eax
437335:	99                   	cltd
437336:	33 c2                	xor    %edx,%eax
437338:	2b c2                	sub    %edx,%eax
43733a:	3b f0                	cmp    %eax,%esi
43733c:	7d 05                	jge    0x437343
43733e:	8b c1                	mov    %ecx,%eax
437340:	5e                   	pop    %esi
437341:	5b                   	pop    %ebx
437342:	c3                   	ret
437343:	8b c3                	mov    %ebx,%eax
437345:	5e                   	pop    %esi
437346:	5b                   	pop    %ebx
437347:	c3                   	ret
437348:	53                   	push   %ebx
437349:	56                   	push   %esi
43734a:	57                   	push   %edi
43734b:	83 c4 f0             	add    $0xfffffff0,%esp
43734e:	8b f2                	mov    %edx,%esi
437350:	8d 3c 24             	lea    (%esp),%edi
437353:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437354:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437355:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437356:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437357:	8b d8                	mov    %eax,%ebx
437359:	8b 43 10             	mov    0x10(%ebx),%eax
43735c:	8b 14 24             	mov    (%esp),%edx
43735f:	3b c2                	cmp    %edx,%eax
437361:	7c 06                	jl     0x437369
437363:	3b 44 24 08          	cmp    0x8(%esp),%eax
437367:	7e 14                	jle    0x43737d
437369:	2b d0                	sub    %eax,%edx
43736b:	8b 4c 24 08          	mov    0x8(%esp),%ecx
43736f:	2b c8                	sub    %eax,%ecx
437371:	8b c1                	mov    %ecx,%eax
437373:	92                   	xchg   %eax,%edx
437374:	e8 ab ff ff ff       	call   0x437324
437379:	8b f0                	mov    %eax,%esi
43737b:	eb 02                	jmp    0x43737f
43737d:	33 f6                	xor    %esi,%esi
43737f:	8b 43 14             	mov    0x14(%ebx),%eax
437382:	8b 54 24 04          	mov    0x4(%esp),%edx
437386:	3b c2                	cmp    %edx,%eax
437388:	7c 06                	jl     0x437390
43738a:	3b 44 24 0c          	cmp    0xc(%esp),%eax
43738e:	7e 12                	jle    0x4373a2
437390:	2b d0                	sub    %eax,%edx
437392:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
437396:	2b c8                	sub    %eax,%ecx
437398:	8b c1                	mov    %ecx,%eax
43739a:	92                   	xchg   %eax,%edx
43739b:	e8 84 ff ff ff       	call   0x437324
4373a0:	eb 02                	jmp    0x4373a4
4373a2:	33 c0                	xor    %eax,%eax
4373a4:	85 f6                	test   %esi,%esi
4373a6:	75 04                	jne    0x4373ac
4373a8:	85 c0                	test   %eax,%eax
4373aa:	74 0f                	je     0x4373bb
4373ac:	f7 d8                	neg    %eax
4373ae:	50                   	push   %eax
4373af:	f7 de                	neg    %esi
4373b1:	56                   	push   %esi
4373b2:	8d 43 4c             	lea    0x4c(%ebx),%eax
4373b5:	50                   	push   %eax
4373b6:	e8 15 fd fc ff       	call   0x4070d0
4373bb:	83 c4 10             	add    $0x10,%esp
4373be:	5f                   	pop    %edi
4373bf:	5e                   	pop    %esi
4373c0:	5b                   	pop    %ebx
4373c1:	c3                   	ret
4373c2:	8b c0                	mov    %eax,%eax
4373c4:	56                   	push   %esi
4373c5:	8b d0                	mov    %eax,%edx
4373c7:	8b 40 40             	mov    0x40(%eax),%eax
4373ca:	66 be db ff          	mov    $0xffdb,%si
4373ce:	e8 1d c7 fc ff       	call   0x403af0
4373d3:	5e                   	pop    %esi
4373d4:	c3                   	ret
4373d5:	8d 40 00             	lea    0x0(%eax),%eax
4373d8:	56                   	push   %esi
4373d9:	8b d0                	mov    %eax,%edx
4373db:	8b 40 40             	mov    0x40(%eax),%eax
4373de:	66 be da ff          	mov    $0xffda,%si
4373e2:	e8 09 c7 fc ff       	call   0x403af0
4373e7:	5e                   	pop    %esi
4373e8:	c3                   	ret
4373e9:	8d 40 00             	lea    0x0(%eax),%eax
4373ec:	55                   	push   %ebp
4373ed:	8b ec                	mov    %esp,%ebp
4373ef:	33 c0                	xor    %eax,%eax
4373f1:	5d                   	pop    %ebp
4373f2:	c2 04 00             	ret    $0x4
4373f5:	8d 40 00             	lea    0x0(%eax),%eax
4373f8:	b0 01                	mov    $0x1,%al
4373fa:	c3                   	ret
4373fb:	90                   	nop
4373fc:	b8 04 00 00 00       	mov    $0x4,%eax
437401:	c3                   	ret
437402:	8b c0                	mov    %eax,%eax
437404:	c3                   	ret
437405:	8d 40 00             	lea    0x0(%eax),%eax
437408:	55                   	push   %ebp
437409:	8b ec                	mov    %esp,%ebp
43740b:	83 c4 f0             	add    $0xfffffff0,%esp
43740e:	53                   	push   %ebx
43740f:	56                   	push   %esi
437410:	57                   	push   %edi
437411:	8b 5d 0c             	mov    0xc(%ebp),%ebx
437414:	8b 75 08             	mov    0x8(%ebp),%esi
437417:	8b fb                	mov    %ebx,%edi
437419:	3b 77 04             	cmp    0x4(%edi),%esi
43741c:	75 04                	jne    0x437422
43741e:	33 c0                	xor    %eax,%eax
437420:	eb 46                	jmp    0x437468
437422:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
437426:	75 20                	jne    0x437448
437428:	8d 45 f0             	lea    -0x10(%ebp),%eax
43742b:	50                   	push   %eax
43742c:	56                   	push   %esi
43742d:	e8 b6 fb fc ff       	call   0x406fe8
437432:	ff 77 10             	push   0x10(%edi)
437435:	ff 77 0c             	push   0xc(%edi)
437438:	8d 45 f0             	lea    -0x10(%ebp),%eax
43743b:	50                   	push   %eax
43743c:	e8 b7 fc fc ff       	call   0x4070f8
437441:	85 c0                	test   %eax,%eax
437443:	74 03                	je     0x437448
437445:	89 77 08             	mov    %esi,0x8(%edi)
437448:	8b d3                	mov    %ebx,%edx
43744a:	3b 72 08             	cmp    0x8(%edx),%esi
43744d:	75 08                	jne    0x437457
43744f:	33 c0                	xor    %eax,%eax
437451:	c6 42 14 01          	movb   $0x1,0x14(%edx)
437455:	eb 11                	jmp    0x437468
437457:	3b 32                	cmp    (%edx),%esi
437459:	75 0a                	jne    0x437465
43745b:	83 c8 ff             	or     $0xffffffff,%eax
43745e:	33 c9                	xor    %ecx,%ecx
437460:	89 4a 08             	mov    %ecx,0x8(%edx)
437463:	eb 03                	jmp    0x437468
437465:	83 c8 ff             	or     $0xffffffff,%eax
437468:	5f                   	pop    %edi
437469:	5e                   	pop    %esi
43746a:	5b                   	pop    %ebx
43746b:	8b e5                	mov    %ebp,%esp
43746d:	5d                   	pop    %ebp
43746e:	c2 08 00             	ret    $0x8
437471:	8d 40 00             	lea    0x0(%eax),%eax
437474:	55                   	push   %ebp
437475:	8b ec                	mov    %esp,%ebp
437477:	83 c4 c4             	add    $0xffffffc4,%esp
43747a:	53                   	push   %ebx
43747b:	56                   	push   %esi
43747c:	57                   	push   %edi
43747d:	8b d8                	mov    %eax,%ebx
43747f:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
437483:	8b 45 08             	mov    0x8(%ebp),%eax
437486:	83 c0 f7             	add    $0xfffffff7,%eax
437489:	e8 2e 04 00 00       	call   0x4378bc
43748e:	8b f0                	mov    %eax,%esi
437490:	89 75 ec             	mov    %esi,-0x14(%ebp)
437493:	6a 04                	push   $0x4
437495:	56                   	push   %esi
437496:	e8 25 fb fc ff       	call   0x406fc0
43749b:	8b 15 7c d6 46 00    	mov    0x46d67c,%edx
4374a1:	8b 12                	mov    (%edx),%edx
4374a3:	3b 42 30             	cmp    0x30(%edx),%eax
4374a6:	74 27                	je     0x4374cf
4374a8:	8b 45 ec             	mov    -0x14(%ebp),%eax
4374ab:	e8 4c f4 ff ff       	call   0x4368fc
4374b0:	8b f0                	mov    %eax,%esi
4374b2:	85 f6                	test   %esi,%esi
4374b4:	0f 84 48 01 00 00    	je     0x437602
4374ba:	eb 02                	jmp    0x4374be
4374bc:	8b f0                	mov    %eax,%esi
4374be:	8b 46 30             	mov    0x30(%esi),%eax
4374c1:	85 c0                	test   %eax,%eax
4374c3:	75 f7                	jne    0x4374bc
4374c5:	8b c6                	mov    %esi,%eax
4374c7:	e8 e4 a3 00 00       	call   0x4418b0
4374cc:	89 45 ec             	mov    %eax,-0x14(%ebp)
4374cf:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
4374d3:	0f 84 29 01 00 00    	je     0x437602
4374d9:	8b f3                	mov    %ebx,%esi
4374db:	eb 02                	jmp    0x4374df
4374dd:	8b f0                	mov    %eax,%esi
4374df:	8b 46 30             	mov    0x30(%esi),%eax
4374e2:	85 c0                	test   %eax,%eax
4374e4:	75 f7                	jne    0x4374dd
4374e6:	8b c6                	mov    %esi,%eax
4374e8:	e8 c3 a3 00 00       	call   0x4418b0
4374ed:	8b f8                	mov    %eax,%edi
4374ef:	89 7d e8             	mov    %edi,-0x18(%ebp)
4374f2:	3b 7d ec             	cmp    -0x14(%ebp),%edi
4374f5:	0f 84 07 01 00 00    	je     0x437602
4374fb:	8b 45 08             	mov    0x8(%ebp),%eax
4374fe:	8b 40 f0             	mov    -0x10(%eax),%eax
437501:	8b 40 30             	mov    0x30(%eax),%eax
437504:	85 c0                	test   %eax,%eax
437506:	74 1c                	je     0x437524
437508:	8b 55 08             	mov    0x8(%ebp),%edx
43750b:	8b f0                	mov    %eax,%esi
43750d:	eb 02                	jmp    0x437511
43750f:	8b f0                	mov    %eax,%esi
437511:	8b 46 30             	mov    0x30(%esi),%eax
437514:	85 c0                	test   %eax,%eax
437516:	75 f7                	jne    0x43750f
437518:	8b c6                	mov    %esi,%eax
43751a:	e8 91 a3 00 00       	call   0x4418b0
43751f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
437522:	eb 2a                	jmp    0x43754e
437524:	8b 45 08             	mov    0x8(%ebp),%eax
437527:	8b 40 f0             	mov    -0x10(%eax),%eax
43752a:	8b 15 68 5e 43 00    	mov    0x435e68,%edx
437530:	e8 4b c5 fc ff       	call   0x403a80
437535:	84 c0                	test   %al,%al
437537:	74 10                	je     0x437549
437539:	8b 45 08             	mov    0x8(%ebp),%eax
43753c:	8b 40 f0             	mov    -0x10(%eax),%eax
43753f:	e8 6c a3 00 00       	call   0x4418b0
437544:	89 45 e4             	mov    %eax,-0x1c(%ebp)
437547:	eb 05                	jmp    0x43754e
437549:	33 c0                	xor    %eax,%eax
43754b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
43754e:	c6 45 f8 00          	movb   $0x0,-0x8(%ebp)
437552:	8b 45 08             	mov    0x8(%ebp),%eax
437555:	8b 50 f7             	mov    -0x9(%eax),%edx
437558:	89 55 f0             	mov    %edx,-0x10(%ebp)
43755b:	8b 50 fb             	mov    -0x5(%eax),%edx
43755e:	89 55 f4             	mov    %edx,-0xc(%ebp)
437561:	8d 45 e4             	lea    -0x1c(%ebp),%eax
437564:	50                   	push   %eax
437565:	68 08 74 43 00       	push   $0x437408
43756a:	e8 19 f4 fc ff       	call   0x406988
43756f:	50                   	push   %eax
437570:	e8 d3 f8 fc ff       	call   0x406e48
437575:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
437579:	0f 84 83 00 00 00    	je     0x437602
43757f:	8d 45 d4             	lea    -0x2c(%ebp),%eax
437582:	50                   	push   %eax
437583:	8b 45 ec             	mov    -0x14(%ebp),%eax
437586:	50                   	push   %eax
437587:	e8 5c fa fc ff       	call   0x406fe8
43758c:	8b 45 08             	mov    0x8(%ebp),%eax
43758f:	83 c0 f7             	add    $0xfffffff7,%eax
437592:	50                   	push   %eax
437593:	8b 45 08             	mov    0x8(%ebp),%eax
437596:	48                   	dec    %eax
437597:	50                   	push   %eax
437598:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
43759b:	8b 45 08             	mov    0x8(%ebp),%eax
43759e:	8b 50 f0             	mov    -0x10(%eax),%edx
4375a1:	8b c3                	mov    %ebx,%eax
4375a3:	66 be bc ff          	mov    $0xffbc,%si
4375a7:	e8 44 c5 fc ff       	call   0x403af0
4375ac:	a1 14 15 47 00       	mov    0x471514,%eax
4375b1:	8b 15 1c 46 43 00    	mov    0x43461c,%edx
4375b7:	e8 c4 c4 fc ff       	call   0x403a80
4375bc:	84 c0                	test   %al,%al
4375be:	74 29                	je     0x4375e9
4375c0:	a1 14 15 47 00       	mov    0x471514,%eax
4375c5:	8b 40 40             	mov    0x40(%eax),%eax
4375c8:	83 b8 94 00 00 00 00 	cmpl   $0x0,0x94(%eax)
4375cf:	74 18                	je     0x4375e9
4375d1:	a1 14 15 47 00       	mov    0x471514,%eax
4375d6:	8b 40 40             	mov    0x40(%eax),%eax
4375d9:	8b 80 94 00 00 00    	mov    0x94(%eax),%eax