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
402b02:	89 30                	mov    %esi,(%eax)
402b04:	89 48 04             	mov    %ecx,0x4(%eax)
402b07:	89 4c 30 08          	mov    %ecx,0x8(%eax,%esi,1)
402b0b:	8d 78 08             	lea    0x8(%eax),%edi
402b0e:	8b c7                	mov    %edi,%eax
402b10:	5f                   	pop    %edi
402b11:	c3                   	ret
402b12:	83 3d 10 a9 42 00 00 	cmpl   $0x0,0x42a910
402b19:	74 2a                	je     0x402b45
402b1b:	56                   	push   %esi
402b1c:	e8 48 ff ff ff       	call   0x402a69
402b21:	85 c0                	test   %eax,%eax
402b23:	74 20                	je     0x402b45
402b25:	8d 46 f8             	lea    -0x8(%esi),%eax
402b28:	8b 10                	mov    (%eax),%edx
402b2a:	50                   	push   %eax
402b2b:	b9 ad de ef be       	mov    $0xbeefdead,%ecx
402b30:	6a 00                	push   $0x0
402b32:	ff 35 2c a5 42 00    	push   0x42a52c
402b38:	89 48 04             	mov    %ecx,0x4(%eax)
402b3b:	89 4c 02 08          	mov    %ecx,0x8(%edx,%eax,1)
402b3f:	ff 15 60 40 40 00    	call   *0x404060
402b45:	c3                   	ret
402b46:	55                   	push   %ebp
402b47:	8b ec                	mov    %esp,%ebp
402b49:	0f 31                	rdtsc
402b4b:	31 05 00 50 40 00    	xor    %eax,0x405000
402b51:	ff 15 b8 40 40 00    	call   *0x4040b8
402b57:	31 05 00 50 40 00    	xor    %eax,0x405000
402b5d:	a1 00 50 40 00       	mov    0x405000,%eax
402b62:	33 d2                	xor    %edx,%edx
402b64:	f7 75 08             	divl   0x8(%ebp)
402b67:	8b c2                	mov    %edx,%eax
402b69:	5d                   	pop    %ebp
402b6a:	c2 04 00             	ret    $0x4
402b6d:	cc                   	int3
402b6e:	cc                   	int3
402b6f:	cc                   	int3
402b70:	60                   	pusha
402b71:	8b 74 24 24          	mov    0x24(%esp),%esi
402b75:	8b 4c 24 28          	mov    0x28(%esp),%ecx
402b79:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
402b7d:	85 f6                	test   %esi,%esi
402b7f:	74 66                	je     0x402be7
402b81:	85 ff                	test   %edi,%edi
402b83:	74 62                	je     0x402be7
402b85:	83 f9 18             	cmp    $0x18,%ecx
402b88:	72 5d                	jb     0x402be7
402b8a:	8b 1e                	mov    (%esi),%ebx
402b8c:	81 fb 41 50 33 32    	cmp    $0x32335041,%ebx
402b92:	75 53                	jne    0x402be7
402b94:	8b 5e 04             	mov    0x4(%esi),%ebx
402b97:	83 fb 18             	cmp    $0x18,%ebx
402b9a:	72 4b                	jb     0x402be7
402b9c:	29 d9                	sub    %ebx,%ecx
402b9e:	72 47                	jb     0x402be7
402ba0:	39 4e 08             	cmp    %ecx,0x8(%esi)
402ba3:	77 42                	ja     0x402be7
402ba5:	01 f3                	add    %esi,%ebx
402ba7:	ff 76 08             	push   0x8(%esi)
402baa:	53                   	push   %ebx
402bab:	e8 24 03 00 00       	call   0x402ed4
402bb0:	83 c4 08             	add    $0x8,%esp
402bb3:	3b 46 0c             	cmp    0xc(%esi),%eax
402bb6:	75 2f                	jne    0x402be7
402bb8:	8b 4c 24 30          	mov    0x30(%esp),%ecx
402bbc:	39 4e 10             	cmp    %ecx,0x10(%esi)
402bbf:	77 26                	ja     0x402be7
402bc1:	51                   	push   %ecx
402bc2:	57                   	push   %edi
402bc3:	ff 76 08             	push   0x8(%esi)
402bc6:	53                   	push   %ebx
402bc7:	e8 48 00 00 00       	call   0x402c14
402bcc:	83 c4 10             	add    $0x10,%esp
402bcf:	3b 46 10             	cmp    0x10(%esi),%eax
402bd2:	75 13                	jne    0x402be7
402bd4:	89 c3                	mov    %eax,%ebx
402bd6:	50                   	push   %eax
402bd7:	57                   	push   %edi
402bd8:	e8 f7 02 00 00       	call   0x402ed4
402bdd:	83 c4 08             	add    $0x8,%esp
402be0:	3b 46 14             	cmp    0x14(%esi),%eax
402be3:	89 d8                	mov    %ebx,%eax
402be5:	74 03                	je     0x402bea
402be7:	83 c8 ff             	or     $0xffffffff,%eax
402bea:	89 44 24 1c          	mov    %eax,0x1c(%esp)
402bee:	61                   	popa
402bef:	c3                   	ret
402bf0:	60                   	pusha
402bf1:	8b 74 24 24          	mov    0x24(%esp),%esi
402bf5:	8b 1e                	mov    (%esi),%ebx
402bf7:	83 c8 ff             	or     $0xffffffff,%eax
402bfa:	81 fb 41 50 33 32    	cmp    $0x32335041,%ebx
402c00:	75 0b                	jne    0x402c0d
402c02:	8b 5e 04             	mov    0x4(%esi),%ebx
402c05:	83 fb 18             	cmp    $0x18,%ebx
402c08:	72 03                	jb     0x402c0d
402c0a:	8b 46 10             	mov    0x10(%esi),%eax
402c0d:	89 44 24 1c          	mov    %eax,0x1c(%esp)
402c11:	61                   	popa
402c12:	c3                   	ret
402c13:	cc                   	int3
402c14:	60                   	pusha
402c15:	8b 74 24 24          	mov    0x24(%esp),%esi
402c19:	8b 44 24 28          	mov    0x28(%esp),%eax
402c1d:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
402c21:	8b 4c 24 30          	mov    0x30(%esp),%ecx
402c25:	50                   	push   %eax
402c26:	51                   	push   %ecx
402c27:	85 f6                	test   %esi,%esi
402c29:	0f 84 8e 02 00 00    	je     0x402ebd
402c2f:	85 ff                	test   %edi,%edi
402c31:	0f 84 86 02 00 00    	je     0x402ebd
402c37:	83 cd ff             	or     $0xffffffff,%ebp
402c3a:	fc                   	cld
402c3b:	31 d2                	xor    %edx,%edx
402c3d:	83 6c 24 04 01       	subl   $0x1,0x4(%esp)
402c42:	0f 82 75 02 00 00    	jb     0x402ebd
402c48:	8a 06                	mov    (%esi),%al
402c4a:	83 c6 01             	add    $0x1,%esi
402c4d:	83 2c 24 01          	subl   $0x1,(%esp)
402c51:	0f 82 66 02 00 00    	jb     0x402ebd
402c57:	88 07                	mov    %al,(%edi)
402c59:	83 c7 01             	add    $0x1,%edi
402c5c:	bb 02 00 00 00       	mov    $0x2,%ebx
402c61:	00 d2                	add    %dl,%dl
402c63:	75 12                	jne    0x402c77
402c65:	83 6c 24 04 01       	subl   $0x1,0x4(%esp)
402c6a:	0f 82 4d 02 00 00    	jb     0x402ebd
402c70:	8a 16                	mov    (%esi),%dl
402c72:	46                   	inc    %esi
402c73:	00 d2                	add    %dl,%dl
402c75:	fe c2                	inc    %dl
402c77:	73 c4                	jae    0x402c3d
402c79:	00 d2                	add    %dl,%dl
402c7b:	75 12                	jne    0x402c8f
402c7d:	83 6c 24 04 01       	subl   $0x1,0x4(%esp)
402c82:	0f 82 35 02 00 00    	jb     0x402ebd
402c88:	8a 16                	mov    (%esi),%dl
402c8a:	46                   	inc    %esi
402c8b:	00 d2                	add    %dl,%dl
402c8d:	fe c2                	inc    %dl
402c8f:	0f 83 ac 00 00 00    	jae    0x402d41
402c95:	31 c0                	xor    %eax,%eax
402c97:	00 d2                	add    %dl,%dl
402c99:	75 12                	jne    0x402cad
402c9b:	83 6c 24 04 01       	subl   $0x1,0x4(%esp)
402ca0:	0f 82 17 02 00 00    	jb     0x402ebd
402ca6:	8a 16                	mov    (%esi),%dl
402ca8:	46                   	inc    %esi
402ca9:	00 d2                	add    %dl,%dl
402cab:	fe c2                	inc    %dl
402cad:	0f 83 cf 01 00 00    	jae    0x402e82
402cb3:	00 d2                	add    %dl,%dl
402cb5:	75 12                	jne    0x402cc9
402cb7:	83 6c 24 04 01       	subl   $0x1,0x4(%esp)
402cbc:	0f 82 fb 01 00 00    	jb     0x402ebd
402cc2:	8a 16                	mov    (%esi),%dl
402cc4:	46                   	inc    %esi
402cc5:	00 d2                	add    %dl,%dl
402cc7:	fe c2                	inc    %dl
402cc9:	11 c0                	adc    %eax,%eax
402ccb:	00 d2                	add    %dl,%dl
402ccd:	75 12                	jne    0x402ce1
402ccf:	83 6c 24 04 01       	subl   $0x1,0x4(%esp)
402cd4:	0f 82 e3 01 00 00    	jb     0x402ebd
402cda:	8a 16                	mov    (%esi),%dl
402cdc:	46                   	inc    %esi
402cdd:	00 d2                	add    %dl,%dl
402cdf:	fe c2                	inc    %dl
402ce1:	11 c0                	adc    %eax,%eax
402ce3:	00 d2                	add    %dl,%dl
402ce5:	75 12                	jne    0x402cf9
402ce7:	83 6c 24 04 01       	subl   $0x1,0x4(%esp)
402cec:	0f 82 cb 01 00 00    	jb     0x402ebd