40abd6:	57                   	push   %edi
40abd7:	3b f3                	cmp    %ebx,%esi
40abd9:	74 49                	je     0x40ac24
40abdb:	8b 7d 08             	mov    0x8(%ebp),%edi
40abde:	85 ff                	test   %edi,%edi
40abe0:	74 42                	je     0x40ac24
40abe2:	66 39 0f             	cmp    %cx,(%edi)
40abe5:	74 3d                	je     0x40ac24
40abe7:	8b cf                	mov    %edi,%ecx
40abe9:	e8 0e bf ff ff       	call   0x406afc
40abee:	2b de                	sub    %esi,%ebx
40abf0:	89 45 fc             	mov    %eax,-0x4(%ebp)
40abf3:	3b d8                	cmp    %eax,%ebx
40abf5:	73 0c                	jae    0x40ac03
40abf7:	8b 45 0c             	mov    0xc(%ebp),%eax
40abfa:	85 c0                	test   %eax,%eax
40abfc:	74 2f                	je     0x40ac2d
40abfe:	83 20 00             	andl   $0x0,(%eax)
40ac01:	eb 2a                	jmp    0x40ac2d
40ac03:	85 c0                	test   %eax,%eax
40ac05:	74 10                	je     0x40ac17
40ac07:	50                   	push   %eax
40ac08:	57                   	push   %edi
40ac09:	8b d3                	mov    %ebx,%edx
40ac0b:	8b ce                	mov    %esi,%ecx
40ac0d:	e8 5e b7 ff ff       	call   0x406370
40ac12:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ac15:	59                   	pop    %ecx
40ac16:	59                   	pop    %ecx
40ac17:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ac1a:	85 c9                	test   %ecx,%ecx
40ac1c:	74 02                	je     0x40ac20
40ac1e:	89 31                	mov    %esi,(%ecx)
40ac20:	03 c6                	add    %esi,%eax
40ac22:	eb 0b                	jmp    0x40ac2f
40ac24:	8b 45 0c             	mov    0xc(%ebp),%eax
40ac27:	85 c0                	test   %eax,%eax
40ac29:	74 02                	je     0x40ac2d
40ac2b:	89 08                	mov    %ecx,(%eax)
40ac2d:	8b c6                	mov    %esi,%eax
40ac2f:	5f                   	pop    %edi
40ac30:	5e                   	pop    %esi
40ac31:	5b                   	pop    %ebx
40ac32:	c9                   	leave
40ac33:	c2 08 00             	ret    $0x8
40ac36:	8b ff                	mov    %edi,%edi
40ac38:	55                   	push   %ebp
40ac39:	8b ec                	mov    %esp,%ebp
40ac3b:	53                   	push   %ebx
40ac3c:	56                   	push   %esi
40ac3d:	57                   	push   %edi
40ac3e:	8b fa                	mov    %edx,%edi
40ac40:	8b f1                	mov    %ecx,%esi
40ac42:	3b f7                	cmp    %edi,%esi
40ac44:	74 42                	je     0x40ac88
40ac46:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ac49:	85 c9                	test   %ecx,%ecx
40ac4b:	74 3b                	je     0x40ac88
40ac4d:	80 39 00             	cmpb   $0x0,(%ecx)
40ac50:	74 36                	je     0x40ac88
40ac52:	8b d1                	mov    %ecx,%edx
40ac54:	8d 5a 01             	lea    0x1(%edx),%ebx
40ac57:	8a 02                	mov    (%edx),%al
40ac59:	42                   	inc    %edx
40ac5a:	84 c0                	test   %al,%al
40ac5c:	75 f9                	jne    0x40ac57
40ac5e:	2b d3                	sub    %ebx,%edx
40ac60:	2b fe                	sub    %esi,%edi
40ac62:	8d 5a 01             	lea    0x1(%edx),%ebx
40ac65:	3b fb                	cmp    %ebx,%edi
40ac67:	72 1f                	jb     0x40ac88
40ac69:	85 db                	test   %ebx,%ebx
40ac6b:	74 0d                	je     0x40ac7a
40ac6d:	53                   	push   %ebx
40ac6e:	51                   	push   %ecx
40ac6f:	8b d7                	mov    %edi,%edx
40ac71:	8b ce                	mov    %esi,%ecx
40ac73:	e8 f8 b6 ff ff       	call   0x406370
40ac78:	59                   	pop    %ecx
40ac79:	59                   	pop    %ecx
40ac7a:	8b 45 0c             	mov    0xc(%ebp),%eax
40ac7d:	85 c0                	test   %eax,%eax
40ac7f:	74 02                	je     0x40ac83
40ac81:	89 30                	mov    %esi,(%eax)
40ac83:	8d 04 33             	lea    (%ebx,%esi,1),%eax
40ac86:	eb 0c                	jmp    0x40ac94
40ac88:	8b 45 0c             	mov    0xc(%ebp),%eax
40ac8b:	85 c0                	test   %eax,%eax
40ac8d:	74 03                	je     0x40ac92
40ac8f:	83 20 00             	andl   $0x0,(%eax)
40ac92:	8b c6                	mov    %esi,%eax
40ac94:	5f                   	pop    %edi
40ac95:	5e                   	pop    %esi
40ac96:	5b                   	pop    %ebx
40ac97:	5d                   	pop    %ebp
40ac98:	c2 08 00             	ret    $0x8
40ac9b:	cc                   	int3
40ac9c:	cc                   	int3
40ac9d:	cc                   	int3
40ac9e:	cc                   	int3
40ac9f:	cc                   	int3
40aca0:	8b ff                	mov    %edi,%edi
40aca2:	55                   	push   %ebp
40aca3:	8b ec                	mov    %esp,%ebp
40aca5:	56                   	push   %esi
40aca6:	8b 75 0c             	mov    0xc(%ebp),%esi
40aca9:	80 3e 00             	cmpb   $0x0,(%esi)
40acac:	74 27                	je     0x40acd5
40acae:	57                   	push   %edi
40acaf:	8d 7e 10             	lea    0x10(%esi),%edi
40acb2:	57                   	push   %edi
40acb3:	ff 15 60 61 42 00    	call   *0x426160
40acb9:	c6 46 21 00          	movb   $0x0,0x21(%esi)
40acbd:	85 ff                	test   %edi,%edi
40acbf:	74 07                	je     0x40acc8
40acc1:	57                   	push   %edi
40acc2:	ff 15 6c 61 42 00    	call   *0x42616c
40acc8:	8b 4e 0c             	mov    0xc(%esi),%ecx
40accb:	5f                   	pop    %edi
40accc:	85 c9                	test   %ecx,%ecx
40acce:	74 05                	je     0x40acd5
40acd0:	e8 b0 e8 ff ff       	call   0x409585
40acd5:	5e                   	pop    %esi
40acd6:	5d                   	pop    %ebp
40acd7:	c2 0c 00             	ret    $0xc
40acda:	cc                   	int3
40acdb:	cc                   	int3
40acdc:	cc                   	int3
40acdd:	cc                   	int3
40acde:	cc                   	int3
40acdf:	cc                   	int3
40ace0:	8b ff                	mov    %edi,%edi
40ace2:	55                   	push   %ebp
40ace3:	8b ec                	mov    %esp,%ebp
40ace5:	56                   	push   %esi
40ace6:	8b 75 0c             	mov    0xc(%ebp),%esi
40ace9:	80 3e 00             	cmpb   $0x0,(%esi)
40acec:	74 39                	je     0x40ad27
40acee:	53                   	push   %ebx
40acef:	57                   	push   %edi
40acf0:	8d 7e 14             	lea    0x14(%esi),%edi
40acf3:	57                   	push   %edi
40acf4:	ff 15 60 61 42 00    	call   *0x426160
40acfa:	8d 9e 84 00 00 00    	lea    0x84(%esi),%ebx
40ad00:	8b 43 04             	mov    0x4(%ebx),%eax
40ad03:	2b 03                	sub    (%ebx),%eax
40ad05:	83 f8 0c             	cmp    $0xc,%eax
40ad08:	72 0c                	jb     0x40ad16
40ad0a:	8b cb                	mov    %ebx,%ecx
40ad0c:	e8 ad d6 ff ff       	call   0x4083be
40ad11:	8b 03                	mov    (%ebx),%eax
40ad13:	89 43 04             	mov    %eax,0x4(%ebx)
40ad16:	c6 46 20 00          	movb   $0x0,0x20(%esi)
40ad1a:	85 ff                	test   %edi,%edi
40ad1c:	74 07                	je     0x40ad25
40ad1e:	57                   	push   %edi
40ad1f:	ff 15 6c 61 42 00    	call   *0x42616c
40ad25:	5f                   	pop    %edi
40ad26:	5b                   	pop    %ebx
40ad27:	5e                   	pop    %esi
40ad28:	5d                   	pop    %ebp
40ad29:	c2 0c 00             	ret    $0xc
40ad2c:	cc                   	int3
40ad2d:	cc                   	int3
40ad2e:	cc                   	int3
40ad2f:	cc                   	int3
40ad30:	8b ff                	mov    %edi,%edi
40ad32:	55                   	push   %ebp
40ad33:	8b ec                	mov    %esp,%ebp
40ad35:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ad38:	e8 fb f1 ff ff       	call   0x409f38
40ad3d:	5d                   	pop    %ebp
40ad3e:	c2 0c 00             	ret    $0xc
40ad41:	cc                   	int3
40ad42:	cc                   	int3
40ad43:	cc                   	int3
40ad44:	cc                   	int3
40ad45:	cc                   	int3
40ad46:	cc                   	int3
40ad47:	cc                   	int3
40ad48:	cc                   	int3
40ad49:	cc                   	int3
40ad4a:	cc                   	int3
40ad4b:	cc                   	int3
40ad4c:	cc                   	int3
40ad4d:	cc                   	int3
40ad4e:	cc                   	int3
40ad4f:	cc                   	int3
40ad50:	8b ff                	mov    %edi,%edi
40ad52:	55                   	push   %ebp
40ad53:	8b ec                	mov    %esp,%ebp
40ad55:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40ad59:	56                   	push   %esi
40ad5a:	8b f1                	mov    %ecx,%esi
40ad5c:	c7 06 34 10 40 00    	movl   $0x401034,(%esi)
40ad62:	74 0a                	je     0x40ad6e
40ad64:	6a 10                	push   $0x10
40ad66:	56                   	push   %esi
40ad67:	e8 c2 6f 01 00       	call   0x421d2e
40ad6c:	59                   	pop    %ecx
40ad6d:	59                   	pop    %ecx
40ad6e:	8b c6                	mov    %esi,%eax
40ad70:	5e                   	pop    %esi
40ad71:	5d                   	pop    %ebp
40ad72:	c2 04 00             	ret    $0x4
40ad75:	cc                   	int3
40ad76:	cc                   	int3
40ad77:	cc                   	int3
40ad78:	cc                   	int3
40ad79:	cc                   	int3
40ad7a:	cc                   	int3
40ad7b:	cc                   	int3
40ad7c:	cc                   	int3
40ad7d:	cc                   	int3
40ad7e:	cc                   	int3
40ad7f:	cc                   	int3
40ad80:	8b ff                	mov    %edi,%edi
40ad82:	55                   	push   %ebp
40ad83:	8b ec                	mov    %esp,%ebp
40ad85:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40ad89:	56                   	push   %esi
40ad8a:	8b f1                	mov    %ecx,%esi
40ad8c:	c7 06 34 10 40 00    	movl   $0x401034,(%esi)
40ad92:	74 0a                	je     0x40ad9e
40ad94:	6a 04                	push   $0x4
40ad96:	56                   	push   %esi
40ad97:	e8 92 6f 01 00       	call   0x421d2e
40ad9c:	59                   	pop    %ecx
40ad9d:	59                   	pop    %ecx
40ad9e:	8b c6                	mov    %esi,%eax
40ada0:	5e                   	pop    %esi
40ada1:	5d                   	pop    %ebp
40ada2:	c2 04 00             	ret    $0x4
40ada5:	cc                   	int3
40ada6:	cc                   	int3
40ada7:	cc                   	int3
40ada8:	cc                   	int3
40ada9:	cc                   	int3
40adaa:	cc                   	int3
40adab:	cc                   	int3
40adac:	cc                   	int3
40adad:	cc                   	int3
40adae:	cc                   	int3
40adaf:	cc                   	int3
40adb0:	8b ff                	mov    %edi,%edi
40adb2:	55                   	push   %ebp
40adb3:	8b ec                	mov    %esp,%ebp
40adb5:	56                   	push   %esi
40adb6:	57                   	push   %edi
40adb7:	8b 7d 08             	mov    0x8(%ebp),%edi
40adba:	8d 71 04             	lea    0x4(%ecx),%esi
40adbd:	c7 07 48 10 40 00    	movl   $0x401048,(%edi)
40adc3:	83 c7 04             	add    $0x4,%edi
40adc6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40adc7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40adc8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40adc9:	5f                   	pop    %edi
40adca:	5e                   	pop    %esi
40adcb:	5d                   	pop    %ebp
40adcc:	c2 04 00             	ret    $0x4
40adcf:	cc                   	int3
40add0:	c2 00 00             	ret    $0x0
40add3:	cc                   	int3
40add4:	cc                   	int3
40add5:	cc                   	int3
40add6:	cc                   	int3
40add7:	cc                   	int3
40add8:	cc                   	int3
40add9:	cc                   	int3
40adda:	cc                   	int3
40addb:	cc                   	int3
40addc:	cc                   	int3
40addd:	cc                   	int3
40adde:	cc                   	int3
40addf:	cc                   	int3
40ade0:	8b ff                	mov    %edi,%edi
40ade2:	55                   	push   %ebp
40ade3:	8b ec                	mov    %esp,%ebp
40ade5:	53                   	push   %ebx
40ade6:	8b d9                	mov    %ecx,%ebx
40ade8:	8b 43 04             	mov    0x4(%ebx),%eax
40adeb:	8b 53 08             	mov    0x8(%ebx),%edx
40adee:	8b 00                	mov    (%eax),%eax
40adf0:	3b 02                	cmp    (%edx),%eax
40adf2:	72 2d                	jb     0x40ae21
40adf4:	8b 45 18             	mov    0x18(%ebp),%eax
40adf7:	56                   	push   %esi
40adf8:	57                   	push   %edi
40adf9:	8b 08                	mov    (%eax),%ecx
40adfb:	8b 45 14             	mov    0x14(%ebp),%eax
40adfe:	51                   	push   %ecx
40adff:	8b 4b 0c             	mov    0xc(%ebx),%ecx
40ae02:	8b 38                	mov    (%eax),%edi
40ae04:	8b 45 10             	mov    0x10(%ebp),%eax
40ae07:	57                   	push   %edi
40ae08:	8b 30                	mov    (%eax),%esi
40ae0a:	8b 45 0c             	mov    0xc(%ebp),%eax
40ae0d:	56                   	push   %esi
40ae0e:	8b 10                	mov    (%eax),%edx
40ae10:	8b 45 08             	mov    0x8(%ebp),%eax
40ae13:	52                   	push   %edx
40ae14:	ff 30                	push   (%eax)
40ae16:	e8 7c dc ff ff       	call   0x408a97
40ae1b:	5f                   	pop    %edi
40ae1c:	5e                   	pop    %esi
40ae1d:	84 c0                	test   %al,%al
40ae1f:	74 07                	je     0x40ae28
40ae21:	8b 43 04             	mov    0x4(%ebx),%eax
40ae24:	ff 00                	incl   (%eax)
40ae26:	b0 01                	mov    $0x1,%al
40ae28:	5b                   	pop    %ebx
40ae29:	5d                   	pop    %ebp
40ae2a:	c2 14 00             	ret    $0x14
40ae2d:	a1 48 4e 42 00       	mov    0x424e48,%eax
40ae32:	85 c0                	test   %eax,%eax
40ae34:	74 07                	je     0x40ae3d
40ae36:	50                   	push   %eax
40ae37:	ff 15 8c 60 42 00    	call   *0x42608c
40ae3d:	a1 4c 4e 42 00       	mov    0x424e4c,%eax
40ae42:	85 c0                	test   %eax,%eax
40ae44:	74 07                	je     0x40ae4d
40ae46:	50                   	push   %eax
40ae47:	ff 15 8c 60 42 00    	call   *0x42608c
40ae4d:	83 25 48 4e 42 00 00 	andl   $0x0,0x424e48
40ae54:	83 25 4c 4e 42 00 00 	andl   $0x0,0x424e4c
40ae5b:	c3                   	ret
40ae5c:	8b ff                	mov    %edi,%edi
40ae5e:	51                   	push   %ecx
40ae5f:	8b 0d c8 5b 42 00    	mov    0x425bc8,%ecx
40ae65:	8b c1                	mov    %ecx,%eax
40ae67:	8b 15 cc 5b 42 00    	mov    0x425bcc,%edx
40ae6d:	0b c2                	or     %edx,%eax
40ae6f:	74 15                	je     0x40ae86
40ae71:	52                   	push   %edx
40ae72:	51                   	push   %ecx
40ae73:	e8 4f 50 01 00       	call   0x41fec7
40ae78:	83 25 c8 5b 42 00 00 	andl   $0x0,0x425bc8
40ae7f:	83 25 cc 5b 42 00 00 	andl   $0x0,0x425bcc
40ae86:	59                   	pop    %ecx
40ae87:	c3                   	ret
40ae88:	8b ff                	mov    %edi,%edi
40ae8a:	55                   	push   %ebp
40ae8b:	8b ec                	mov    %esp,%ebp
40ae8d:	51                   	push   %ecx
40ae8e:	6a 02                	push   $0x2
40ae90:	8d 45 fc             	lea    -0x4(%ebp),%eax
40ae93:	c7 05 84 4e 42 00 e0 	movl   $0x41d0e0,0x424e84
40ae9a:	d0 41 00
40ae9d:	50                   	push   %eax
40ae9e:	6a 0d                	push   $0xd