4085c0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4085c3:	f7 6d f8             	imull  -0x8(%ebp)
4085c6:	33 d2                	xor    %edx,%edx
4085c8:	89 45 e8             	mov    %eax,-0x18(%ebp)
4085cb:	89 55 ec             	mov    %edx,-0x14(%ebp)
4085ce:	8b 45 f4             	mov    -0xc(%ebp),%eax
4085d1:	33 d2                	xor    %edx,%edx
4085d3:	52                   	push   %edx
4085d4:	50                   	push   %eax
4085d5:	8b 45 e8             	mov    -0x18(%ebp),%eax
4085d8:	8b 55 ec             	mov    -0x14(%ebp),%edx
4085db:	e8 8c c7 ff ff       	call   0x404d6c
4085e0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4085e3:	89 01                	mov    %eax,(%ecx)
4085e5:	89 51 04             	mov    %edx,0x4(%ecx)
4085e8:	8b 45 f0             	mov    -0x10(%ebp),%eax
4085eb:	33 d2                	xor    %edx,%edx
4085ed:	52                   	push   %edx
4085ee:	50                   	push   %eax
4085ef:	8b 45 e8             	mov    -0x18(%ebp),%eax
4085f2:	8b 55 ec             	mov    -0x14(%ebp),%edx
4085f5:	e8 72 c7 ff ff       	call   0x404d6c
4085fa:	8b 4d 10             	mov    0x10(%ebp),%ecx
4085fd:	89 01                	mov    %eax,(%ecx)
4085ff:	89 51 04             	mov    %edx,0x4(%ecx)
408602:	8b c3                	mov    %ebx,%eax
408604:	5b                   	pop    %ebx
408605:	8b e5                	mov    %ebp,%esp
408607:	5d                   	pop    %ebp
408608:	c2 10 00             	ret    $0x10
40860b:	90                   	nop
40860c:	89 fa                	mov    %edi,%edx
40860e:	89 c7                	mov    %eax,%edi
408610:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
408615:	32 c0                	xor    %al,%al
408617:	f2 ae                	repnz scas %es:(%edi),%al
408619:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
40861e:	29 c8                	sub    %ecx,%eax
408620:	89 d7                	mov    %edx,%edi
408622:	c3                   	ret
408623:	90                   	nop
408624:	89 fa                	mov    %edi,%edx
408626:	89 c7                	mov    %eax,%edi
408628:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
40862d:	32 c0                	xor    %al,%al
40862f:	f2 ae                	repnz scas %es:(%edi),%al
408631:	8d 47 ff             	lea    -0x1(%edi),%eax
408634:	89 d7                	mov    %edx,%edi
408636:	c3                   	ret
408637:	90                   	nop
408638:	56                   	push   %esi
408639:	8b f0                	mov    %eax,%esi
40863b:	92                   	xchg   %eax,%edx
40863c:	e8 77 a2 ff ff       	call   0x4028b8
408641:	8b c6                	mov    %esi,%eax
408643:	5e                   	pop    %esi
408644:	c3                   	ret
408645:	8d 40 00             	lea    0x0(%eax),%eax
408648:	57                   	push   %edi
408649:	56                   	push   %esi
40864a:	89 c6                	mov    %eax,%esi
40864c:	89 d7                	mov    %edx,%edi
40864e:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
408653:	32 c0                	xor    %al,%al
408655:	f2 ae                	repnz scas %es:(%edi),%al
408657:	f7 d1                	not    %ecx
408659:	89 f7                	mov    %esi,%edi
40865b:	89 d6                	mov    %edx,%esi
40865d:	89 ca                	mov    %ecx,%edx
40865f:	89 f8                	mov    %edi,%eax
408661:	c1 e9 02             	shr    $0x2,%ecx
408664:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
408666:	89 d1                	mov    %edx,%ecx
408668:	83 e1 03             	and    $0x3,%ecx
40866b:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40866d:	5e                   	pop    %esi
40866e:	5f                   	pop    %edi
40866f:	c3                   	ret
408670:	57                   	push   %edi
408671:	56                   	push   %esi
408672:	53                   	push   %ebx
408673:	89 c6                	mov    %eax,%esi
408675:	89 d7                	mov    %edx,%edi
408677:	89 cb                	mov    %ecx,%ebx
408679:	32 c0                	xor    %al,%al
40867b:	85 c9                	test   %ecx,%ecx
40867d:	74 05                	je     0x408684
40867f:	f2 ae                	repnz scas %es:(%edi),%al
408681:	75 01                	jne    0x408684
408683:	41                   	inc    %ecx
408684:	29 cb                	sub    %ecx,%ebx
408686:	89 f7                	mov    %esi,%edi
408688:	89 d6                	mov    %edx,%esi
40868a:	89 fa                	mov    %edi,%edx
40868c:	89 d9                	mov    %ebx,%ecx
40868e:	c1 e9 02             	shr    $0x2,%ecx
408691:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
408693:	89 d9                	mov    %ebx,%ecx
408695:	83 e1 03             	and    $0x3,%ecx
408698:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40869a:	aa                   	stos   %al,%es:(%edi)
40869b:	89 d0                	mov    %edx,%eax
40869d:	5b                   	pop    %ebx
40869e:	5e                   	pop    %esi
40869f:	5f                   	pop    %edi
4086a0:	c3                   	ret
4086a1:	8d 40 00             	lea    0x0(%eax),%eax
4086a4:	53                   	push   %ebx
4086a5:	56                   	push   %esi
4086a6:	8b da                	mov    %edx,%ebx
4086a8:	8b f0                	mov    %eax,%esi
4086aa:	8b c3                	mov    %ebx,%eax
4086ac:	e8 a7 bb ff ff       	call   0x404258
4086b1:	50                   	push   %eax
4086b2:	8b c3                	mov    %ebx,%eax
4086b4:	e8 9f bd ff ff       	call   0x404458
4086b9:	8b d0                	mov    %eax,%edx
4086bb:	8b c6                	mov    %esi,%eax
4086bd:	59                   	pop    %ecx
4086be:	e8 ad ff ff ff       	call   0x408670
4086c3:	5e                   	pop    %esi
4086c4:	5b                   	pop    %ebx
4086c5:	c3                   	ret
4086c6:	8b c0                	mov    %eax,%eax
4086c8:	53                   	push   %ebx
4086c9:	56                   	push   %esi
4086ca:	57                   	push   %edi
4086cb:	8b f9                	mov    %ecx,%edi
4086cd:	8b f2                	mov    %edx,%esi
4086cf:	8b d8                	mov    %eax,%ebx
4086d1:	8b c6                	mov    %esi,%eax
4086d3:	e8 80 bd ff ff       	call   0x404458
4086d8:	8b d0                	mov    %eax,%edx
4086da:	8b cf                	mov    %edi,%ecx
4086dc:	8b c3                	mov    %ebx,%eax
4086de:	e8 8d ff ff ff       	call   0x408670
4086e3:	5f                   	pop    %edi
4086e4:	5e                   	pop    %esi
4086e5:	5b                   	pop    %ebx
4086e6:	c3                   	ret
4086e7:	90                   	nop
4086e8:	57                   	push   %edi
4086e9:	56                   	push   %esi
4086ea:	89 d7                	mov    %edx,%edi
4086ec:	89 c6                	mov    %eax,%esi
4086ee:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
4086f3:	31 c0                	xor    %eax,%eax
4086f5:	f2 ae                	repnz scas %es:(%edi),%al
4086f7:	f7 d1                	not    %ecx
4086f9:	89 d7                	mov    %edx,%edi
4086fb:	31 d2                	xor    %edx,%edx
4086fd:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
4086ff:	8a 46 ff             	mov    -0x1(%esi),%al
408702:	8a 57 ff             	mov    -0x1(%edi),%dl
408705:	29 d0                	sub    %edx,%eax
408707:	5e                   	pop    %esi
408708:	5f                   	pop    %edi
408709:	c3                   	ret
40870a:	8b c0                	mov    %eax,%eax
40870c:	57                   	push   %edi
40870d:	56                   	push   %esi
40870e:	89 d7                	mov    %edx,%edi
408710:	89 c6                	mov    %eax,%esi
408712:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
408717:	31 c0                	xor    %eax,%eax
408719:	f2 ae                	repnz scas %es:(%edi),%al
40871b:	f7 d1                	not    %ecx
40871d:	89 d7                	mov    %edx,%edi
40871f:	31 d2                	xor    %edx,%edx
408721:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
408723:	74 21                	je     0x408746
408725:	8a 46 ff             	mov    -0x1(%esi),%al
408728:	3c 61                	cmp    $0x61,%al
40872a:	72 06                	jb     0x408732
40872c:	3c 7a                	cmp    $0x7a,%al
40872e:	77 02                	ja     0x408732
408730:	2c 20                	sub    $0x20,%al
408732:	8a 57 ff             	mov    -0x1(%edi),%dl
408735:	80 fa 61             	cmp    $0x61,%dl
408738:	72 08                	jb     0x408742
40873a:	80 fa 7a             	cmp    $0x7a,%dl
40873d:	77 03                	ja     0x408742
40873f:	80 ea 20             	sub    $0x20,%dl
408742:	29 d0                	sub    %edx,%eax
408744:	74 db                	je     0x408721
408746:	5e                   	pop    %esi
408747:	5f                   	pop    %edi
408748:	c3                   	ret
408749:	8d 40 00             	lea    0x0(%eax),%eax
40874c:	57                   	push   %edi
40874d:	56                   	push   %esi
40874e:	53                   	push   %ebx
40874f:	89 d7                	mov    %edx,%edi
408751:	89 c6                	mov    %eax,%esi
408753:	89 cb                	mov    %ecx,%ebx
408755:	31 c0                	xor    %eax,%eax
408757:	09 c9                	or     %ecx,%ecx
408759:	74 2f                	je     0x40878a
40875b:	f2 ae                	repnz scas %es:(%edi),%al
40875d:	29 cb                	sub    %ecx,%ebx
40875f:	89 d9                	mov    %ebx,%ecx
408761:	89 d7                	mov    %edx,%edi
408763:	31 d2                	xor    %edx,%edx
408765:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
408767:	74 21                	je     0x40878a
408769:	8a 46 ff             	mov    -0x1(%esi),%al
40876c:	3c 61                	cmp    $0x61,%al
40876e:	72 06                	jb     0x408776
408770:	3c 7a                	cmp    $0x7a,%al
408772:	77 02                	ja     0x408776
408774:	2c 20                	sub    $0x20,%al
408776:	8a 57 ff             	mov    -0x1(%edi),%dl
408779:	80 fa 61             	cmp    $0x61,%dl
40877c:	72 08                	jb     0x408786
40877e:	80 fa 7a             	cmp    $0x7a,%dl
408781:	77 03                	ja     0x408786
408783:	80 ea 20             	sub    $0x20,%dl
408786:	29 d0                	sub    %edx,%eax
408788:	74 db                	je     0x408765
40878a:	5b                   	pop    %ebx
40878b:	5e                   	pop    %esi
40878c:	5f                   	pop    %edi
40878d:	c3                   	ret
40878e:	8b c0                	mov    %eax,%eax
408790:	eb 08                	jmp    0x40879a
408792:	84 c9                	test   %cl,%cl
408794:	75 03                	jne    0x408799
408796:	33 c0                	xor    %eax,%eax
408798:	c3                   	ret
408799:	40                   	inc    %eax
40879a:	8a 08                	mov    (%eax),%cl
40879c:	3a d1                	cmp    %cl,%dl
40879e:	75 f2                	jne    0x408792
4087a0:	c3                   	ret
4087a1:	8d 40 00             	lea    0x0(%eax),%eax
4087a4:	57                   	push   %edi
4087a5:	56                   	push   %esi
4087a6:	53                   	push   %ebx
4087a7:	09 c0                	or     %eax,%eax
4087a9:	74 44                	je     0x4087ef
4087ab:	09 d2                	or     %edx,%edx
4087ad:	74 40                	je     0x4087ef
4087af:	89 c3                	mov    %eax,%ebx
4087b1:	89 d7                	mov    %edx,%edi
4087b3:	32 c0                	xor    %al,%al
4087b5:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
4087ba:	f2 ae                	repnz scas %es:(%edi),%al
4087bc:	f7 d1                	not    %ecx
4087be:	49                   	dec    %ecx
4087bf:	74 2e                	je     0x4087ef
4087c1:	89 ce                	mov    %ecx,%esi
4087c3:	89 df                	mov    %ebx,%edi
4087c5:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
4087ca:	f2 ae                	repnz scas %es:(%edi),%al
4087cc:	f7 d1                	not    %ecx
4087ce:	29 f1                	sub    %esi,%ecx
4087d0:	76 1d                	jbe    0x4087ef
4087d2:	89 df                	mov    %ebx,%edi
4087d4:	8d 5e ff             	lea    -0x1(%esi),%ebx
4087d7:	89 d6                	mov    %edx,%esi
4087d9:	ac                   	lods   %ds:(%esi),%al
4087da:	f2 ae                	repnz scas %es:(%edi),%al
4087dc:	75 11                	jne    0x4087ef
4087de:	89 c8                	mov    %ecx,%eax
4087e0:	57                   	push   %edi
4087e1:	89 d9                	mov    %ebx,%ecx
4087e3:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
4087e5:	5f                   	pop    %edi
4087e6:	89 c1                	mov    %eax,%ecx
4087e8:	75 ed                	jne    0x4087d7
4087ea:	8d 47 ff             	lea    -0x1(%edi),%eax
4087ed:	eb 02                	jmp    0x4087f1
4087ef:	31 c0                	xor    %eax,%eax
4087f1:	5b                   	pop    %ebx
4087f2:	5e                   	pop    %esi
4087f3:	5f                   	pop    %edi
4087f4:	c3                   	ret
4087f5:	8d 40 00             	lea    0x0(%eax),%eax
4087f8:	53                   	push   %ebx
4087f9:	56                   	push   %esi
4087fa:	8b f2                	mov    %edx,%esi
4087fc:	8b d8                	mov    %eax,%ebx
4087fe:	8b c6                	mov    %esi,%eax
408800:	8b d3                	mov    %ebx,%edx
408802:	e8 89 b9 ff ff       	call   0x404190
408807:	5e                   	pop    %esi
408808:	5b                   	pop    %ebx
408809:	c3                   	ret
40880a:	8b c0                	mov    %eax,%eax
40880c:	53                   	push   %ebx
40880d:	8b d8                	mov    %eax,%ebx
40880f:	83 c3 04             	add    $0x4,%ebx
408812:	8b c3                	mov    %ebx,%eax
408814:	e8 a3 9e ff ff       	call   0x4026bc
408819:	89 18                	mov    %ebx,(%eax)
40881b:	83 c0 04             	add    $0x4,%eax
40881e:	5b                   	pop    %ebx
40881f:	c3                   	ret
408820:	83 e8 04             	sub    $0x4,%eax
408823:	8b 00                	mov    (%eax),%eax
408825:	83 e8 04             	sub    $0x4,%eax
408828:	c3                   	ret
408829:	8d 40 00             	lea    0x0(%eax),%eax
40882c:	53                   	push   %ebx
40882d:	56                   	push   %esi
40882e:	8b d8                	mov    %eax,%ebx
408830:	85 db                	test   %ebx,%ebx
408832:	75 05                	jne    0x408839
408834:	33 c0                	xor    %eax,%eax
408836:	5e                   	pop    %esi
408837:	5b                   	pop    %ebx
408838:	c3                   	ret
408839:	8b c3                	mov    %ebx,%eax
40883b:	e8 cc fd ff ff       	call   0x40860c
408840:	8b f0                	mov    %eax,%esi
408842:	46                   	inc    %esi
408843:	8b c6                	mov    %esi,%eax
408845:	e8 c2 ff ff ff       	call   0x40880c
40884a:	8b ce                	mov    %esi,%ecx
40884c:	8b d3                	mov    %ebx,%edx
40884e:	e8 e5 fd ff ff       	call   0x408638
408853:	5e                   	pop    %esi
408854:	5b                   	pop    %ebx
408855:	c3                   	ret
408856:	8b c0                	mov    %eax,%eax
408858:	85 c0                	test   %eax,%eax
40885a:	74 0a                	je     0x408866
40885c:	83 e8 04             	sub    $0x4,%eax
40885f:	8b 10                	mov    (%eax),%edx
408861:	e8 76 9e ff ff       	call   0x4026dc
408866:	c3                   	ret
408867:	90                   	nop
408868:	53                   	push   %ebx
408869:	56                   	push   %esi
40886a:	57                   	push   %edi
40886b:	83 c4 d8             	add    $0xffffffd8,%esp
40886e:	8b d9                	mov    %ecx,%ebx
408870:	8b f2                	mov    %edx,%esi
408872:	8b f8                	mov    %eax,%edi
408874:	83 fb 1f             	cmp    $0x1f,%ebx
408877:	76 05                	jbe    0x40887e
408879:	bb 1f 00 00 00       	mov    $0x1f,%ebx
40887e:	8b d3                	mov    %ebx,%edx
408880:	4a                   	dec    %edx
408881:	8b c6                	mov    %esi,%eax
408883:	e8 b8 36 00 00       	call   0x40bf40
408888:	3c 01                	cmp    $0x1,%al
40888a:	75 01                	jne    0x40888d
40888c:	4b                   	dec    %ebx
40888d:	8b c4                	mov    %esp,%eax