40273d:	53                   	push   %ebx
40273e:	ff d6                	call   *%esi
402740:	85 c0                	test   %eax,%eax
402742:	74 5c                	je     0x4027a0
402744:	ff 75 08             	push   0x8(%ebp)
402747:	ff d6                	call   *%esi
402749:	85 c0                	test   %eax,%eax
40274b:	74 53                	je     0x4027a0
40274d:	8b 35 10 41 40 00    	mov    0x404110,%esi
402753:	57                   	push   %edi
402754:	53                   	push   %ebx
402755:	ff d6                	call   *%esi
402757:	ff 75 08             	push   0x8(%ebp)
40275a:	ff d6                	call   *%esi
40275c:	8b 35 c0 40 40 00    	mov    0x4040c0,%esi
402762:	bf 04 01 00 00       	mov    $0x104,%edi
402767:	57                   	push   %edi
402768:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40276e:	50                   	push   %eax
40276f:	53                   	push   %ebx
402770:	ff d6                	call   *%esi
402772:	85 c0                	test   %eax,%eax
402774:	74 29                	je     0x40279f
402776:	57                   	push   %edi
402777:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
40277d:	50                   	push   %eax
40277e:	ff 75 08             	push   0x8(%ebp)
402781:	ff d6                	call   *%esi
402783:	85 c0                	test   %eax,%eax
402785:	74 18                	je     0x40279f
402787:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
40278d:	50                   	push   %eax
40278e:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
402794:	50                   	push   %eax
402795:	e8 18 08 00 00       	call   0x402fb2
40279a:	59                   	pop    %ecx
40279b:	59                   	pop    %ecx
40279c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40279f:	5f                   	pop    %edi
4027a0:	5e                   	pop    %esi
4027a1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4027a4:	c9                   	leave
4027a5:	c2 04 00             	ret    $0x4
4027a8:	55                   	push   %ebp
4027a9:	8b ec                	mov    %esp,%ebp
4027ab:	81 ec 04 01 00 00    	sub    $0x104,%esp
4027b1:	53                   	push   %ebx
4027b2:	56                   	push   %esi
4027b3:	33 db                	xor    %ebx,%ebx
4027b5:	33 f6                	xor    %esi,%esi
4027b7:	3b fb                	cmp    %ebx,%edi
4027b9:	0f 84 cd 00 00 00    	je     0x40288c
4027bf:	57                   	push   %edi
4027c0:	53                   	push   %ebx
4027c1:	53                   	push   %ebx
4027c2:	6a 23                	push   $0x23
4027c4:	53                   	push   %ebx
4027c5:	ff 15 04 41 40 00    	call   *0x404104
4027cb:	85 c0                	test   %eax,%eax
4027cd:	0f 88 b9 00 00 00    	js     0x40288c
4027d3:	6a 04                	push   $0x4
4027d5:	58                   	pop    %eax
4027d6:	e8 fb 08 00 00       	call   0x4030d6
4027db:	8b f4                	mov    %esp,%esi
4027dd:	3b f3                	cmp    %ebx,%esi
4027df:	74 13                	je     0x4027f4
4027e1:	68 93 00 00 00       	push   $0x93
4027e6:	6a 02                	push   $0x2
4027e8:	8b c6                	mov    %esi,%eax
4027ea:	ba 1c 5a 40 00       	mov    $0x405a1c,%edx
4027ef:	e8 69 01 00 00       	call   0x40295d
4027f4:	6a ff                	push   $0xffffffff
4027f6:	e8 4b 03 00 00       	call   0x402b46
4027fb:	50                   	push   %eax
4027fc:	56                   	push   %esi
4027fd:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
402803:	68 04 01 00 00       	push   $0x104
402808:	50                   	push   %eax
402809:	ff 15 88 41 40 00    	call   *0x404188
40280f:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
402815:	83 c4 10             	add    $0x10,%esp
402818:	8d 50 01             	lea    0x1(%eax),%edx
40281b:	8a 08                	mov    (%eax),%cl
40281d:	40                   	inc    %eax
40281e:	3a cb                	cmp    %bl,%cl
402820:	75 f9                	jne    0x40281b
402822:	2b c2                	sub    %edx,%eax
402824:	83 f8 06             	cmp    $0x6,%eax
402827:	72 cb                	jb     0x4027f4
402829:	38 9d fc fe ff ff    	cmp    %bl,-0x104(%ebp)
40282f:	74 24                	je     0x402855
402831:	8d 8d fc fe ff ff    	lea    -0x104(%ebp),%ecx
402837:	0f be 01             	movsbl (%ecx),%eax
40283a:	8d 50 d0             	lea    -0x30(%eax),%edx
40283d:	81 e2 01 00 00 80    	and    $0x80000001,%edx
402843:	79 05                	jns    0x40284a
402845:	4a                   	dec    %edx
402846:	83 ca fe             	or     $0xfffffffe,%edx
402849:	42                   	inc    %edx
40284a:	74 04                	je     0x402850
40284c:	04 31                	add    $0x31,%al
40284e:	88 01                	mov    %al,(%ecx)
402850:	41                   	inc    %ecx
402851:	38 19                	cmp    %bl,(%ecx)
402853:	75 e2                	jne    0x402837
402855:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40285b:	50                   	push   %eax
40285c:	57                   	push   %edi
40285d:	e8 e5 01 00 00       	call   0x402a47
402862:	6a 08                	push   $0x8
402864:	58                   	pop    %eax
402865:	e8 6c 08 00 00       	call   0x4030d6
40286a:	8b c4                	mov    %esp,%eax
40286c:	3b c3                	cmp    %ebx,%eax
40286e:	74 11                	je     0x402881
402870:	68 8b 00 00 00       	push   $0x8b
402875:	6a 04                	push   $0x4
402877:	ba ec 55 40 00       	mov    $0x4055ec,%edx
40287c:	e8 dc 00 00 00       	call   0x40295d
402881:	50                   	push   %eax
402882:	57                   	push   %edi
402883:	ff 15 1c 41 40 00    	call   *0x40411c
402889:	33 f6                	xor    %esi,%esi
40288b:	46                   	inc    %esi
40288c:	8b c6                	mov    %esi,%eax
40288e:	8d a5 f4 fe ff ff    	lea    -0x10c(%ebp),%esp
402894:	5e                   	pop    %esi
402895:	5b                   	pop    %ebx
402896:	c9                   	leave
402897:	c3                   	ret
402898:	55                   	push   %ebp
402899:	8b ec                	mov    %esp,%ebp
40289b:	81 ec 08 01 00 00    	sub    $0x108,%esp
4028a1:	57                   	push   %edi
4028a2:	33 ff                	xor    %edi,%edi
4028a4:	21 7d fc             	and    %edi,-0x4(%ebp)
4028a7:	39 7d 08             	cmp    %edi,0x8(%ebp)
4028aa:	74 76                	je     0x402922
4028ac:	56                   	push   %esi
4028ad:	68 04 01 00 00       	push   $0x104
4028b2:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
4028b8:	50                   	push   %eax
4028b9:	57                   	push   %edi
4028ba:	ff 15 90 40 40 00    	call   *0x404090
4028c0:	8d 45 fc             	lea    -0x4(%ebp),%eax
4028c3:	50                   	push   %eax
4028c4:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
4028ca:	50                   	push   %eax
4028cb:	e8 d9 f9 ff ff       	call   0x4022a9
4028d0:	8b f0                	mov    %eax,%esi
4028d2:	85 f6                	test   %esi,%esi
4028d4:	74 2e                	je     0x402904
4028d6:	39 7d fc             	cmp    %edi,-0x4(%ebp)
4028d9:	74 29                	je     0x402904
4028db:	56                   	push   %esi
4028dc:	ff 15 70 41 40 00    	call   *0x404170
4028e2:	8b f8                	mov    %eax,%edi
4028e4:	85 ff                	test   %edi,%edi
4028e6:	74 1c                	je     0x402904
4028e8:	6a ff                	push   $0xffffffff
4028ea:	e8 57 02 00 00       	call   0x402b46
4028ef:	56                   	push   %esi
4028f0:	ff 75 08             	push   0x8(%ebp)
4028f3:	89 47 58             	mov    %eax,0x58(%edi)
4028f6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4028f9:	e8 42 fa ff ff       	call   0x402340
4028fe:	8b f8                	mov    %eax,%edi
402900:	85 ff                	test   %edi,%edi
402902:	75 14                	jne    0x402918
402904:	6a 01                	push   $0x1
402906:	ff 75 08             	push   0x8(%ebp)
402909:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
40290f:	50                   	push   %eax
402910:	ff 15 e0 40 40 00    	call   *0x4040e0
402916:	8b f8                	mov    %eax,%edi
402918:	85 f6                	test   %esi,%esi
40291a:	74 05                	je     0x402921
40291c:	e8 f1 01 00 00       	call   0x402b12
402921:	5e                   	pop    %esi
402922:	8b c7                	mov    %edi,%eax
402924:	5f                   	pop    %edi
402925:	c9                   	leave
402926:	c2 04 00             	ret    $0x4
402929:	55                   	push   %ebp
40292a:	8b ec                	mov    %esp,%ebp
40292c:	83 ec 10             	sub    $0x10,%esp
40292f:	6a 04                	push   $0x4
402931:	c7 45 f0 23 00 00 00 	movl   $0x23,-0x10(%ebp)
402938:	c7 45 f4 1c 00 00 00 	movl   $0x1c,-0xc(%ebp)
40293f:	c7 45 f8 1a 00 00 00 	movl   $0x1a,-0x8(%ebp)
402946:	c7 45 fc 28 00 00 00 	movl   $0x28,-0x4(%ebp)
40294d:	e8 f4 01 00 00       	call   0x402b46
402952:	8b 44 85 f0          	mov    -0x10(%ebp,%eax,4),%eax
402956:	0d 00 80 00 00       	or     $0x8000,%eax
40295b:	c9                   	leave
40295c:	c3                   	ret
40295d:	55                   	push   %ebp
40295e:	8b ec                	mov    %esp,%ebp
402960:	53                   	push   %ebx
402961:	56                   	push   %esi
402962:	57                   	push   %edi
402963:	8b 7d 08             	mov    0x8(%ebp),%edi
402966:	85 ff                	test   %edi,%edi
402968:	74 14                	je     0x40297e
40296a:	8b f2                	mov    %edx,%esi
40296c:	8b c8                	mov    %eax,%ecx
40296e:	2b f0                	sub    %eax,%esi
402970:	8b d7                	mov    %edi,%edx
402972:	8a 1c 0e             	mov    (%esi,%ecx,1),%bl
402975:	32 5d 0c             	xor    0xc(%ebp),%bl
402978:	88 19                	mov    %bl,(%ecx)
40297a:	41                   	inc    %ecx
40297b:	4a                   	dec    %edx
40297c:	75 f4                	jne    0x402972
40297e:	33 d2                	xor    %edx,%edx
402980:	88 14 07             	mov    %dl,(%edi,%eax,1)
402983:	3b fa                	cmp    %edx,%edi
402985:	0f 86 8b 00 00 00    	jbe    0x402a16
40298b:	8d 1c 02             	lea    (%edx,%eax,1),%ebx
40298e:	8a 0b                	mov    (%ebx),%cl
402990:	80 f9 5c             	cmp    $0x5c,%cl
402993:	75 23                	jne    0x4029b8
402995:	8d 7c 02 01          	lea    0x1(%edx,%eax,1),%edi
402999:	38 0f                	cmp    %cl,(%edi)
40299b:	74 64                	je     0x402a01
40299d:	3a c9                	cmp    %cl,%cl
40299f:	75 17                	jne    0x4029b8
4029a1:	8d 7c 02 01          	lea    0x1(%edx,%eax,1),%edi
4029a5:	80 3f 72             	cmpb   $0x72,(%edi)
4029a8:	75 0e                	jne    0x4029b8
4029aa:	8b 4d 08             	mov    0x8(%ebp),%ecx
4029ad:	2b ca                	sub    %edx,%ecx
4029af:	8d 74 02 02          	lea    0x2(%edx,%eax,1),%esi
4029b3:	c6 03 0d             	movb   $0xd,(%ebx)
4029b6:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4029b8:	80 3b 5c             	cmpb   $0x5c,(%ebx)
4029bb:	75 4f                	jne    0x402a0c
4029bd:	8d 7c 02 01          	lea    0x1(%edx,%eax,1),%edi
4029c1:	80 3f 6e             	cmpb   $0x6e,(%edi)
4029c4:	75 0e                	jne    0x4029d4
4029c6:	8b 4d 08             	mov    0x8(%ebp),%ecx
4029c9:	2b ca                	sub    %edx,%ecx
4029cb:	8d 74 02 02          	lea    0x2(%edx,%eax,1),%esi
4029cf:	c6 03 0a             	movb   $0xa,(%ebx)
4029d2:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4029d4:	80 3b 5c             	cmpb   $0x5c,(%ebx)
4029d7:	75 33                	jne    0x402a0c
4029d9:	8d 7c 02 01          	lea    0x1(%edx,%eax,1),%edi
4029dd:	80 3f 74             	cmpb   $0x74,(%edi)
4029e0:	75 0e                	jne    0x4029f0
4029e2:	8b 4d 08             	mov    0x8(%ebp),%ecx
4029e5:	2b ca                	sub    %edx,%ecx
4029e7:	8d 74 02 02          	lea    0x2(%edx,%eax,1),%esi
4029eb:	c6 03 09             	movb   $0x9,(%ebx)
4029ee:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4029f0:	80 3b 5c             	cmpb   $0x5c,(%ebx)
4029f3:	75 17                	jne    0x402a0c
4029f5:	8d 7c 02 01          	lea    0x1(%edx,%eax,1),%edi
4029f9:	80 3f 22             	cmpb   $0x22,(%edi)
4029fc:	75 0e                	jne    0x402a0c
4029fe:	c6 03 22             	movb   $0x22,(%ebx)
402a01:	8b 4d 08             	mov    0x8(%ebp),%ecx
402a04:	2b ca                	sub    %edx,%ecx
402a06:	8d 74 02 02          	lea    0x2(%edx,%eax,1),%esi
402a0a:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
402a0c:	42                   	inc    %edx
402a0d:	3b 55 08             	cmp    0x8(%ebp),%edx
402a10:	0f 82 75 ff ff ff    	jb     0x40298b
402a16:	5f                   	pop    %edi
402a17:	5e                   	pop    %esi
402a18:	5b                   	pop    %ebx
402a19:	5d                   	pop    %ebp
402a1a:	c2 08 00             	ret    $0x8
402a1d:	55                   	push   %ebp
402a1e:	8b ec                	mov    %esp,%ebp
402a20:	56                   	push   %esi
402a21:	33 f6                	xor    %esi,%esi
402a23:	39 75 08             	cmp    %esi,0x8(%ebp)
402a26:	7e 15                	jle    0x402a3d
402a28:	6a 19                	push   $0x19
402a2a:	e8 17 01 00 00       	call   0x402b46
402a2f:	04 61                	add    $0x61,%al
402a31:	88 86 b8 a9 42 00    	mov    %al,0x42a9b8(%esi)
402a37:	46                   	inc    %esi
402a38:	3b 75 08             	cmp    0x8(%ebp),%esi
402a3b:	7c eb                	jl     0x402a28
402a3d:	b8 b8 a9 42 00       	mov    $0x42a9b8,%eax
402a42:	5e                   	pop    %esi
402a43:	5d                   	pop    %ebp
402a44:	c2 04 00             	ret    $0x4
402a47:	55                   	push   %ebp
402a48:	8b ec                	mov    %esp,%ebp
402a4a:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
402a4e:	74 15                	je     0x402a65
402a50:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
402a54:	74 0f                	je     0x402a65
402a56:	ff 75 0c             	push   0xc(%ebp)
402a59:	ff 75 08             	push   0x8(%ebp)
402a5c:	ff 75 08             	push   0x8(%ebp)
402a5f:	ff 15 24 41 40 00    	call   *0x404124
402a65:	5d                   	pop    %ebp
402a66:	c2 08 00             	ret    $0x8
402a69:	6a 0c                	push   $0xc
402a6b:	68 18 46 40 00       	push   $0x404618
402a70:	e8 43 05 00 00       	call   0x402fb8
402a75:	8b 45 08             	mov    0x8(%ebp),%eax
402a78:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
402a7c:	85 c0                	test   %eax,%eax
402a7e:	74 38                	je     0x402ab8
402a80:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402a84:	8b 48 f8             	mov    -0x8(%eax),%ecx
402a87:	8d 14 01             	lea    (%ecx,%eax,1),%edx
402a8a:	85 c9                	test   %ecx,%ecx
402a8c:	75 08                	jne    0x402a96
402a8e:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
402a92:	33 c0                	xor    %eax,%eax
402a94:	eb 25                	jmp    0x402abb
402a96:	b9 ab ba ba ab       	mov    $0xabbabaab,%ecx
402a9b:	39 48 fc             	cmp    %ecx,-0x4(%eax)
402a9e:	75 14                	jne    0x402ab4
402aa0:	39 0a                	cmp    %ecx,(%edx)
402aa2:	75 10                	jne    0x402ab4
402aa4:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
402aab:	eb 07                	jmp    0x402ab4
402aad:	33 c0                	xor    %eax,%eax
402aaf:	40                   	inc    %eax
402ab0:	c3                   	ret
402ab1:	8b 65 e8             	mov    -0x18(%ebp),%esp
402ab4:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
402ab8:	8b 45 e4             	mov    -0x1c(%ebp),%eax
402abb:	e8 31 05 00 00       	call   0x402ff1
402ac0:	c2 04 00             	ret    $0x4
402ac3:	57                   	push   %edi
402ac4:	33 ff                	xor    %edi,%edi
402ac6:	39 3d 10 a9 42 00    	cmp    %edi,0x42a910
402acc:	75 15                	jne    0x402ae3
402ace:	ff 15 58 40 40 00    	call   *0x404058
402ad4:	a3 2c a5 42 00       	mov    %eax,0x42a52c
402ad9:	c7 05 10 a9 42 00 01 	movl   $0x1,0x42a910
402ae0:	00 00 00
402ae3:	3b f7                	cmp    %edi,%esi
402ae5:	74 27                	je     0x402b0e
402ae7:	8d 46 0c             	lea    0xc(%esi),%eax
402aea:	50                   	push   %eax
402aeb:	6a 08                	push   $0x8
402aed:	ff 35 2c a5 42 00    	push   0x42a52c
402af3:	ff 15 64 40 40 00    	call   *0x404064
402af9:	3b c7                	cmp    %edi,%eax
402afb:	74 11                	je     0x402b0e
402afd:	b9 ab ba ba ab       	mov    $0xabbabaab,%ecx