40792d:	ff 15 c8 a0 41 00    	call   *0x41a0c8
407933:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
407937:	74 07                	je     0x407940
407939:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40793c:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
407940:	c9                   	leave
407941:	c3                   	ret
407942:	8b ff                	mov    %edi,%edi
407944:	55                   	push   %ebp
407945:	8b ec                	mov    %esp,%ebp
407947:	51                   	push   %ecx
407948:	53                   	push   %ebx
407949:	56                   	push   %esi
40794a:	8b f1                	mov    %ecx,%esi
40794c:	33 db                	xor    %ebx,%ebx
40794e:	3b f3                	cmp    %ebx,%esi
407950:	75 1e                	jne    0x407970
407952:	e8 7e e1 ff ff       	call   0x405ad5
407957:	6a 16                	push   $0x16
407959:	5e                   	pop    %esi
40795a:	53                   	push   %ebx
40795b:	53                   	push   %ebx
40795c:	53                   	push   %ebx
40795d:	53                   	push   %ebx
40795e:	53                   	push   %ebx
40795f:	89 30                	mov    %esi,(%eax)
407961:	e8 bf d8 ff ff       	call   0x405225
407966:	83 c4 14             	add    $0x14,%esp
407969:	8b c6                	mov    %esi,%eax
40796b:	e9 a9 00 00 00       	jmp    0x407a19
407970:	57                   	push   %edi
407971:	39 5d 08             	cmp    %ebx,0x8(%ebp)
407974:	77 1e                	ja     0x407994
407976:	e8 5a e1 ff ff       	call   0x405ad5
40797b:	6a 16                	push   $0x16
40797d:	5e                   	pop    %esi
40797e:	53                   	push   %ebx
40797f:	53                   	push   %ebx
407980:	53                   	push   %ebx
407981:	53                   	push   %ebx
407982:	53                   	push   %ebx
407983:	89 30                	mov    %esi,(%eax)
407985:	e8 9b d8 ff ff       	call   0x405225
40798a:	83 c4 14             	add    $0x14,%esp
40798d:	8b c6                	mov    %esi,%eax
40798f:	e9 84 00 00 00       	jmp    0x407a18
407994:	33 c9                	xor    %ecx,%ecx
407996:	39 5d 10             	cmp    %ebx,0x10(%ebp)
407999:	88 1e                	mov    %bl,(%esi)
40799b:	0f 95 c1             	setne  %cl
40799e:	41                   	inc    %ecx
40799f:	39 4d 08             	cmp    %ecx,0x8(%ebp)
4079a2:	77 09                	ja     0x4079ad
4079a4:	e8 2c e1 ff ff       	call   0x405ad5
4079a9:	6a 22                	push   $0x22
4079ab:	eb d0                	jmp    0x40797d
4079ad:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4079b0:	83 c1 fe             	add    $0xfffffffe,%ecx
4079b3:	83 f9 22             	cmp    $0x22,%ecx
4079b6:	77 be                	ja     0x407976
4079b8:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4079bb:	8b ce                	mov    %esi,%ecx
4079bd:	39 5d 10             	cmp    %ebx,0x10(%ebp)
4079c0:	74 0f                	je     0x4079d1
4079c2:	c6 06 2d             	movb   $0x2d,(%esi)
4079c5:	8d 4e 01             	lea    0x1(%esi),%ecx
4079c8:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4079cf:	f7 d8                	neg    %eax
4079d1:	8b f9                	mov    %ecx,%edi
4079d3:	33 d2                	xor    %edx,%edx
4079d5:	f7 75 0c             	divl   0xc(%ebp)
4079d8:	83 fa 09             	cmp    $0x9,%edx
4079db:	76 05                	jbe    0x4079e2
4079dd:	80 c2 57             	add    $0x57,%dl
4079e0:	eb 03                	jmp    0x4079e5
4079e2:	80 c2 30             	add    $0x30,%dl
4079e5:	88 11                	mov    %dl,(%ecx)
4079e7:	41                   	inc    %ecx
4079e8:	ff 45 fc             	incl   -0x4(%ebp)
4079eb:	33 db                	xor    %ebx,%ebx
4079ed:	3b c3                	cmp    %ebx,%eax
4079ef:	76 08                	jbe    0x4079f9
4079f1:	8b 55 08             	mov    0x8(%ebp),%edx
4079f4:	39 55 fc             	cmp    %edx,-0x4(%ebp)
4079f7:	72 da                	jb     0x4079d3
4079f9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4079fc:	3b 45 08             	cmp    0x8(%ebp),%eax
4079ff:	72 04                	jb     0x407a05
407a01:	88 1e                	mov    %bl,(%esi)
407a03:	eb 9f                	jmp    0x4079a4
407a05:	88 19                	mov    %bl,(%ecx)
407a07:	49                   	dec    %ecx
407a08:	8a 17                	mov    (%edi),%dl
407a0a:	8a 01                	mov    (%ecx),%al
407a0c:	88 11                	mov    %dl,(%ecx)
407a0e:	49                   	dec    %ecx
407a0f:	88 07                	mov    %al,(%edi)
407a11:	47                   	inc    %edi
407a12:	3b f9                	cmp    %ecx,%edi
407a14:	72 f2                	jb     0x407a08
407a16:	33 c0                	xor    %eax,%eax
407a18:	5f                   	pop    %edi
407a19:	5e                   	pop    %esi
407a1a:	5b                   	pop    %ebx
407a1b:	c9                   	leave
407a1c:	c2 0c 00             	ret    $0xc
407a1f:	8b ff                	mov    %edi,%edi
407a21:	55                   	push   %ebp
407a22:	8b ec                	mov    %esp,%ebp
407a24:	83 7d 14 0a          	cmpl   $0xa,0x14(%ebp)
407a28:	8b 45 08             	mov    0x8(%ebp),%eax
407a2b:	75 0a                	jne    0x407a37
407a2d:	85 c0                	test   %eax,%eax
407a2f:	7d 06                	jge    0x407a37
407a31:	6a 01                	push   $0x1
407a33:	6a 0a                	push   $0xa
407a35:	eb 05                	jmp    0x407a3c
407a37:	6a 00                	push   $0x0
407a39:	ff 75 14             	push   0x14(%ebp)
407a3c:	ff 75 10             	push   0x10(%ebp)
407a3f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407a42:	e8 fb fe ff ff       	call   0x407942
407a47:	5d                   	pop    %ebp
407a48:	c3                   	ret
407a49:	8b ff                	mov    %edi,%edi
407a4b:	55                   	push   %ebp
407a4c:	8b ec                	mov    %esp,%ebp
407a4e:	83 ec 0c             	sub    $0xc,%esp
407a51:	53                   	push   %ebx
407a52:	33 db                	xor    %ebx,%ebx
407a54:	56                   	push   %esi
407a55:	3b fb                	cmp    %ebx,%edi
407a57:	75 1e                	jne    0x407a77
407a59:	e8 77 e0 ff ff       	call   0x405ad5
407a5e:	6a 16                	push   $0x16
407a60:	5e                   	pop    %esi
407a61:	89 30                	mov    %esi,(%eax)
407a63:	53                   	push   %ebx
407a64:	53                   	push   %ebx
407a65:	53                   	push   %ebx
407a66:	53                   	push   %ebx
407a67:	53                   	push   %ebx
407a68:	e8 b8 d7 ff ff       	call   0x405225
407a6d:	83 c4 14             	add    $0x14,%esp
407a70:	8b c6                	mov    %esi,%eax
407a72:	e9 c4 00 00 00       	jmp    0x407b3b
407a77:	39 5d 10             	cmp    %ebx,0x10(%ebp)
407a7a:	76 dd                	jbe    0x407a59
407a7c:	33 c0                	xor    %eax,%eax
407a7e:	39 5d 18             	cmp    %ebx,0x18(%ebp)
407a81:	88 1f                	mov    %bl,(%edi)
407a83:	0f 95 c0             	setne  %al
407a86:	40                   	inc    %eax
407a87:	39 45 10             	cmp    %eax,0x10(%ebp)
407a8a:	77 09                	ja     0x407a95
407a8c:	e8 44 e0 ff ff       	call   0x405ad5
407a91:	6a 22                	push   $0x22
407a93:	eb cb                	jmp    0x407a60
407a95:	8b 45 14             	mov    0x14(%ebp),%eax
407a98:	83 c0 fe             	add    $0xfffffffe,%eax
407a9b:	83 f8 22             	cmp    $0x22,%eax
407a9e:	77 b9                	ja     0x407a59
407aa0:	8b 55 08             	mov    0x8(%ebp),%edx
407aa3:	8b 45 0c             	mov    0xc(%ebp),%eax
407aa6:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407aa9:	8b f7                	mov    %edi,%esi
407aab:	39 5d 18             	cmp    %ebx,0x18(%ebp)
407aae:	74 13                	je     0x407ac3
407ab0:	f7 da                	neg    %edx
407ab2:	13 c3                	adc    %ebx,%eax
407ab4:	c6 07 2d             	movb   $0x2d,(%edi)
407ab7:	8d 77 01             	lea    0x1(%edi),%esi
407aba:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
407ac1:	f7 d8                	neg    %eax
407ac3:	89 75 18             	mov    %esi,0x18(%ebp)
407ac6:	89 5d 0c             	mov    %ebx,0xc(%ebp)
407ac9:	ff 75 0c             	push   0xc(%ebp)
407acc:	ff 75 14             	push   0x14(%ebp)
407acf:	50                   	push   %eax
407ad0:	52                   	push   %edx
407ad1:	e8 ba 9f 00 00       	call   0x411a90
407ad6:	89 5d f8             	mov    %ebx,-0x8(%ebp)
407ad9:	8b da                	mov    %edx,%ebx
407adb:	8b d0                	mov    %eax,%edx
407add:	8b c3                	mov    %ebx,%eax
407adf:	83 f9 09             	cmp    $0x9,%ecx
407ae2:	76 05                	jbe    0x407ae9
407ae4:	80 c1 57             	add    $0x57,%cl
407ae7:	eb 03                	jmp    0x407aec
407ae9:	80 c1 30             	add    $0x30,%cl
407aec:	88 0e                	mov    %cl,(%esi)
407aee:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407af1:	46                   	inc    %esi
407af2:	41                   	inc    %ecx
407af3:	89 4d fc             	mov    %ecx,-0x4(%ebp)
407af6:	85 c0                	test   %eax,%eax
407af8:	77 04                	ja     0x407afe
407afa:	85 d2                	test   %edx,%edx
407afc:	76 08                	jbe    0x407b06
407afe:	3b 4d 10             	cmp    0x10(%ebp),%ecx
407b01:	72 c6                	jb     0x407ac9
407b03:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407b06:	3b 4d 10             	cmp    0x10(%ebp),%ecx
407b09:	72 16                	jb     0x407b21
407b0b:	c6 07 00             	movb   $0x0,(%edi)
407b0e:	e8 c2 df ff ff       	call   0x405ad5
407b13:	6a 22                	push   $0x22
407b15:	59                   	pop    %ecx
407b16:	89 08                	mov    %ecx,(%eax)
407b18:	8b f1                	mov    %ecx,%esi
407b1a:	33 db                	xor    %ebx,%ebx
407b1c:	e9 42 ff ff ff       	jmp    0x407a63
407b21:	c6 06 00             	movb   $0x0,(%esi)
407b24:	4e                   	dec    %esi
407b25:	8b 45 18             	mov    0x18(%ebp),%eax
407b28:	8a 10                	mov    (%eax),%dl
407b2a:	8a 0e                	mov    (%esi),%cl
407b2c:	88 16                	mov    %dl,(%esi)
407b2e:	4e                   	dec    %esi
407b2f:	88 08                	mov    %cl,(%eax)
407b31:	40                   	inc    %eax
407b32:	89 45 18             	mov    %eax,0x18(%ebp)
407b35:	3b c6                	cmp    %esi,%eax
407b37:	72 ec                	jb     0x407b25
407b39:	33 c0                	xor    %eax,%eax
407b3b:	5e                   	pop    %esi
407b3c:	5b                   	pop    %ebx
407b3d:	c9                   	leave
407b3e:	c2 14 00             	ret    $0x14
407b41:	8b ff                	mov    %edi,%edi
407b43:	55                   	push   %ebp
407b44:	8b ec                	mov    %esp,%ebp
407b46:	57                   	push   %edi
407b47:	8b 7d 10             	mov    0x10(%ebp),%edi
407b4a:	6a 00                	push   $0x0
407b4c:	ff 75 18             	push   0x18(%ebp)
407b4f:	ff 75 14             	push   0x14(%ebp)
407b52:	ff 75 0c             	push   0xc(%ebp)
407b55:	ff 75 08             	push   0x8(%ebp)
407b58:	e8 ec fe ff ff       	call   0x407a49
407b5d:	5f                   	pop    %edi
407b5e:	5d                   	pop    %ebp
407b5f:	c3                   	ret
407b60:	8b ff                	mov    %edi,%edi
407b62:	55                   	push   %ebp
407b63:	8b ec                	mov    %esp,%ebp
407b65:	56                   	push   %esi
407b66:	57                   	push   %edi
407b67:	33 f6                	xor    %esi,%esi
407b69:	ff 75 08             	push   0x8(%ebp)
407b6c:	e8 fd 1a 00 00       	call   0x40966e
407b71:	8b f8                	mov    %eax,%edi
407b73:	59                   	pop    %ecx
407b74:	85 ff                	test   %edi,%edi
407b76:	75 27                	jne    0x407b9f
407b78:	39 05 00 08 43 00    	cmp    %eax,0x430800
407b7e:	76 1f                	jbe    0x407b9f
407b80:	56                   	push   %esi
407b81:	ff 15 84 a0 41 00    	call   *0x41a084
407b87:	8d 86 e8 03 00 00    	lea    0x3e8(%esi),%eax
407b8d:	3b 05 00 08 43 00    	cmp    0x430800,%eax
407b93:	76 03                	jbe    0x407b98
407b95:	83 c8 ff             	or     $0xffffffff,%eax
407b98:	8b f0                	mov    %eax,%esi
407b9a:	83 f8 ff             	cmp    $0xffffffff,%eax
407b9d:	75 ca                	jne    0x407b69
407b9f:	8b c7                	mov    %edi,%eax
407ba1:	5f                   	pop    %edi
407ba2:	5e                   	pop    %esi
407ba3:	5d                   	pop    %ebp
407ba4:	c3                   	ret
407ba5:	8b ff                	mov    %edi,%edi
407ba7:	55                   	push   %ebp
407ba8:	8b ec                	mov    %esp,%ebp
407baa:	56                   	push   %esi
407bab:	57                   	push   %edi
407bac:	33 f6                	xor    %esi,%esi
407bae:	6a 00                	push   $0x0
407bb0:	ff 75 0c             	push   0xc(%ebp)
407bb3:	ff 75 08             	push   0x8(%ebp)
407bb6:	e8 11 2a 00 00       	call   0x40a5cc
407bbb:	8b f8                	mov    %eax,%edi
407bbd:	83 c4 0c             	add    $0xc,%esp
407bc0:	85 ff                	test   %edi,%edi
407bc2:	75 27                	jne    0x407beb
407bc4:	39 05 00 08 43 00    	cmp    %eax,0x430800
407bca:	76 1f                	jbe    0x407beb
407bcc:	56                   	push   %esi
407bcd:	ff 15 84 a0 41 00    	call   *0x41a084
407bd3:	8d 86 e8 03 00 00    	lea    0x3e8(%esi),%eax
407bd9:	3b 05 00 08 43 00    	cmp    0x430800,%eax
407bdf:	76 03                	jbe    0x407be4
407be1:	83 c8 ff             	or     $0xffffffff,%eax
407be4:	8b f0                	mov    %eax,%esi
407be6:	83 f8 ff             	cmp    $0xffffffff,%eax
407be9:	75 c3                	jne    0x407bae
407beb:	8b c7                	mov    %edi,%eax
407bed:	5f                   	pop    %edi
407bee:	5e                   	pop    %esi
407bef:	5d                   	pop    %ebp
407bf0:	c3                   	ret
407bf1:	8b ff                	mov    %edi,%edi
407bf3:	55                   	push   %ebp
407bf4:	8b ec                	mov    %esp,%ebp
407bf6:	56                   	push   %esi
407bf7:	57                   	push   %edi
407bf8:	33 f6                	xor    %esi,%esi
407bfa:	ff 75 0c             	push   0xc(%ebp)
407bfd:	ff 75 08             	push   0x8(%ebp)
407c00:	e8 20 9f 00 00       	call   0x411b25
407c05:	8b f8                	mov    %eax,%edi
407c07:	59                   	pop    %ecx
407c08:	59                   	pop    %ecx
407c09:	85 ff                	test   %edi,%edi
407c0b:	75 2c                	jne    0x407c39
407c0d:	39 45 0c             	cmp    %eax,0xc(%ebp)
407c10:	74 27                	je     0x407c39
407c12:	39 05 00 08 43 00    	cmp    %eax,0x430800
407c18:	76 1f                	jbe    0x407c39
407c1a:	56                   	push   %esi
407c1b:	ff 15 84 a0 41 00    	call   *0x41a084
407c21:	8d 86 e8 03 00 00    	lea    0x3e8(%esi),%eax
407c27:	3b 05 00 08 43 00    	cmp    0x430800,%eax
407c2d:	76 03                	jbe    0x407c32
407c2f:	83 c8 ff             	or     $0xffffffff,%eax
407c32:	8b f0                	mov    %eax,%esi
407c34:	83 f8 ff             	cmp    $0xffffffff,%eax
407c37:	75 c1                	jne    0x407bfa
407c39:	8b c7                	mov    %edi,%eax
407c3b:	5f                   	pop    %edi
407c3c:	5e                   	pop    %esi
407c3d:	5d                   	pop    %ebp
407c3e:	c3                   	ret
407c3f:	e8 fd 2d 00 00       	call   0x40aa41
407c44:	8b c8                	mov    %eax,%ecx
407c46:	8b 41 6c             	mov    0x6c(%ecx),%eax
407c49:	3b 05 88 b8 42 00    	cmp    0x42b888,%eax
407c4f:	74 10                	je     0x407c61
407c51:	8b 15 a0 b7 42 00    	mov    0x42b7a0,%edx
407c57:	85 51 70             	test   %edx,0x70(%ecx)
407c5a:	75 05                	jne    0x407c61
407c5c:	e8 72 ed ff ff       	call   0x4069d3
407c61:	8b 80 c8 00 00 00    	mov    0xc8(%eax),%eax
407c67:	c3                   	ret
407c68:	8b ff                	mov    %edi,%edi
407c6a:	55                   	push   %ebp
407c6b:	8b ec                	mov    %esp,%ebp
407c6d:	8b 45 08             	mov    0x8(%ebp),%eax
407c70:	85 c0                	test   %eax,%eax
407c72:	74 12                	je     0x407c86